Skip to content

Tandem Documentation

Self-hosted multi-project orchestration, real-browser automation, and an Obsidian-backed vault for memory. Everything runs on your machine, bound to 127.0.0.1.

This site documents how to install, operate, and extend Tandem — the layer between your keyboard and the model. Pick a section below.

Documentation

What Tandem is

Local-first

Three services — API (4200), terminal (4201), frontend (3000) — all bind 127.0.0.1 only. The install hardening refuses 0.0.0.0.

Markdown is the source of truth

Tasks live in vault tasks/*.md with YAML frontmatter, visible from Obsidian and grep-able from the shell. tandem.db holds projects, sessions, approvals, and audit rows only.

A real fleet

A roster of named agents claim work atomically against SQLite, run in worktree isolation, and stream their stdout through the same tmux substrate as the Terminal page.

Air-gapped by default

Stdlib-only Python backend (no pip install at runtime), every service localhost-bound, and safe-scrape.py the only sanctioned path to fetch external content.

For pricing, features, or a demo see tandembase.xyz.