GeezerVison is showing aventasks.dev — aven | Your tasks, everywhere. Agent-ready.
Local-first task management
Your tasks, everywhere. Agent-ready.
Aven is a local-first task manager with a keyboard-driven TUI for you and a compact CLI for your coding agents. Keep tasks and context together across projects. Work offline, with optional self-hosted, end-to-end encrypted sync across devices.
Turn “fix this later” into a task with the context attached. Start another agent on it later. Decisions, progress, and blockers are saved as notes on the task.
Bashaven search "public API"APP-M4R2 status=todo priority=high project=app labels= match=title score=412880 title="Open the public API"
Bashaven add "Give token revocation its own rate limit" --status backlog --description-stdin <<'EOF'Repro: exhaust the login limiter, then revoke a token.The revocation waits for the login window to reset.Fix: separate limiter in src/auth/limits.rs, plus a test.EOFcreated APP-P8N3 ref=P8N3 project=app status=backlog priority=none title="Give token revocation its own rate limit"
Bashaven dep add APP-M4R2 APP-P8N3dependency-added APP-M4R2 changed=yes depends_on=APP-P8N3
Filed APP-P8N3 with the repro. APP-M4R2 Open the public API now waits on it.
Another worktree · new agent session
User
Do APP-P8N3.
Bashaven context APP-P8N3context APP-P8N3 suffix=P8N3 id=P8N3KMMQQ2NKP7FD status=backlog priority=none deleted=no epic=no blocked=no conflicts=no blocks_open=yes labels= title="Give token revocation its own rate limit"project=app prefix=APPworkspace=defaultcreated=2026-10-11T09:14:02Z updated=2026-10-11T09:14:02Zdescription<<EOFRepro: exhaust the login limiter, then revoke a token.The revocation waits for the login window to reset.Fix: separate limiter in src/auth/limits.rs, plus a test.EOFblocks open=1 total=1- APP-M4R2 status=todo unresolved=yes title="Open the public API"
Bashaven edit APP-P8N3 --status activeupdated APP-P8N3 changed=yes status=active priority=none title="Give token revocation its own rate limit"
Revocations get their own budget. Per client, or one global reserve?
User
Per client.
Bashaven note APP-P8N3 "Decision: per-client revocation budget, separate from login."noted APP-P8N3 note=K4W9T2XQ7MB3RD5E
Editsrc/auth/limits.rsUpdated src/auth/limits.rs with 38 additions and 6 removals
Bashcargo test limitstest result: ok. 14 passed; 0 failed
Bashaven edit APP-P8N3 --status doneupdated APP-P8N3 changed=yes status=done priority=none title="Give token revocation its own rate limit"
APP-P8N3 is done. APP-M4R2 was waiting on it and is ready now.
New agent session
User
How should we do API key rotation? It can't break running clients.
Readsrc/auth/keys.rsRead 142 lines
Version the keys. Rotating issues a new key, the old one keeps working for a 7-day grace period, then a sweep expires it. Three parts:
1. An endpoint that issues the new key version
2. A sweep that expires old keys (needs 1)
3. Client docs for rotating without downtime
User
Sounds good. Make it an epic with tasks.
Bashaven add "API key rotation" --epic --description-stdin <<'EOF'Versioned keys: rotating issues a new version, the oldone stays valid for 7 days, then a sweep expires it.EOFcreated APP-K1RT ref=K1RT project=app status=inbox priority=none title="API key rotation"
Bashaven add "Add key rotation endpoint" --description-stdin <<'EOF'POST /keys/:id/rotate issues version n+1.EOFaven add "Expire old keys after the grace period" --description-stdin <<'EOF'A sweep expires a key 7 days after it is replaced.EOFaven add "Document key rotation" --description-stdin <<'EOF'Client guide: rotate, deploy the new key, let the old one lapse.EOFcreated APP-R7W2 ref=R7W2 project=app status=inbox priority=none title="Add key rotation endpoint"created APP-R8E5 ref=R8E5 project=app status=inbox priority=none title="Expire old keys after the grace period"created APP-R9D3 ref=R9D3 project=app status=inbox priority=none title="Document key rotation"
Bashfor r in R7W2 R8E5 R9D3; do aven epic add APP-$r APP-K1RT; doneepic-added APP-R7W2 changed=yes epic=APP-K1RTepic-added APP-R8E5 changed=yes epic=APP-K1RTepic-added APP-R9D3 changed=yes epic=APP-K1RT
Bashaven dep add APP-R8E5 APP-R7W2dependency-added APP-R8E5 changed=yes depends_on=APP-R7W2
APP-K1RT has three tasks. Expiry waits on the endpoint.
Same session
User
What's next?
Bashaven list --readyAPP-M4R2 status=todo priority=high labels= title="Open the public API"APP-7KQ9 status=todo priority=medium labels= title="Add scoped API tokens"APP-R7W2 status=inbox priority=none labels= blocks=1 title="Add key rotation endpoint"APP-R9D3 status=inbox priority=none labels= title="Document key rotation"
APP-M4R2 Open the public API is the only high-priority task. In the epic, start with APP-R7W2, since key expiry waits on it.
Host it on a home server or VPS and connect over your own network. Devices encrypt tasks before upload, so the server can't read them. Every change lands locally first, and sync catches up when the server is reachable.
Jot a task down on your phone and it's in your terminal queue, not a separate notes app you forget to check. Priorities, projects, and full task details stay in sync, end-to-end encrypted through your server or Aven Cloud. Setup is one QR scan.
The composer inside aven or over any tmux pane, an agent session, or a voice note to a chat assistant. Away from your desk, just tell Aven. Every path lands in the same queue, in the right project.
Task composer
Add tasksync test flaky on ci again, prob clock skew in the retry backoff. high, due fri^N create with AI
a inside aven
prefixt tmux popup over any pane
Agent session
Add a follow-up to document token rotation. Bash aven add "Document token rotation"
Agents capture follow-ups as they work
Voice note
▶0:12Added to Aven: AVN-01PD
Telegram via OpenClaw or similar
Queue5 captured today
□AVN-WV80Fix flaky CI sync test caused by retry backoff clock skew●aventmux
▣AVN-H3QDShow sync status in the TUI footer─avenaven
▣APP-P8N3Document token rotation─appagent
▣AVN-01PDAdd docs screenshot showing task creation by voice─avenvoice
▣APP-K2TMRotate staging API keys─apptell aven
9:41
Tell AvenDone
What’s on your mind?
Add a few tasks, tidy up your inbox, or ask what’s coming up. Type it or just say it.
Add a task to rotate the staging API keys before Friday’s release and label it security.
✓Read projects and labels
✓Drafted new task
I’ll add this to the app project with the security label, due Friday.
New taskRotate staging API keysAPP-K2TMappFridayLabels: securityRotate before the Friday release so the old keys stop working›
›
Also push the flaky CI test to Monday and make it urgent
✓Searched ‘flaky CI’ · 1 task
✓Drafted update
I’ll move the flaky CI test to Monday and raise it to urgent.
Update taskFix flaky CI sync test caused by retry backoff clock skewAVN-WV80Due: Friday → MondayPriority: High → Urgent
Tell Aven needs AI set up on your self-hosted sync server. Requests and the task content they need go to its AI provider, outside end-to-end encrypted sync.
“I am really impressed by the functionality at this early stage. Became a default tool for me already and serves also as shared memory and persistent learnings for my agents.”
You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.