The GUI for Claude Code, Codex, and your CLI fleet — every session in one place, your attention back, agents with real roles.
You already ship with AI CLIs. But you're still juggling raw terminals: hunting for the right session, re-explaining your stack every time, and watching one agent while three other tasks wait. TeemAI is the control surface those CLIs never gave you — one place to see every session, run a team in parallel, and come back to finished work.
You: "Build auth, add tests, update the docs."
✦ Lead splits it into 3 parallel missions
✦ Engineer, Reviewer, Tech Writer — each in its own worktree
✦ You leave for a meeting
✦ Return: "3 done, 1 needs your sign-off"
📦 Releases
Brand vs code naming. "OpenTeam" is the public-facing product brand. The runtime and code truth is TeemAI / teemai — everything on disk and in the code uses this name:
~/.teemai/,teemai.json,teemai.db, and theTEEMAI_HOMEenvironment variable. Do not useOpenTeamas a code identifier, path, filename, or env var; reserve it for marketing copy only.
| What you do today | What it costs you |
|---|---|
| Open 4 terminal tabs for Claude Code / Codex / Qoder | No overview — which session is stuck? which one finished? |
| Scroll JSONL or restart the CLI to find an old conversation | Context lost; you re-read or re-prompt from scratch |
| Copy-paste between agents because they can't see each other | You become the router — the bottleneck |
| One CLI session = one task | Three features in parallel means three context switches |
| Every new session forgets your conventions | "We use Tailwind" for the 21st time |
| Close the laptop → work stops | Your away time is dead time |
TeemAI doesn't replace your CLIs. It wraps them — same binaries, same models, same tool permissions — with a GUI, persistent agents, and orchestration you can't get from a bare terminal.
Raw PTY terminals are fine for hacking. They're terrible for operating a fleet of agents.
TeemAI gives Claude Code, Codex, and Qoder CLI a unified desktop:
- Mission sidebar — every active and historical session in one list, with status dots (running / waiting / error / done)
- Structured chat — tool calls, diffs, and approvals parsed from JSONL, not a wall of ANSI
- Live permission gate — approve or reject tool use without missing it in scrollback
- Web IDE built in — file tree, Monaco editor, multi-tab terminal, git diff, browser preview
- Electron desktop — optional native app, same backend
Your CLIs keep running underneath. TeemAI is the cockpit.
When you run more than one agent, "session management" becomes the product.
- One view, all sessions — Claude, Codex, and Qoder sessions side by side; no tab archaeology
- Session recovery — refresh the page, reconnect WebSocket, reopen a mission — conversation reloads from JSONL (source of truth)
- PTY persistence — terminal processes survive disconnects; you don't lose in-flight work
- Per-agent isolation — each agent gets its own CLI session and git worktree; parallel work without merge fights
- Token and cost visibility — see spend by model and conversation before the invoice surprises you
Stop treating sessions as disposable. Treat them as assets you can return to.
A single generic "coding agent" can't cover review, design, DevOps, and product strategy. You need roles with memory.
Each agent is a directory of markdown — identity, expertise, personality:
ai-assets/agents/code-reviewer/
├── IDENTITY.md ← name, provider, tools
├── AGENTS.md ← system prompt, expertise, workflows
└── SOUL.md ← personality, tone, collaboration style
Register in teemai.json — mix providers per agent (Claude Code on one, Codex on another, Qoder on a third):
10 built-in specialists — Lead, Engineer, Reviewer, Designer, DevOps, Architect, Product Strategist, Growth Marketer, Image Creator, Sensei. Add your own: one SOUL.md + one config line.
Agents carry Skills (workflow, handoff, playwright-cli, code-reviewer-*, skill-creator, …) — executable capabilities, not just longer prompts.
Evolution — agents improve with use, not reset every Monday:
- Cross-session memory — agents retain project context across missions
- DNA metrics — task count, success rate, first-pass rate, quality score per agent
- Evolution log — visible growth trajectory
- Sensei — built-in coach that reads task history and optimizes agent prompts automatically
Orchestration — one human, many agents, one review pass:
- Missions — dispatch a goal; Lead routes, hands off, or builds a DAG workflow
- War Room — shared whiteboard where agents post goals, decisions, artifacts, blockers — no you-as-relay
- DAG workflows — dependencies, retries,
stop/skip/retryfailure policies - Pulse-mode — batch-dispatch → walk away → batch-review: "You were away 2 hours. 3 completed, 1 needs review."
- Cron scheduler — recurring missions with natural-language time rules
This is the operating system for the AI super-individual — one person orchestrating what used to take a team.
git clone https://github.com/korbinjoe/TeemAI.git
cd TeemAI && npm install
# Run (frontend + backend)
npm run dev
# → Open http://localhost:13000
# Or as Electron desktop app
npm run dev:electronPrerequisites: Node.js >= 18, npm, and at least one supported CLI installed (Claude Code, Codex, or Qoder CLI).
- Define your team — built-in agents or custom roles in
ai-assets/agents/+teemai.json - Start a mission — tell Lead what you need; it answers, delegates, or decomposes into parallel work
- Walk away — agents work in isolated worktrees; workflow engine handles deps and failures
- Review and ship — structured results, permission history, and PR-ready diffs when you return
| Agent | Role | What makes it special |
|---|---|---|
| Lead | Orchestrator | Routes, decomposes, creates DAG workflows |
| Fullstack Engineer | Builder | End-to-end feature delivery |
| Code Reviewer | Quality gate | Multi-language review with structured reports |
| UI Designer | Visual + code | Design + implementation, browser-verified |
| DevOps Engineer | Infrastructure | CI/CD, deployment, monitoring |
| Architect | Structure | Architecture assessment, dependency governance |
| Product Strategist | Direction | Competitive analysis, PRDs, wireframes |
| Image Creator | Visual assets | AI image generation via Gemini |
| Growth Marketer | Distribution | Social media, promotion content |
| Sensei | Coach | Analyzes team performance, optimizes agent prompts |
Solo founder — "Landing page, signup API, and copy." Three agents, one review. Next week they already know your stack.
Maintainer — Large contributor PR? Reviewer scans backend, frontend, and config in parallel. Structured report in minutes — and it remembers your conventions next time.
Freelancer — Feature + tests + docs on one client while agents finish another. Pulse-mode turns dead time into deliverables.
┌─────────────┐ ┌──────────────┐ ┌──────────────────────────────┐
│ Web UI │────▶│ Express │────▶│ CLI Agents (PTY Sessions) │
│ (React 18) │◀────│ + WS │◀────│ Claude Code / Codex / Qoder │
└─────────────┘ └──────────────┘ └──────────────────────────────┘
│ │ │
Electron app REST + WS WorkflowEngine
(optional) endpoints WorkflowScheduler
│
┌────────────┼────────────┐
│ │ │
REST API WebSocket SQLite
(Agent/Chat/ (terminal/ (persistent
Workspace) activity) storage)
Design decisions:
- JSONL as source of truth — messages live in JSONL files, not the database
- PTY persistence — terminal sessions survive WebSocket disconnects
- Provider-agnostic — new CLI = implement
SessionDiscovery+OutputParser - Server-driven workflows — dependency resolution, scheduling, and failure handling
| Layer | Technology |
|---|---|
| Frontend | React 18 + TypeScript + Vite + TailwindCSS |
| Backend | Node.js + Express + WebSocket + node-pty |
| Storage | SQLite (better-sqlite3, WAL mode) |
| Desktop | Electron |
| CLI | Commander.js + Ink |
| Editor | Monaco Editor |
| Terminal | xterm.js |
npx teemai serve # Start as web service
npx teemai agents # List configured agents
npx teemai workspaces # Manage workspaces
npx teemai config # View/edit configuration
npx teemai run # Run a task directly
npx teemai chat # Interactive chat mode
npx teemai daemon # Manage background daemon
npx teemai update # Check for updatesRuntime data lives in ~/.teemai/. Team config in teemai.json at the project root.
| Variable | Description | Default |
|---|---|---|
ANTHROPIC_API_KEY |
Anthropic API key | — |
ANTHROPIC_BASE_URL |
Custom API base URL | https://api.anthropic.com |
TEEMAI_HOME |
Data directory | ~/.teemai |
PORT |
Server port | 13001 |
- GitHub Actions integration — trigger workflows from CI
- Plugin marketplace — share and install community skills
- Multi-repo orchestration — agents working across repositories
- Voice dispatch — speak tasks, review results on mobile
- Cost budgets — per-workflow spending limits with auto-pause
We welcome contributions! See CONTRIBUTING.md.
Good first issues are tagged with good first issue.

{ "agents": { "list": [ { "id": "lead", "name": "Lead", "model": "claude-sonnet-4-6" }, { "id": "fullstack-product-engineer", "name": "Fullstack Engineer" }, { "id": "code-reviewer", "name": "Code Reviewer", "provider": "codex" }, { "id": "ui-designer", "name": "UI Designer" } ] } }