The same turn at every scale.
A workspace holds projects, a project holds issues, an issue holds sub-issues, as deep as you need. In the web app, group any list or board by parent to see them together.
The tracker lives in the terminal.
rsva tui is recursiva itself, not a companion: every workspace you sign in to, the same query line, the same 16 themes, mouse and keys. It runs from a copy on disk and starts warm in 72–77 ms.
These are real screens, not pictures: captured from Rex as text. Try selecting it.
Triage, one card at a time
g q walks the list: → approves an issue into Todo, ← skips, c cancels, d hands it to an agent, u undoes. Agents are told to file what they notice beyond their issue as proposed, so it comes back here.
An issue in one line
Press c and type it with the query's short forms: #WEB @me !high. The card shows the issue as it will be created, and the open issues that look like it.
The rest of the terminal
The rsva CLI covers issues, comments, links, relations, cycles and the inbox, with --json for machines; underneath is a plain REST API with bearer tokens.
■ recursiva Open issues Northwind · 23 issues / -group:completed,cancelled
◐ In Review 1 ────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-122 ▂▄▆ — Coupon field accepts expired codes ▪ bug ▪ checkout
◐ In Progress 5 ──────────────────────────────────────────────────────────────────────────────────────────────────
▌ WEB-112 ▂▄▆ — Export orders to CSV ▪ feature ▪ export
WEB-118 ··· — Checkout: remember the last shipping address ▪ feature ▪ checkout
WEB-104 ▂▄▆ — Product images load at full size on phones ▪ bug ▪ perf
DOCS-22 ▂▄▆ — Getting started for new stores ▪ docs
WEB-121 ▂▄▆ — Gift cards: partial refunds ▪ feature ▪ payments
○ Todo 6 ─────────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-133 ! — Order confirmation email shows the wrong currency ▪ bug ▪ payments
DOCS-23 ▂▄▆ — Document the CSV export columns ▪ docs
WEB-131 ▂▄▆ — Search: typo-tolerant product names ▪ feature ▪ search
╭─ WEB-112 ───────────────────────────────────────────────────────────────────────── o browser e edit y copy link ─╮
│ Export orders to CSV │ PROPERTIES │
│ ◐ In Progress · ▂▄▆ High · updated 2h ago │ │
│ │ State ◐ In Progress │
│ The Export button on the Orders page ignores the filters and always sends │ Priority ▂▄▆ High │
│ every order. Use the same query as the list, keep the column order. │ Assignee AM alex@northwind.test │
│ │ Delegate — d dispatches │
│ • Respect date range, status and channel filters │ Labels ▪ feature │
│ • Keep the visible column order │ ▪ export │
│ • Stream large exports instead of building them in memory │ Project WEB storefront │
│ │ │
│ │ Created Nov 7 · alex@northwin… │
│ │ Updated 2h ago │
│ │ │
│ │ │
│ │ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
● online rex storefront 06:41
j/k move ↵ open f filter s state d dispatch . more g q queue o browser q quit ? all keys
■ recursiva Open issues Northwind · 23 issues / -group:completed,cancelled
◐ In Review 1 ────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-122 ▂▄▆ — Coupon field accepts expired codes ▪ bug ▪ checkout
◐ In Progress 5 ──────────────────────────────────────────────────────────────────────────────────────────────────
▌ WEB-112 ▂▄▆ — Export orders to CSV ▪ feature ▪ export
WEB-118 ··· — Checkout: remember the last shipping address ▪ feature ▪ checkout
WEB-104 ▂▄▆ — Product images load at full size on phones ▪ bug ▪ perf
DOCS-22 ▂▄▆ — Getting started for new stores ▪ docs
WEB-121 ▂▄▆ — Gift cards: partial refunds ▪ feature ▪ payments
○ Todo 6 ─────────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-133 ! — Order confirmation email shows the wrong currency ▪ bug ▪ payments
DOCS-23 ▂▄▆ — Document the CSV export columns ▪ docs
WEB-131 ▂▄▆ — Search: typo-tolerant product names ▪ feature ▪ search
╭─ WEB-112 ───────────────────────────────────────────────────────────────────────── o browser e edit y copy link ─╮
│ Export orders to CSV │ PROPERTIES │
│ ◐ In Progress · ▂▄▆ High · updated 2h ago │ │
│ │ State ◐ In Progress │
│ The Export button on the Orders page ignores the filters and always sends │ Priority ▂▄▆ High │
│ every order. Use the same query as the list, keep the column order. │ Assignee AM alex@northwind.test │
│ │ Delegate — d dispatches │
│ • Respect date range, status and channel filters │ Labels ▪ feature │
│ • Keep the visible column order │ ▪ export │
│ • Stream large exports instead of building them in memory │ Project WEB storefront │
│ │ │
│ │ Created Nov 7 · alex@northwin… │
│ │ Updated 2h ago │
│ │ │
│ │ │
│ │ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
● online rex storefront 06:40
j/k move ↵ open f filter s state d dispatch . more g q queue o browser q quit ? all keys
Press d, and an agent is on the issue.
Pick an issue in rsva tui, press d, add context if you like, pick the model and effort and press Enter: Claude starts on it in its own Rex session. You watch it there, step in when it asks, and the issue keeps track by itself.
A session per issue
d starts Claude in a new Rex session named after the issue's branch, in its own clone. It shows in Rex's sidebar at once; several run side by side without touching your working copy.
The agent, in the issue's row
Each dispatched issue's row shows its agent: running, waits, idle or done, read from rex ls and claude agents.
■ recursiva Open issues Northwind · 24 issues / -group:completed,cancelled
◐ In Review 1 ────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-122 ▂▄▆ — Coupon field accepts expired codes ▪ bug ▪ checkout
◐ In Progress 5 ──────────────────────────────────────────────────────────────────────────────────────────────────
WEB-104 ▂▄▆ — Product images load at full size on phones ▪ bug ▪ perf ○ idle 4m
WEB-118 ··· — Checkout: remember the last shipping address ▪ feature ▪ checkout ○ idle 4m
WEB-112 ▂▄▆ — Export orders to CSV ▪ feature ▪ export ○ idle 5m
DOCS-22 ▂▄▆ — Getting started for new stores ▪ docs
▌ WEB-121 ▂▄▆ — Gift cards: partial refunds ▪ feature ▪ payments
○ Todo 6 ─────────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-133 ! — Order confirmation email shows the wrong currency ▪ bug ▪ payments
DOCS-23 ▂▄▆ — Document the CSV export columns ▪ docs
WEB-131 ▂▄▆ — Search: typo-tolerant product names ▪ feature ▪ search
╭─ WEB-121 ───────────────────────────────────────────────────────────────────────── o browser e edit y copy link ─╮
│ Gift cards: partial refunds │ PROPERTIES │
│ ◐ In Progress · ▂▄▆ Medium · updated 1d ago │ │
│ │ State ◐ In Progress │
│ Refund part of an order paid with a gift card back to the card, the rest to │ Priority ▂▄▆ Medium │
│ the original payment method. │ Assignee AM alex@northwind.test │
│ │ Delegate — d dispatches │
│ │ Labels ▪ feature │
│ │ ▪ payments │
│ │ Project WEB storefront │
│ │ │
│ │ Created Nov 6 · alex@northwin… │
│ │ Updated 1d ago │
│ │ │
│ │ │
│ │ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
● online rex storefront 07:08
j/k move ↵ open f filter s state d dispatch . more g q queue o browser q quit ? all keys
■ recursiva Open issues Northwind · 23 issues / -group:completed,cancelled
◐ In Review 1 ────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-122 ▂▄▆ — Coupon field accepts expired codes ▪ bug ▪ checkout
◐ In Progress 5 ──────────────────────────────────────────────────────────────────────────────────────────────────
▌ WEB-112 ▂▄▆ — Export orders to CSV ▪ feature ▪ export
WEB-118 ··· — Checkout: remember the last shipping address ▪ feature ▪ checkout
WEB-104 ▂▄▆ — Product images load at full size on phones ▪ bug ▪ perf
DOCS-22 ▂▄▆ — Getting started for new stores ▪ docs
WEB-121 ▂▄▆ — Gift cards: partial refunds ▪ feature ▪ payments
○ Todo 6 ─────────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-133 ! — Order confirmation email shows the wrong currency ▪ bug ▪ payments
DOCS-23 ▂▄▆ — Document the CSV export columns ▪ docs
WEB-131 ▂▄▆ — Search: typo-tolerant product names ▪ feature ▪ search
╭─ WEB-112 ───────────────────────────────────────────────────────────────────────── o browser e edit y copy link ─╮
│ Export orders to CSV │ PROPERTIES │
│ ◐ In Progress · ▂▄▆ High · updated 2h ago │ │
│ │ State ◐ In Progress │
│ The Export button on the Orders page ignores the filters and always sends │ Priority ▂▄▆ High │
│ every order. Use the same query as the list, keep the column order. │ Assignee AM alex@northwind.test │
│ │ Delegate — d dispatches │
│ • Respect date range, status and channel filters │ Labels ▪ feature │
│ • Keep the visible column order │ ▪ export │
│ • Stream large exports instead of building them in memory │ Project WEB storefront │
│ │ │
│ │ Created Nov 7 · alex@northwin… │
│ │ Updated 2h ago │
│ │ │
│ │ │
│ │ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
● online rex storefront 06:40
j/k move ↵ open f filter s state d dispatch . more g q queue o browser q quit ? all keys
■ recursiva Open issues Northwind · 24 issues / -group:completed,cancelled ● 1 running
◐ In Review 1 ────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-122 ▂▄▆ — Coupon field accepts expired codes ▪ bug ▪ checkout
◐ In Progress 5 ──────────────────────────────────────────────────────────────────────────────────────────────────
▌ WEB-104 ▂▄▆ — Product images load at full size on phones ▪ bug ▪ perf ○ idle 2m
WEB-118 ··· — Checkout: remember the last shipping address ▪ feature ▪ checkout ○ idle 2m
WEB-112 ▂▄▆ — Export orders to CSV ▪ feature ▪ export ● opus 3m
DOCS-22 ▂▄▆ — Getting started for new stores ▪ docs
WEB-121 ▂▄▆ — Gift cards: partial refunds ▪ feature ▪ payments
○ Todo 6 ─────────────────────────────────────────────────────────────────────────────────────────────────────────
WEB-133 ! — Order confirmation email shows the wrong currency ▪ bug ▪ payments
DOCS-23 ▂▄▆ — Document the CSV export columns ▪ docs
WEB-131 ▂▄▆ — Search: typo-tolerant product names ▪ feature ▪ search
╭─ WEB-104 ───────────────────────────────────────────────────────────────────────── o browser e edit y copy link ─╮
│ Product images load at full size on phones │ PROPERTIES │
│ ◐ In Progress · ▂▄▆ High · updated 2m ago │ │
│ │ State ◐ In Progress │
│ Product pages send the 3000 px originals to phones. Serve responsive sizes │ Priority ▂▄▆ High │
│ with srcset and lazy-load below the fold. │ Assignee SO sam@northwind.test │
│ │ Delegate ◈ claude@northwind.te… │
│ │ Labels ▪ bug │
│ │ ▪ perf │
│ │ Project WEB storefront │
│ │ │
│ │ Created Nov 6 · alex@northwin… │
│ │ Updated 2m ago │
│ │ │
│ │ │
│ │ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
● online · ✓ WEB-104 → In Progress · Rex session web-104-product-images-load-at-full-size-on… rex storefront 07:06
j/k move ↵ open f filter s state d dispatch . more g q queue o browser q quit ? all keys
Rex with four sessions: rsva tui and three agents, one per issue. Click a session to see its screen.
It asks, it does not guess
The agent reads the issue through rsva, is told to treat its text as data, is told never to merge or deploy, and asks in a comment when it is unsure. Answer it in its Rex session.
The issue moves itself
In Progress on dispatch. The branch name links the pull request: up for review it moves the issue to In Review if the project has one, merged to Done, never back. After the merge, the open TUI closes the session and keeps the clone a week in its own trash.
Curator and executor
Optionally a stronger model curates while a cheaper one writes the code: the curator writes the brief, posts it on the issue, reviews the work (two rounds at most) and opens a draft pull request. Model, effort and executor are remembered per project.
Your context goes with it
Optional context at dispatch goes into the agent's prompt and onto the issue.
Nothing half-done
If a step fails before Claude starts, the steps already done are undone and the log lists each one.
Its own keys
The agent works with the agents' token and a GitHub token of its own, never yours, and cannot read the Keychain. Its dependencies install without scripts.
Made for Rex
In Rex the TUI names itself, so its session shows as recursiva. Images in descriptions and comments show in place, as in Ghostty and kitty, and Shift+Enter makes a new line.
Limits
Dispatch runs on a Mac with Rex, Claude Code and the project's repository on disk. The agent is Claude only.
Agents do the work. Decisions wait for you.
Delegate an issue to an agent in the terminal or through the API: you stay the assignee, the agent becomes its delegate. When it needs you, it moves the issue into review or mentions you. Approve or send it back from My work, or Approve or Request changes in the inbox; reply by email or in Telegram. Try it: approve the plan.
Delegate, stay the assignee
Waiting on you is the first group in My work and a tab in the inbox. Approve or send back from the row, with Undo; it takes In Review and Approved states in the project's workflow.
Some steps only people take
Mark a state or a label Only people. Agents never move issues into that state and never rename or delete either; they may still put the label on issues. Click a state to lock or unlock it.
Tokens that never outgrow their member
API tokens work like Stripe's restricted keys: Read, Write, or Custom with Read or Write per resource. A token never does more than its member may.
No duplicate issues
On create, recursiva scores similar open issues. Through the API a strong match is refused unless the agent insists. People see up to three under the title as they type.
Answer from wherever you read it.
The inbox, your email and Telegram are three doors to the same thread. Whatever you answer lands on the issue.
Inbox
All, Unread and Waiting on you, with snooze and filters. The selected notification opens the issue itself.
Instantly or bundled every 30 minutes, a morning digest and a weekly summary, quiet hours. Reply to a single notification email and it posts as your comment in its thread.
Telegram
Turn on Actions in Settings, then reply to a notification to comment. Send an issue key for a card with State, Priority, Assignee and Labels; a change can be undone for ten minutes. Group chats get their projects' urgent issues, plans waiting for approval, and cycle starts and ends.
One line describes a list.
The same line works in the web app, the terminal, the CLI, the API and Telegram. Save it in the web app and it becomes a view: a tab in the project, under keys 2 to 9, or a favorite in the sidebar with a live count.
See what moved, not only what's left.
Cycles box the time; History shows what happened in it, at the depth you choose.
Four depths
Milestones, Outcomes (an issue's day in one line), Steps and Everything. Filter Everyone, Agents or People; day totals sit on top.
It lives on your machine.
After the first sign-in, recursiva keeps the workspace on the device, opens from it and syncs when it can.
Issues open without a request
Descriptions, comments and history are fetched ahead in one background request, then only what changed.
Never “saved” when it isn't
Changes that haven't reached the server say so and wait. Nothing is lost on a dropped link or a rate limit; signing out warns first.
Two people at once
Labels, assignees and relations merge instead of overwriting each other.
You see others' work arrive
A row someone else changes lights up once and fades.
Hands stay on the keys.
Common actions have a key, the rest are in ⌘K, and every key is written the way you press it. ? shows every key on one sheet, with search, and tooltips name their key.
Start with one square.
One workspace, one project, one issue. The rest folds in when you need it.
The cloud opens in batches. Ask for access, and a sign-in link comes when yours opens.
Browser
app.rsva.devThe whole app, nothing to install.
Phone
Add to Home ScreenOpen app.rsva.dev and add it to the home screen. An installable web app, no store.
Terminal
rsva tuiThe same tracker from a copy on disk, warm in 72–77 ms.