# TeamFlow > TeamFlow is a delivery map for issues worked on with Claude Code. It shows every Jira, Linear and GitHub issue at the stage it has actually reached, from the tracker through local dev, test and audit to verified in dev. Reporters post derived state only, a ticket key, a stage, a status, a short summary and evidence links, and one accepted report costs one credit. TeamFlow is run by MacleodLabs at https://codercat.io. It is a paid service with two faces: a REST and MCP API that agents call, and a dashboard that people read. Both sit on one host and one credential. The tenant a report lands in comes from the credential, never from the request body, so a report cannot be addressed to another team's board. A rejected report is never charged. ## The delivery flow Every issue sits at exactly one of eleven gates: the tracker it came from, Local Dev, Local Test, Local Audit, Merge, CI / Build, Deploy Dev, Test Dev, Dev Audit, Verified and Prod Review. Rework is recorded at the gate that failed rather than as a stage of its own. The Claude Code plugin derives the gate from the work itself, so edits, test runs, audits, merges and deploys each become one report, and CI posts through the same route with its own credential. Every other editor and agent runner posts the same reports through the MCP endpoint or the `teamflow-report` command. ## Endpoints - [Capabilities](https://codercat.io/v1/capabilities): the request contract, limits, price and verdicts. Read this before calling. - [Report](https://codercat.io/v1/report): POST one report. Requires `Authorization: Bearer ` or `X-Api-Key`, and an `Idempotency-Key`. - [Account](https://codercat.io/v1/account): the caller's current balance. - [MCP](https://codercat.io/mcp): Streamable HTTP transport, OAuth 2.1 required. - [Auth metadata](https://codercat.io/.well-known/oauth-protected-resource): where to get a token. ## Clients Eight of the eleven clients report automatically, through their own hooks: Claude Code, Cursor, VS Code with GitHub Copilot, Windsurf, Cline, OpenAI Codex CLI, Gemini CLI and JetBrains Junie. The hooks classify each tool call and derive the stage from it, so nobody types a command and nobody instructs the model. Zed and Aider have no agent hooks, so TeamFlow installs git hooks instead: commits, merges and pushes report by themselves. Claude Desktop has no hooks at all and reports because its rules file tells it to; a git hook keeps the board complete when it forgets. Every tool gets the same skills, installed with one command: npx -y github:macleodlabs-ai/teamflow-plugin skills install --for cursor That writes the skills where the tool discovers them, or generates the rules file it reads from the same SKILL.md sources, registers https://codercat.io/mcp in that tool's own format, and installs that tool's hook configuration where it has one. `--for` takes cursor, codex, gemini, copilot, windsurf, cline, zed, jetbrains, claude-desktop, aider and claude-code. The skills are the same nine commands the Claude Code plugin exposes: login, logout, status, bind, unbind, sync, doctor, repos and admin code, plus the MCP client skill. Each wraps a `teamflow` CLI subcommand, so the skill and the shell command are the same thing. Guides, one per tool: - [Claude Code](https://codercat.io/clients/claude-code/): automatic, through the plugin's own hooks. - [Cursor](https://codercat.io/clients/cursor/): automatic, through Cursor's hooks. - [VS Code with GitHub Copilot](https://codercat.io/clients/vscode-copilot/): automatic, through .github/hooks. - [Windsurf](https://codercat.io/clients/windsurf/): automatic, through Cascade hooks. - [Cline](https://codercat.io/clients/cline/): automatic, through Cline's PostToolUse hook. - [JetBrains AI Assistant](https://codercat.io/clients/jetbrains/): automatic, through Junie CLI hooks. - [Zed](https://codercat.io/clients/zed/): no agent hooks; git hooks instead. - [Claude Desktop](https://codercat.io/clients/claude-desktop/): no hooks; the rules file only. - [OpenAI Codex CLI](https://codercat.io/clients/codex-cli/): automatic, through Codex hooks. - [Gemini CLI](https://codercat.io/clients/gemini-cli/): automatic, through AfterTool and AfterAgent. - [Aider](https://codercat.io/clients/aider/): no MCP client and no agent hooks; git hooks and the command line instead. Installing the skills is not the same as them being used. Where the level is rules the agent reports because its rules file told it to, which usually happens and sometimes does not. Anything with a shell posts the same envelope with no model involved, which is what a git hook, an npm script or a CI step should use: npx -y github:macleodlabs-ai/teamflow-plugin report --issue DAEMON-142 \ --stage LOCAL_TEST --status success --summary "42 tests, 0 failing" ## What a report may carry Sent with every report: - the ticket key and the stage it reached - a status and a summary of up to 180 characters - up to eight evidence links, such as a build or a pull request - execution ids and timestamps Never sent, and rejected before being charged: - prompts and model output - diffs and source code - shell commands and their logs - Jira, Linear and GitHub issue bodies The full allowlist is in [the capabilities route](https://codercat.io/v1/capabilities), which is the authority whenever it and this file disagree. ## Pricing - Individual: USD 25 per month, or USD 240 per year. - Team of five members: USD 99 per month, or USD 1,140 per year. - Each paid member adds 2,000 reports a month to a pool the whole organisation draws on. One accepted report is one credit. - Extra members on a team plan are added at the individual rate. Members join by invite link. ## Paying An empty balance returns HTTP 402 with a `payment` object listing what can be bought, each with a `pay_url` that needs no credential. An agent cannot complete payment itself, because every route ends on a page a person must look at, so show the human the cost and the link, wait for the balance to rise, then retry with the same idempotency key. ## Guarantees - The same normalized request on the same service version returns the same `result_hash`. - One idempotency key means one job and at most one charge. - Rejected requests are never charged. ## Pages a reader is sent to An assistant answering about TeamFlow is usually asked one of these next, and the answer is a link rather than a paraphrase. - [Sign up](https://codercat.io/signup/): the only way to buy. Pick a plan, pay through Stripe, then install the skills. - [Privacy policy](https://codercat.io/privacy/): what is collected, who processes it, how long it is kept, and the rights over it. - [Terms of service](https://codercat.io/terms/): the contract, including what happens to an unused balance. - [Security contact](https://codercat.io/.well-known/security.txt): where to report a vulnerability, per RFC 9116. ## Optional - [llms-full.txt](https://codercat.io/llms-full.txt): the same facts at length, in one file. - [Every client](https://codercat.io/clients/): the per-tool guides, listed above. - [teamflow-plugin](https://github.com/macleodlabs-ai/teamflow-plugin): the CLI and the skills, as one public repository. No registry account, no token. - [Cursor rule](https://codercat.io/clients/cursor.mdc): the same, for Cursor. - [Plugin guide](https://codercat.io/clients/claude-code/): what the Claude Code plugin reports and when.