“Two agents took the same ledger item.”
Both finished. Both were paid for. One diff had to be thrown away, and neither agent ever knew the other was there.
Orchemax
The home page is the short version. This is the day-to-day flow, everything that ships under the seat, how a workspace differs from a project, the controls for whoever pays the bill, and the long answers.
The home page lists three. These are the other three from the same repo.
Both finished. Both were paid for. One diff had to be thrown away, and neither agent ever knew the other was there.
Same workspace, same week, same retry helper. There was no way to ask the other project's agent whether it had already solved it.
A percentage on a slide is not a measurement. You want the number from your repo, and you want to see how it was counted.
Day-to-day flow only: what you do on your machine. No secret recipe; orch keeps the wiring under the seat.
Put orch in its own folder. Run orch setup and pick a separate workspace for your code. The client install is not the workshop home.
Go into a registered project folder and run orch opencode, orch claude, orch commandcode, or your agent. The first interactive seat is the Chair. A second Chair on the same project is blocked.
Why one Chair: if every agent acts like a director, they race the same files, invent duplicate helpers, and the work knots. Workers are for secondary tasks, directed by that Chair — not a second orchestra on the same project. Arrival order picks the Chair; you don’t appoint it in chat. Need more hands? Spawn workers; don’t open another Chair.
Before editing common paths, take a lock. Search the registry before writing the helper. Edit, then release so teammates see the refresh. Don’t edit shared without a lock.
Claim your ledger line so nobody else takes it. Leave short notes and handoffs for the other seats (inbox / notices). Use orch messaging, not a parallel vendor chat between agents.
Link an Orchemax account when you want caps, spend visibility, and the CTO overlook. Source stays local; the cloud sees metadata, not your repo.
These exist elsewhere. What follows is how they differ here. Orchemax is written in Go for a small local binary; your workshops stay polyglot through ~30 language templates (TS, Python, Delphi, Rust, C#, …).
A worktree per agent session is the industry default, and it only isolates. Orchemax adds the logical lock taken before the shared edit and the symbol registry consulted before the helper is written — then orch worktree promote merges fail-closed on conflict and never auto-pushes. Prevention and isolation, not one instead of the other.
Watchdogs that notice a hung agent are common. This tick also fails the task, releases the lock, removes the worktree, sweeps expired externalized context and drops graph edges whose target symbol is gone — in one pass, with no extra database and no terminal multiplexer. Liveness watches the agent's own child PID with a grace window; the interval is yours, unset is 60s and 0 is off.
Several keys per provider in a local vault as a rotating ring, each probed for connectivity before it is saved and never printed back. orch gateway status shows live/cooldown state, ring position and rotation counts, content-free. Claude Code keeps its plan: the gateway refuses an account bearer on purpose and tells you why.
The compressor is generic over any tool output, falls back to raw when parsing fails, and reports bytes saved after its own overhead. Errors, stack traces and non-zero exits are kept verbatim — compression that hides a panic is a bug, not a saving.
Orchemax speaks ACP (JSON-RPC over stdio) as the client. Set agents.transport to acp and a Gemini CLI or OpenCode worker reports structured tool calls and results instead of scraped stdout; the default transport is still a subprocess. Verified for those two; Codex, Claude Code and Cursor run as subprocesses. A worker's permission request routes to the Chair through ask, so it can be approved by an agent rather than a human at the pane.
Free → Starter → Professional → Team → Enterprise. Agents call entitlements_status; quota and plan denials carry upgrade hints, and local Free caps apply when unlinked. Promote can require seeder and repository companions beside a migration so agents do not leave orphan schemas. ORCH_TASK_TOKEN_BUDGET caps a task's budget before it spawns; local secret masking keeps credentials out of the usage ledger and anything pushed as an event.
PostToolUse hook still compresses tool output, and orch usage still counts those tokens from the transcriptorch.agents.concurrent; plan agent counts do not limit themOne command: orch gateway enable, then orch gateway keys add <provider> and orch gateway status.
Illustration only: not a forced template. You declare paths; Orchemax binds
.orch/ + orch.yaml and meters registered projects, not folder scans.
Cross-project ask and search_shared_symbols {project} work inside one workspace like this one.
acme-workshop/ ← WORKSPACE (not a billable project) ├── orch.yaml ├── .orch/ ← Orchemax state only ├── apps/ │ ├── api/ ← registered project (its own Chair) │ ├── web/ ← registered project (its own Chair) │ └── worker/ ├── shared/ │ ├── go/ ← shared.go (+ orch:export) │ ├── css/ ← shared.css tip │ └── js/ ← shared.js tip ├── tools/ └── docs/ Order: 1 workspace → 2 register projects → 3 shared by language (+ assets) api's agent can ask web's Chair; the answer carries project + path + line.
Ideal order to teach: workspace root → register projects → shared by language (and cross-cutting assets when every app assumes them). One Chair per project, several projects per workspace, one bus for all of them.
Solo builders get a governed local factory. Team CTOs get the overlook: who can run what, how much, and when — without babysitting every session.
Caps on projects, concurrent agents, devices, and runs. Token and spend visibility by project and model. Soft stop before the invoice surprises you.
Define when agents may run: business hours, quiet nights, freeze windows before releases. Policy travels with the org, not a sticky note in Slack.
One Chair per project on the floor; Team+ allowlists who may dispatch and who may touch shared, so “anyone with a CLI” is not your security model.
Governance events, ROI hours, live fleet pulse. Team Assist (approve/deny) live in /app; Telegram bot channel shipping. Metadata only, never source. You renew the subscription because you can see the floor.
CTOs answer “where did the AI money go?” with content-free facts — never source. Tokens, who spent them, gateway savings, and policy proof.
Sample figures, not live tenant data. ROI hours below are an estimate from attempt counts until work-pulse lands; compression and token mix are real gateway pushes. Your own numbers come from orch usage, not from this card.
12.5h
Attempts × 0.25h — a renewal talking point, not a billing figure.
sample
Bytes kept off the wire vs sent, net of crush overhead. Read yours in orch usage.
14
Promotes, denials, locks, claims — proof the floor is governed.
5 online
Workstations + agent pulse. Pass / HITL / promoted to shared.
No customer quotes, no logos, no counter. Three things you can check yourself:
tests/benchmark/antidup is a Go test; the workflow .github/workflows/antidup-benchmark.yml uploads its JSON as the antidup-bench-json artifact on every run — duplicates shipped, duplicates blocked, broken merges, conflicts detected.orch usage on your repo, on the free tier, on day one.TestMarkdownContentFree fails if code text ever appears in it.The four things people ask on the way in, answered without the sales version.
No. Orchemax does not proxy your traffic and does not replace your login. It registers MCP tools your agent can call and one harness hook. The CLI you open is the CLI you had.
It used to — a bug injected API credentials into a plan login and killed the subscription. That is fixed, the gateway now refuses to substitute an account credential and says why, and plan-billed seats are compressed by the local hook rather than routed anywhere.
No. The runtime is local. A linked account receives counters, model names, session ids and governance events — content-free by payload schema, with a regression test that fails if code text ever appears in it. Unlinked workshops keep working.
Worktrees isolate and defer the collision to merge time. What is left is the lock taken before the shared edit, the registry consulted before the helper is written, the claim on the ledger line, the reaper that cleans up after a crash, and a promote that refuses rather than guesses.