TeamFlow in Claude Code
TeamFlow arrives here as a plugin. It carries the skills and its own hooks, and the hooks derive the stage from the work itself. There is nothing to install with the CLI and no rules file to paste.
Tool Claude Code Reporting Automatic, via hooks
1. Install
/plugin marketplace add macleodlabs-ai/teamflow-plugin
/plugin install teamflow@macleodlabs
/teamflow:login
That is the whole of onboarding. /teamflow:login opens a browser once and stores a revocable refresh token; reporting then runs on a one-hour access token refreshed in the background.
2. What reports, and when
PostToolUse and PostToolUseFailure classify each tool call locally and derive the stage from it. An edit is LOCAL_DEV. A green test run is LOCAL_TEST. A failed audit is LOCAL_REWORK with reworkFrom set to the gate that failed. A merge is MERGE. Reports are deduplicated, queued when the service is unreachable, and never block the session.
3. The skills
| Command | What it does |
|---|---|
/teamflow:login, /teamflow:logout | sign in once, or remove the session |
/teamflow:status | who is signed in, what is bound, what was last sent |
/teamflow:bind DAEMON-142, /teamflow:unbind | name the ticket by hand, or stop |
/teamflow:sync | publish the current state now |
/teamflow:doctor | transport, account, credits, tracker MCP |
/teamflow:repos add owner/repo | register a repository for CI |
They are the same plugin/skills/*/SKILL.md files every other tool gets; inside the plugin they run the bundled script instead of going through npx. Installing them elsewhere is one command:
npx -y github:macleodlabs-ai/teamflow-plugin skills install --for cursor
4. Other tools in the same repository
A team is rarely one tool, and it does not have to be. Every other client gets the same skills, the same MCP endpoint and the same stage vocabulary, and seven of them report through their own hooks as well: every client.
5. Without the agent
Anything that runs in a shell posts the same report with no model involved. A git hook, an npm script, a run configuration, a CI step:
npx -y github:macleodlabs-ai/teamflow-plugin report --issue DAEMON-142 --stage LOCAL_TEST \
--status success --summary "42 tests, 0 failing"
Same envelope, same transport, same credential. Prefer it wherever the board has to be right whether or not an agent remembered. npx -y github:macleodlabs-ai/teamflow-plugin report --help lists every flag.
6. What this is not
Claude Code reports automatically through its own hooks: SessionStart, UserPromptSubmit, PostToolUse, PostToolUseFailure, TaskCompleted, SubagentStart, SubagentStop, Stop and SessionEnd. Nothing to remember. The plugin carries its own hooks, so every edit, test run, audit, merge and deploy reports itself with nothing to install per repository.
The hooks see this tool's own calls and nothing else. A test run in another terminal, a merge from the web UI, a deploy from a pipeline: put npx -y github:macleodlabs-ai/teamflow-plugin report in the git hook or the script that already runs on every change, and those land on the board too.
Inside the plugin that command is already on disk, and the background CI reporters cover the rest: a build that finishes at 3am moves the ticket with nobody at the keyboard.
7. What leaves your machine
TeamFlow is a delivery map for Jira, Linear and GitHub issues, run by MacleodLabs. Reports carry derived state only: a ticket key, a stage, a status, a short summary and evidence links. Prompts, diffs, source code, commands and logs are never sent and are rejected before they are charged.