Get started
Five steps, and about ten minutes of it is waiting for an import. At the end your board draws itself from the work you were doing anyway, and there is no key to copy and nothing to remember to type.
Create your organisation
- Open codercat.io/signup/.
- Enter your work email address and the name of your organisation.
- Finish signing up.
The first person to sign up creates the organisation and owns it. Everybody else joins by invite link, which the owner sends from the members page. The organisation's domain comes from the owner's email address.
Every new organisation gets the Growth plan free for 30 days, with no card. Paid plans open soon, and your trial keeps going until then. Your team says more.
Signing in next time
If the device you signed up on unlocks with a fingerprint or a face, setup offers you a passkey on its first step. Taking it is one press, skipping it changes nothing, and it never replaces the other ways in — Google, GitHub and an emailed link all keep working.
You can add one whenever you like: your name at the top right of the dashboard → Add a passkey. A passkey lives on the one device, so add one on each device you sign in from.
One thing has to be true for the offer to appear, and when it is not, nothing is shown rather than a button that cannot work: the device can make one — a built-in fingerprint reader or face camera. A security key on a keyring is not enough.
However you signed in — Google, GitHub or an emailed link — the offer is the same. One person is one account here, so the three are three doors into it rather than three accounts, and a passkey added behind any of them works with all of them.
Connect your sources
Your issues come from your tracker, not from your editor. Connect one and the board fills with the work you already have.
- On the dashboard, open Integrations from the account menu. Only an owner or admin can connect.
- Press Connect beside GitHub, Linear or Jira, and approve what the tracker shows you.
- You land back on Integrations with the connection live.
TeamFlow then imports every open issue the connection can see, in the background, and the issues appear on the board as they arrive. Jira is connected by pasting a webhook instead; connect a tracker has all three.
Connecting a tracker is optional. Without one the board still draws what the plugin and CI report — it just starts empty.
Make your first project
A project is one or more repositories, with the tracker projects linked to them. It is how the board is divided up and what decides which issues get imported.
- Name the project.
- Choose the repositories that belong to it.
- Choose the tracker projects, teams or repositories whose issues it should carry.
A repository belongs to one project per organisation, and a session belongs to one project through its repository. Projects is the whole of it, including what happens to work that does not fit.
Install the plugin
In Claude Code, run these two lines in any repository of the project:
/plugin install teamflow@macleodlabs
/teamflow:login
From a shell instead, the same thing in two commands:
claude plugin marketplace add macleodlabs-ai/teamflow-plugin
claude plugin install teamflow@macleodlabs --scope user
Using something other than Claude Code? Other tools has the one line for each.
Signing in
/teamflow:login authorizes the plugin on this machine, once. It opens TeamFlow's consent page in the browser you already have: the page names the tool and the computer asking, shows a short code, and has Approve and Deny. Check the code matches the one in your terminal and press Approve; if you are not signed in to TeamFlow in that browser, you sign in on the same page first. There is no key to paste, and the command finishes by itself.
If your terminal is on a different machine from your browser — a build box, a container, a server over SSH — run the same command there:
npx -y github:macleodlabs-ai/teamflow-plugin login
With no browser to open, it prints the short code in the terminal and the consent page's address. Open it in a browser anywhere, check the code and approve. The command polls and finishes on its own.
If your address holds a seat in more than one organisation, the consent page asks which one the machine syncs to.
The machine stays authorized until it is revoked — by /teamflow:logout, or from the Organisation page, which lists every connected computer. Reports carry a one-hour access token; the long-lived part is sent only to TeamFlow's token endpoint.
Your first report
Now do some work. Edit a file, run your tests, merge a branch. The plugin's hooks classify each of those and post one report, and the ticket moves across the board on its own.
To check it arrived:
npx -y github:macleodlabs-ai/teamflow-plugin status
It prints who is signed in, which organisation the reports belong to, which ticket is bound and what was last sent. If nothing is moving, troubleshooting is in the order that finds it fastest.
Nothing you type and nothing you write leaves the machine. What a report carries is the list, and it is enforced by the service rather than promised here.