Skip to content
Tandemise

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.

Work in progressv0.4.0macOSNode 22Apache-2.0

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.

  1. Intent
  2. Plan
  3. Approve
  4. Execute
  5. Review
  6. QA
  7. Release candidate
  8. Your call

“If Claude Code disappeared tomorrow, the organization should survive.”

The test this codebase is built to pass. Missions, roles, decisions, and history stay intact. Only an adapter changes.

What it looks like today

The desktop app, as of this week.

All screenshots →

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.

Full guide →
macOS · Node 22
$ 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.