TheVibeFounder · Apps
Local-first
Runs on your machine · No account
Apps · No° 01 · VibeTasks

Local
Tasks.

An intent-based task manager that answers what am I doing now? before it answers what exists. Everything lives in SQLite on your machine. The API binds to loopback only. No analytics, no telemetry, no network dependency — and an operating layer built for sub-agents to work alongside you.

Install locally · open the localhost URL
SQLite · loopback-only · optional encrypted sync
The surface

Seven views. One active task.

01
NOW
One active task. The single thing you're doing, held apart from everything you could be doing.
Focus
02
NEXT
The short list. What comes after now, kept deliberately small.
Queue
03
THIS WEEK
The near horizon — work that matters soon without demanding attention yet.
Horizon
04
WAITING
Blocked by someone or something else. Out of your hands, tracked anyway.
Blocked
05
SCHEDULED
Tasks with a date. Surfaced when they come due, quiet until then.
Dated
06
INBOX
Unsorted capture. Get it out of your head first, file it later.
Capture
07
PROJECTS
A secondary view for grouping work — below the intent-based navigation, never above it.
Grouping
The operating layer

Built for sub-agents. Out of your way.

VibeTasks carries a second layer for agents doing the work with you — a queue to claim from, a session that closes with a baton, and a learning loop that promotes what repeats into enforceable artifacts. Sub-agents reach it through the local CLI and API. It stays out of your task view: the main page never fetches or summarizes operating-layer data.

01 · Queue

Claim the work

Sub-agents pull the next item from a shared queue instead of colliding on the same task. Claim, work, release — the coordination primitive for more than one agent.

02 · Session

Close with a baton

Every session closes into an exportable baton — what was done, what's next, what to watch. The next agent picks up continuity instead of context.

03 · Learning

Promote what repeats

A learning starts as an observation, gets validated, and is promoted into an enforceable artifact — or retired. Repeated lessons stop being tribal knowledge.

A deliberate separation. The operating layer is for the agents. The task surface is for you. One never leaks into the other — so the tool you look at stays about your work, not the machinery running underneath it.

Where the data lives

Local-first, and provably so.

SQLite on your machine
Task and project data live in a single local database file. Nothing is uploaded by default.
Loopback-only API
The server binds to 127.0.0.1 exclusively. It makes no outbound calls and accepts no non-local connections.
No analytics or telemetry
There is nothing to opt out of. Browser storage holds only your light/dark theme preference.
Optional encrypted sync
Sync ships off by default. When you turn it on, bundles are encrypted and stay under your control.
Bring your own brand
Import approved local brand tokens without placing the source guide or the resulting config in the repo.
Template-safe source
The public tree stays personal-data-free: no databases, sync bundles, or scheduler logs are ever tracked.
Run it

Three commands to now.

# from a fresh clone
$ npm install
$ npm run verify # typecheck + tests + privacy
$ npm run serve

# then open the printed localhost URL

# or drive it from the CLI
$ vibetasks add "Ship the apps page" --due 2026-07-18
$ vibetasks list next
$ vibetasks move a1b2 now
$ vibetasks done a1b2

First run is empty on purpose

One workspace, zero tasks, sync_enabled = false. Nothing to configure, nothing phoning home.

On macOS the database lives at ~/Library/Application Support/VibeTasks/tasks.sqlite. Point VIBETASKS_DB elsewhere — including :memory: for tests.

Requires Node 20+. Light and dark modes follow your OS on first use; the header toggle saves only the theme, only on that device.