# 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://teamflow.macleodlabs.com. 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://teamflow.macleodlabs.com/v1/capabilities): the request contract, limits, price and verdicts. Read this before calling. - [Report](https://teamflow.macleodlabs.com/v1/report): POST one report. Requires `Authorization: Bearer ` or `X-Api-Key`, and an `Idempotency-Key`. - [Account](https://teamflow.macleodlabs.com/v1/account): the caller's current balance. - [MCP](https://teamflow.macleodlabs.com/mcp): Streamable HTTP transport, OAuth 2.1 required. - [Auth metadata](https://teamflow.macleodlabs.com/.well-known/oauth-protected-resource): where to get a token. ## Clients Claude Code is the only fully automatic client: its plugin installs hooks that classify each tool call and derive the stage from it, so nobody types a command and nobody instructs the model. Every other tool gets the same skills, installed with one command: npx -y @macleodlabs/teamflow 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, and registers https://teamflow.macleodlabs.com/mcp in that tool's own format. `--for` takes cursor, codex, gemini, copilot, windsurf, cline, zed, jetbrains, claude-desktop, aider and claude-code. The skills are the same eight commands the Claude Code plugin exposes: login, logout, status, bind, unbind, sync, doctor and repos, plus the MCP client skill. Each wraps a `@macleodlabs/teamflow` subcommand, so the skill and the shell command are the same thing. Guides, one per tool: - [Claude Code](https://teamflow.macleodlabs.com/clients/claude-code.md): automatic, through plugin hooks. - [Cursor](https://teamflow.macleodlabs.com/clients/cursor.md) - [VS Code with GitHub Copilot](https://teamflow.macleodlabs.com/clients/vscode-copilot.md) - [Windsurf](https://teamflow.macleodlabs.com/clients/windsurf.md) - [Cline](https://teamflow.macleodlabs.com/clients/cline.md) - [JetBrains AI Assistant](https://teamflow.macleodlabs.com/clients/jetbrains.md) - [Zed](https://teamflow.macleodlabs.com/clients/zed.md) - [Claude Desktop](https://teamflow.macleodlabs.com/clients/claude-desktop.md) - [OpenAI Codex CLI](https://teamflow.macleodlabs.com/clients/codex-cli.md) - [Gemini CLI](https://teamflow.macleodlabs.com/clients/gemini-cli.md) - [Aider](https://teamflow.macleodlabs.com/clients/aider.md): no MCP client; the command line instead. Installing the skills is not the same as them being used. Outside Claude Code 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 @macleodlabs/teamflow 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 [the reporting contract](https://github.com/macleodlabs-ai/teamflow/blob/main/docs/REPORTING_CONTRACT.md). ## 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. ## Optional - [llms-full.txt](https://teamflow.macleodlabs.com/llms-full.txt): the same facts at length, in one file. - [Client setup](https://teamflow.macleodlabs.com/clients/AGENTS.md): how to wire an agent or IDE to this service. - [Every client](https://teamflow.macleodlabs.com/#clients): the per-tool guides, listed above. - [@macleodlabs/teamflow](https://www.npmjs.com/package/@macleodlabs/teamflow): the CLI and the skills, as one npm package. - [Claude skill](https://teamflow.macleodlabs.com/clients/SKILL.md): the Claude Code client skill. - [Cursor rule](https://teamflow.macleodlabs.com/clients/cursor.mdc): the same, for Cursor. - [Plugin guide](https://github.com/macleodlabs-ai/teamflow/blob/main/docs/PLUGIN.md): what the Claude Code plugin reports and when. - [Source](https://github.com/macleodlabs-ai/teamflow): the repository.