Open source · Local-first · Work in progress
Agents come and go.
Your company stays.
Tandemise is a local-first operating system for running a software company with interchangeable AI workers, tools, and machines. It owns the missions, roles, permissions, artifacts, and approvals, and hands the actual work to whichever runtime you choose.
Not a model. Not a coding agent. Not a chat client. The organization layer above them.
Your missions. Your roles. Your artifacts. Your machines. Your call.
Status
Tandemise is being built in the open. It already runs missions end to end against a real repository: planning, isolated Git worktrees, typed artifacts, deterministic gates, and human approvals. The APIs, data formats, and UI still change week to week, so expect rough edges. There's no hosted version and no sign-up. Follow along, or pull it down and try it.
- ✓Mission engine, DAG scheduling, gates
- ✓Claude Code, Codex & generic CLI runtimes
- ✓Desktop app, approvals inbox
- ◌Packaged installers
- ◌Linux & Windows support
How it works
One sentence in, a verified release candidate out.
You describe an outcome. Tandemise plans a DAG of tasks across specialized roles (product, design, architecture, developer, reviewer, QA, release) and runs each one in an isolated Git worktree on whichever runtime you've routed that role to. It collects typed artifacts at every stage and checks deterministic gates. It only comes to you for decisions that need human judgement.
- Intent
- Plan
- Approve
- Execute
- Review
- QA
- Release candidate
- Your call
“If Claude Code disappeared tomorrow, the organization should survive.”
What it looks like today
The desktop app, as of this week.
Principles
Why it's shaped this way.
Adapters, not integrations
Every runtime implements one contract. The scheduler asks who can do shell + git and is healthy, never whether Claude is available.
Artifacts, not chat
Product specs, plans, change sets, and review reports are typed and validated. A reviewer reads the diff and the spec, not the implementer's transcript.
Gates, not assurances
Progress depends on measured facts like review.blocking_findings == 0. “The developer says it's done” never counts.
Default deny
No tool, path, domain, or app is reachable without an explicit grant scoped to one assignment. A QA worker can't even discover a production-write tool.
Crash recovery built in
The daemon outlives the window. Runs are checkpointed and resumable, and every restart is recorded in the mission timeline.
Local-first
Your repositories, your machine, your keys. The daemon listens on 127.0.0.1, and the organization's state lives in SQLite on your disk.
Quick start
Build it from source.
$ git clone https://github.com/demogar/tandemise.git $ cd tandemise && nvm use $ npm install && npm run build $ npm run daemon # starts tandemd $ npm run desktop # starts the desktop app
Point it at a Git repository and connect a runtime. Claude Code is detected automatically, and any other CLI can be wired in through the generic adapter. Then create a mission.
Follow the build in the open.
Star the repository to follow progress, open an issue with ideas, or read the contributing guide if you'd like to help.