For members
Terminal integration (CLI & MCP)
Post your work — tasks, docs and reviews — into the Twindem Board & Docs straight from Claude Code or Codex, without the desktop app. Everything is signed with your name, covering Twindem's full loop: plan → work → review → done.
What it is
A small package you install once. It gives your terminal AI agent a set of /twindem-* commands (and, optionally, MCP tools) that read and write the Twindem Board & Docs. One shared engine drives three front-ends:
- Claude Code — slash-command skills (
/twindem-task,/twindem-review, …). - Codex — prompt commands plus an
AGENTS.mdsection. - MCP server — the same operations as tools for any MCP client (Claude Code, Codex, Cursor…).
Requirements: python3 (3.9+ for the CLI; 3.10+ for the MCP server).
Install
From the terminal client package (delivery-board repo, clients/terminal/):
./install.sh # helper + Claude Code skills
./install.sh --codex # + Codex prompts and AGENTS.md
./install.sh --mcp # + MCP server (Claude Code, Codex, Cursor…)
./install.sh --all # everything
It installs the helper to ~/.twindem/bin/twindem and the Claude Code skills to ~/.claude/skills/. Remove it with ./install.sh --uninstall.
Sign in
With your browser (recommended)
~/.twindem/bin/twindem login --browser
It prints a short code and opens the browser. Approve the device in the Twindem Admin app (you enter that code); an API key is issued to you and stored locally — nothing to copy-paste.
With an API key
~/.twindem/bin/twindem login "twd_live_…"
Create a key under Twindem → API Keys. It is stored at ~/.twindem/config.json (readable only by you) and never printed.
Everything you post is attributed to the key's owner, so signing in with your own key stamps your tasks, docs and reviews with your name on the board.
Then pick your context:
/twindem-projects # pick the project
/twindem-boards # pick the board
/twindem-spaces # pick the doc space
Commands
In Claude Code and Codex these are slash commands; under MCP the same operations are tools.
/twindem-login— connect (API key or--browser)/twindem-status— who you are + active project / board / space/twindem-projects·/twindem-boards·/twindem-spaces— list / switch the active context/twindem-list— list work items (--mine,--phase in_progress|uat|review|…,--type bug)/twindem-mine— items assigned to you/twindem-task— create a work item (--claimto take it)/twindem-log— comment on / move a work item/twindem-doc— write a TDocs page in the active space/twindem-review— findings; review a diff and post findings; resolve; request review/twindem-learn— capture a shared learning; read the team's approved knowledge
Examples
# what's assigned to you, or what's in testing
~/.twindem/bin/twindem mine
~/.twindem/bin/twindem list --phase uat
# create a task and take it
~/.twindem/bin/twindem task "Fix login redirect" --type bug --priority P1 --claim
# log progress, move it along
~/.twindem/bin/twindem comment DB-0042 "Root cause: stale cookie"
~/.twindem/bin/twindem move DB-0042 "In Progress"
# write a doc
~/.twindem/bin/twindem doc "Auth design" --body-file notes.md --status draft
Natural phrases map to phases: “in progress” → in_progress, “in testing” → uat, “in review” → review.
Review — Twindem's core
Twindem is built around review recorded on the task. From the terminal your agent can review the current change and post structured findings:
# see existing findings + comments
~/.twindem/bin/twindem review DB-0042
# after reviewing the diff, post a finding (severity + file:line)
~/.twindem/bin/twindem review-add DB-0042 "Missing null check" --severity high --file src/auth.ts --start 42 --body "Crashes when the header is absent — guard before use."
# resolve it, or ask for a human review
~/.twindem/bin/twindem review-resolve DB-0042 "Missing null check" --status resolved
~/.twindem/bin/twindem review-request DB-0042
Severities: blocker · critical · high · medium · low · info. Findings and comments are signed with your name.
Shared knowledge
Capture a durable learning once and it becomes context for every agent on the project — after an admin approves it (the approval gate keeps noise and mistakes from spreading).
# capture a learning (saved as "proposed" until approved)
~/.twindem/bin/twindem learn "Payment webhooks retry up to 3× — make handlers idempotent." --area payments
# read the team's approved knowledge for the active project
~/.twindem/bin/twindem knowledge
Under MCP the same appears as the twindem_learn tool and a twindem://knowledge resource that injects the approved knowledge into the agent's context automatically.
MCP setup
The MCP server exposes every operation as a self-describing tool, so any MCP client picks up the whole toolset automatically.
Claude Code
claude mcp add twindem -- python3 ~/.twindem/mcp/server.py
Codex (~/.codex/config.toml)
[mcp_servers.twindem]
command = "python3"
args = ["~/.twindem/mcp/server.py"]
Tools include twindem_task_create, twindem_review_add, twindem_list and more — plus a live resource, twindem://board/current, that injects the active board into the agent's context.
Multiple projects & boards
Your active project, board and doc space persist between commands. Switch anytime with the picker commands, or bind a directory so it auto-selects when you work there:
~/.twindem/bin/twindem bind # bind the current directory to the active project
Access & attribution
A member can create tasks, docs and reviews, comment and move items — but creating boards or doc spaces is admin-only (done in the Admin app). Private boards and spaces are only visible if your role allows it. Because you sign in with your own key, every action is stamped with your user. Keys are revocable any time from Admin → API keys.