self-hosted · local-first · your keys

Claude Code terminal tabs. Reinvented.

There are a thousand identical AI IDEs now. Dorodango isn’t one of them. It’s for people who love Claude Code in a terminal tab — and think the tab is basically enough. It replaces nothing: every session is the authentic thing, on your machine, with your keys. It just gives the work the patient, repeated passes a tab can’t — the way you polish mud into a mirror.

  • idea-based workflowyou describe the change; the session carries it through design, build, review
  • full mobile paritythe whole UI on your phone over Tailscale, at no cost
  • session organizationa board for the Claude Code sessions you already run
before
A macOS terminal window with seven Claude Code tabs open at once
Frame from Pearl Jam's Do the Evolution video: a man wired into a machine
after
dorodango · ~/dev/demo-app session live
design
plan
build
review
test
done

the name

Ordinary mud, polished until it shines.

Hikaru dorodango is a Japanese craft: you pack a handful of dirt into a ball, then dust and burnish it — for hours, sometimes days, each pass with finer soil than the last — until the thing is mirror-bright. No glaze, no paint, nothing added. It was always just mud; it was never polished before.

  1. mud

    A rough intention

    You type a sentence about a change you want. It is not a spec and nobody pretends it is — design asks the questions that would have made it one.

  2. shaping

    Pass after pass

    Plan, build, review, test. Each phase is a finer grit than the last, run by an agent with its own model, effort and prompt — and every build iteration lands on trunk while it is still small.

  3. shine

    The same material

    Nothing was replaced or generated over the top. What ships is your repo, your commits, your history — worked until you can see yourself in it.

That is the whole product thesis. The patience is the harness’s job — the phases, the gates, the landing, the recovery. Yours is knowing what the thing should look like when it is done.

the model

Not a kanban board. Not another IDE.

Every card is a real Claude Code session — same engine, same login, same feel as your tab. The lanes give it shape: each is a kind of work with its own model, effort, and prompt. Drag a card and the session does that work.

  1. 01 design

    Explore the problem and shape the intent — the agent asks the questions that change the outcome.

  2. 02 plan

    Turn intent into an executable plan sized to the task, with its own model and reasoning effort.

  3. 03 build

    Implement in small compiling chunks, landing each iteration on trunk as it goes. Never skippable.

  4. 04 review

    A fix-up loop over the whole session’s work — not a gate. Findings get fixed and landed immediately.

  5. 05 test

    A blind, independent tester verifies the result against its brief alone. No access to the build context.

fast-track Small tasks skip the phases they don’t need — a one-line fix doesn’t get a design ceremony. The policy is pure and size-aware; only build is sacred.

trunk landing

There is no merge day.

Work integrates continuously. A session commits small, compiling chunks and lands each one onto trunk as it goes — parallel sessions absorb each other’s work in near-real-time, and nobody drifts for a week on a stale branch. Dorodango owns the git mechanics as a two-actor split:

session 41 session 42 trunk
Each land is one agent iteration — squashed, gated, exactly-once.
git plumbing

The server owns the trunk ref

A land squashes the branch’s committed delta onto trunk with pure git plumbing — merge-tree → commit-tree → update-ref under a compare-and-swap retry. It never touches a worktree, and it’s exactly-once across server restarts.

reconcile

The runner owns its worktree

Between turns it reconciles onto the latest trunk — resetting once its delta has landed, pulling siblings’ work in. Worktrees are persistent warm workbenches, kept across done.

gate

The land gate holds the floor

Every land must compile and typecheck before it touches trunk. A real conflict re-engages the agent to pull and re-land — it never silently drops work or tears the session down.

coordination

Overlap, surfaced

Each session sees which sibling sessions touch the same files — and what they’re trying to do — so agents coordinate instead of clobbering each other.

The human-readable release branch stays clean: completed sessions pile into a release candidate that gets a release-wide review and full verification before it ships.

preview & devtools

See it running — and talk to it on the page.

One click starts the app, another opens it right here, with Dorodango’s devtools overlaid on it: element picker, chat, and diagnostics, right where the pixels are.

One-click preview

Press play — or ask the session to start it — and the app runs on its own ports with an in-app preview: a warm iframe pool that auto-heals when the server restarts. No terminal juggling, no localhost guessing.

DevTools on the page

An overlay injected into the previewed app itself — Shadow-DOM isolated, so it never leaks styles into your app or breaks it.

Chat where the pixels are

Point the element picker at a button and tell the session what to change. The agent gets eyes and hands on the running app — and you get diagnostics without opening a console.

localhost:20401 · preview
button.submit
dorodango devtools

you⌖ this button — make it match the accent

session 41done — landed in iteration 3 ✓

console 0 errors · network 12/12 · hydrated 84ms

anywhere

Your desk does the work. Your phone steers it.

Dorodango runs on your machine — but the sessions keep working after you stand up. Put it on your tailnet and the full UI is on your phone — full parity, not a companion app, included — watch the feed, answer clarifications, approve exit gates from the couch, the train, the queue for coffee.

LAN access modes

offlocalhost only — the default

selected interfacese.g. just your tailnet address

allevery interface, your call

Pairs perfectly with Tailscale — no ports opened to the internet, no reverse proxy, just your devices.

dorodango · demo-app

build ▸ iteration 4 landed ✓ b41c2e0

clarification · session 41

Ship the new modes behind a feature flag?

Yes, flag it No

exit gate · review → test

2 findings fixed, ready to advance.

Advance Hold

steering

You make the calls, not the clicks.

Most tools are racing to take you out of the loop. Dorodango is for people who never wanted out. The agent does the work; you shape intent and approve where it counts. Exit gates set how much say you want, per project and per phase — and clarifications come to you as questions, not as stalled jobs.

auto the phase advances on its own — you read about it later
confident advances when the agent is sure; asks when it isn’t
checkpoint pauses at the milestones you said matter
ask you confirm every exit — full manual control
you · mid-turn

Actually — keep the old CLI flag working, just alias it.

session 41

Queued. I’ll fold it into this iteration — the flag stays as a deprecated alias, warning once.

Chat with a session while it works. Messages sent mid-turn are queued and delivered exactly once — never swallowed, never double-run, surviving crashes and reconnects. Errors surface; nothing strands silently.

spec-driven

Every phase reads the project’s mind.

Four documents describe a project beyond its code, and Dorodango injects them into every build-side phase — so each task improves both the product and its own description of itself. The test phase stays blind on purpose: an independent tester judges against its brief alone.

VISION.md human-owned

why it exists

the north star — changes rarely, never as a side effect of a task

spec.md agent-maintained

what it is now

the living spec — build keeps it current, review flags it stale

POLICY.md human-owned

how we build

the engineering stance every phase must honor

CLAUDE.md human-owned

how to run it

commands, ports, repo facts — the layer you already know

pricing

Priced per person, not per prompt.

Dorodango runs on your machine with your own API keys, so what you pay for is the harness — not tokens, not seats you aren’t using. A 7-day trial starts at first boot with no account, no card and no phone-home.

Personal

$19/mo

or $190/yr

One person, 3 machines — laptop, desktop, the box in the corner. The same human, wherever they sit down.

Group

$99/mo

for 5 seats · +$19/mo per extra seat

A team on one shared server: named people on the same board, chat, attribution and presence. Group is what buys multi-user — it is not a bulk rate on Personal.

Enterprise

Negotiated

seats and machines to suit

Run the licence server yourself, or go fully air-gapped. Private tooling, not publicly distributed.

Group is not a volume discount. $99 across 5 seats works out slightly above Personal’s $19 a head, and that is deliberate: Personal has no multi-user support, so five people cannot buy five Personals and share a board. What Group sells is the collaboration, not a cheaper seat.

Dorodango plan comparison
Plan detail Personal Group Enterprise
Price $19/mo or $190/yr $99/mo for 5 seats (min), +$19/mo per extra seat negotiated
Seats 1 ≥5 negotiated
Installations ("machines") 3 1 negotiated
Multi-user no yes yes
License server Dorodango-hosted Dorodango-hosted customer-run, or air-gapped
Tooling public public private — not publicly distributed

Local or remote, the price is the same — a laptop is a machine and a bastion is a machine.

early access

Founders licences are free for 90 days. One per account, 1 seat, 3 machines — the Personal shape, no card, while the programme lasts.

Claim a founders licence The claim page says whether the programme is still open.

get started

Dogfooded, daily.

Dorodango is built with Dorodango — its own friction is the most important bug report it gets. It runs on your machine, with your API keys, against your git repos. Nothing leaves your laptop unless an agent you steered pushes it.

quickstart
# run it — Node ≥ 20 and git are all you need
$ npx dorodango   # opens on :47317

# or keep it around
$ npm install -g dorodango

# point it at a repo, drop a task in design, move the card
  • Node + Fastify + WebSockets
  • Claude Agent SDK
  • git worktrees + plumbing
  • React + Vite
  • markdown files — no database
Get it on npm Self-hosted, local-first. Free 7-day trial, then $19/mo for one person — see all plans. Or claim a founders licence: free for 90 days while early access lasts.