taiga-link
v0.1.0
Published
Taiga issues in Claude Code: link projects to a repository, read issues and attachments, triage, and hand finished work back for testing.
Maintainers
Readme
taiga-link
Taiga issues in Claude Code. Link the Taiga projects that belong to a repository, read issues with comments and attachments, triage new issues, and hand finished work back to Taiga as a comment plus the "ready for test" status. Integrates with workgate.
- Login happens in your terminal. Only tokens are stored (macOS Keychain, or a 0600 file elsewhere); the password never enters the Claude conversation.
- Issues are referenced as
<PREFIX>-<number>(ERP-123). Taiga numbers are per project, so the prefix is mandatory; bare#42stays a workgate id. - The only writes to Taiga are comments and the switch to your ready-to-test status, and Claude Code asks you to confirm each one.
Install
Claude Code plugin (puts taiga on the PATH, adds the hooks and the /taiga skill):
/plugin marketplace add alexander-rebello/taiga-link
/plugin install taiga-link@taiga-linkCLI only (npm):
npm install --global taiga-linkSetup
taiga login # URL, username, password (hidden); run it in a terminal
taiga link # tick projects, choose a prefix and the ready-to-test status for eachtaiga link writes .taiga.json at the repository root. Commit it so the team shares the link:
{
"version": 1,
"url": "https://taiga.example.com",
"projects": [
{ "id": 12, "slug": "acme-erp", "name": "ERP", "prefix": "ERP", "readyStatus": "Ready for test" }
]
}Commands
| Command | Purpose |
| --- | --- |
| taiga login [--url u --username n --password-stdin] | log in (interactive, or scripted with the password on stdin) |
| taiga logout, taiga whoami | forget tokens, show the user |
| taiga projects [--json], taiga statuses <slug> | your projects, a project's issue statuses |
| taiga link, taiga link add <slug> --prefix P --ready-status S, taiga link remove <P>, taiga link list | manage .taiga.json |
| taiga todo [--mine] [--json] | open issues of the linked projects |
| taiga show <REF> [--json] | issue, comments, attachment names |
| taiga fetch <REF> [--all] | download attachments to ~/.cache/taiga-link/<host>/<project>/<ref>/ and print the paths; videos and files over 25 MB need --all |
| taiga triage [--since YYYY-MM-DD] [--json] | new unassigned issues plus all open titles, for duplicate and priority review (read-only) |
| taiga comment <REF> --text t | add a comment |
| taiga finish <REF> --text t | comment and move the issue to the ready-to-test status |
| taiga import <REF> | create a workgate item for the issue |
In Claude Code
/taigashows open issues and walks through reading, triage and the handoff.- Mention a linked reference such as
ERP-123in a prompt and the issue is added to the context. Unlinked look-alikes (UTF-8,ISO-9001) are ignored. taiga commentandtaiga finishalways trigger a permission prompt showing the full text, also in auto mode. This is a guard against mistakes, not a security boundary.
With workgate
In a repository with .workgate/config.json, workgate is the todo list:
taiga import ERP-123runswg add "[ERP-123] <subject>" --ref taiga=ERP-123with the description as body. Issue type "Bug" becomesbug, everything elsefeature; severity Critical/Important/Normal/Minor and Wishlist maps to S1 to S4. Importing the same issue twice is refused.taiga linkregisterstaiga wg-hookin the workgate config forclaimanddone. On claim it prints the issue; on done it asks Claude to draft the closing comment and runtaiga finishafter your approval.taiga todoandtaiga showshow the workgate id of imported issues.
Requires workgate 0.2.1 or later (--ref and event hooks).
Environment
| Variable | Effect |
| --- | --- |
| TAIGA_LINK_STORE | keychain or file (default: keychain on macOS) |
| TAIGA_LINK_CONFIG_DIR | config and credentials directory (default ~/.config/taiga-link) |
| TAIGA_LINK_CACHE_DIR | attachment cache (default ~/.cache/taiga-link) |
| WG_BIN | workgate binary (default wg) |
Development
pnpm install
pnpm run verify # typecheck, lint, build, testsTests run the built bin/taiga against a mock Taiga server. The workgate tests use ../workgate/bin/wg when present, otherwise the npm package, and are skipped when that version has no --ref.
bin/taiga is a bundled build artifact and is committed because the plugin runs from the git checkout; CI fails when it is stale.
