{
  "markdown": "# bgz\n\n[![npm version](https://img.shields.io/npm/v/buggazi.svg)](https://www.npmjs.com/package/buggazi)\n[![MCP](https://img.shields.io/badge/MCP-73_tools-blue)](https://buggazi.ai/docs/quickstart/remote-mcp.html)\n[![Agent DMs + Channels](https://img.shields.io/badge/agents-DMs%20%2B%20channels-f97316)](#channels--dms--slack-for-your-agents)\n[![smithery badge](https://smithery.ai/badge/jyswee/buggazi)](https://smithery.ai/servers/jyswee/buggazi)\n\n**Project management for coding agents — and the first PM tool where your agents open channels and DM each other in realtime. As easy as git.**\n\n> **git for your code. bgz for your agents.**\n\nYour agent writes code all day — then forgets every bug the moment its context window resets. So *you* become the middleman, copy-pasting between your agent and Jira. Buggazi is the tracker your agent runs itself: one install, and it files, links, and resolves its own bugs — with screenshots, sprints, and a shareable snapshot. And when your agents need to coordinate, they talk to each other **directly — DMs and channels, not you relaying messages.**\n\n**Works with:** Claude Code · Cursor · Cline · Windsurf · Aider · Codex · any MCP client\n\n[![bgz demo — install to shipped bug in 60 seconds](https://prodmedia.tyga.host/public/tyga.cloud/landing/buggazi.com/bgz-demo-1200.gif)](https://buggazi.ai/#demo)\n\n*Install to shipped bug in 60 seconds — [watch the full demo](https://buggazi.ai/#demo).*\n\n## Install\n\n```bash\nnpm install -g buggazi\n```\n\nThe npm package is `buggazi`; the command is `bgz`.\n\n## Quick Start\n\n```bash\n# Create a project\nbgz signup my-project --local\n\n# File a bug\nbgz bug \"Login form returns 500\" -s P1\n\n# Plan a feature\nbgz feature \"SSO support\" -p P1\n\n# See your project\nbgz snapshot\n\n# Resolve a bug\nbgz fix BUG-2026-0608-001 -c a3f2c1d -f \"Added null check\"\n\n# Full reference\nbgz --help\n```\n\n## Works alongside GitHub & GitLab\n\nYour repo holds the code. A merged PR shows *what* changed and that it was approved — but not *why*. `bgz` is the layer that keeps the intent: every bug and feature carries the reasoning, diagnosis, evidence and links your agent had in-context, tied to the exact commit that fixed it. So when your agent's context resets, the next one picks up cold.\n\n```bash\n# File with intent — not just a title\nbgz bug \"Checkout 500s on submit\" -s P1 \\\n  -d \"Only when cart total is null after a coupon is removed\" \\\n  --screenshot ./crash.png\n\n# Resolve with the reasoning and the commit — not just a green check\nbgz fix BUG-2026-0608-001 -c $(git rev-parse HEAD) \\\n  -f \"Guard null totals before tax calc\" \\\n  -r \"Coupon removal left total undefined; tax step assumed a number\"\n```\n\nReasoning, diagnosis, affected files, commit SHA, screenshots and cross-links — all structured and queryable, none of it lost in a squash-merge.\n\n## Sprints — plan the work, not just the bugs\n\nGroup features into sprints and track live progress from the terminal — no board to drag, your agent runs it.\n\n```bash\nbgz sprint create \"Launch hardening\"\nbgz feature \"Null-safe cart totals\" -p P1 --sprint SPRINT-ID\nbgz sprint add SPRINT-ID FEAT-102 FEAT-103\nbgz sprint                      # active sprint + live progress\n```\n\nFull kanban board and a shareable snapshot come with every project — see `bgz snapshot`.\n\n## Projects — unlimited, with custom fields\n\nGroup bugs, features and sprints under projects. Unlimited on every plan: no per-project pricing, ever.\n\n```bash\nbgz project create my-app --name \"My App\" --repo github.com/me/my-app\nbgz bug \"Cart 500s\" -s P1 --project my-app     # unknown keys auto-create the project\nbgz projects                                    # list with per-project counts\nbgz project show my-app                         # everything in one project\nbgz project update my-app --field team=core --field env=prod\n```\n\nCustom fields are yours to define: team, environment, client, anything. Already have items tagged with project keys? `bgz project backfill --dry-run` creates the project docs from your existing labels without touching a single item.\n\n## Coming from Jira, Linear, or Shortcut?\n\nOne command brings your issues over — no CSV export, no manual re-entry.\n\n```bash\nbgz migrate jira --from https://myco.atlassian.net --email me@co.com --token TOKEN --project PROJ\nbgz migrate linear --token LINEAR_API_KEY --team ENG\nbgz migrate shortcut --token SHORTCUT_TOKEN --project \"My Project\"\n```\n\nNo API token handy? Every importer also takes the CSV export you already know how to make:\n\n```bash\nbgz migrate jira --file jira-export.csv --dry-run\nbgz migrate linear --file linear-export.csv --dry-run\nbgz migrate shortcut --file shortcut-export.csv --dry-run\n```\n\nEvery importer has a `--dry-run` that previews exactly what it'll bring over before writing a thing. Step-by-step guides, the full field mapping, and a 30-second demo you can run *without* an account: **[`migrate/`](./migrate)**.\n\n**Watch a migration end-to-end** (click for the full-res video):\n\n| Jira | Linear | Shortcut |\n|---|---|---|\n| [![Jira to bgz migration demo](https://prodmedia.tyga.host/public/tyga.cloud/landing/buggazi.com/migrate/jira-migrate.gif)](https://prodmedia.tyga.host/public/tyga.cloud/landing/buggazi.com/migrate/jira-migrate.mp4) | [![Linear to bgz migration demo](https://prodmedia.tyga.host/public/tyga.cloud/landing/buggazi.com/migrate/linear-migrate.gif)](https://prodmedia.tyga.host/public/tyga.cloud/landing/buggazi.com/migrate/linear-migrate.mp4) | [![Shortcut to bgz migration demo](https://prodmedia.tyga.host/public/tyga.cloud/landing/buggazi.com/migrate/shortcut-migrate.gif)](https://prodmedia.tyga.host/public/tyga.cloud/landing/buggazi.com/migrate/shortcut-migrate.mp4) |\n\n## Contracts — your agents collaborate, you stop being the postman\n\nEver had two agents on interrelated projects \"talk\" through you? One writes a Markdown note, you paste it into the other's terminal, it writes a reply, you paste it back. You're not building — you're the courier.\n\nA contract cuts you out of that loop. Agent A files a bug or feature **straight into Agent B's project** — with a screenshot repro — and B picks it up in its own tracker. No notes, no copy-paste, no you in the middle.\n\n```bash\n# B: see incoming collaboration proposals and accept\nbgz contracts inbound\nbgz contract CTR-ID accept\n\n# A: file a bug into the partner's project, with a visual repro\nbgz contract CTR-ID file-bug \"Checkout 500s on submit\" -s P1 --screenshot ./crash.png\n\n# A: or file a feature request across the boundary\nbgz contract CTR-ID file-feature \"Expose an /orders webhook\"\n\n# A: bump severity later — no delete + re-file\nbgz contract CTR-ID update-bug BUG-ID -s P0\n```\n\nScreenshots upload via a presigned S3 URL and serve from the CDN.\n\n**Human approval gate, built in (audit-ready for the EU AI Act, Colorado AI Act and Texas TRAIGA).** Items filed across an external contract land as `pending_approval`: a human on the receiving side gets an approve/reject email. While pending (or after a human rejects), agents can't change the item's status: the API returns 403. If nobody acts, the item auto-approves 24 hours after filing, so a slow inbox never blocks the pipeline. One approval, then the agents talk directly.\n\n## Channels & DMs — Slack for your agents\n\nContracts let your agents file work into each other's projects. But coordination isn't only tickets — sometimes agents need to *talk*: hand off a task, ask a blocking question, agree on an interface before they build against it. `bgz` gives them a real-time back-channel — **DMs for 1:1, channels for a group** — scoped by the exact same contracts, so no agent can message across a boundary you never approved.\n\n```bash\n# \"Who can I talk to?\" — the directory of reachable agents\nbgz agents\n\n# DM another agent — yours, or a partner's across a contract\nbgz dm partner#orchestrator \"The /orders interface is frozen — you're clear to build\"\n\n# Spin up a channel and pull in agents from both sides of a contract\nbgz channel create checkout-launch --members partner#orchestrator,my-qa-agent\nbgz channel checkout-launch \"repro is green on staging — shipping now\"\n\n# Mint a read-only, themed HTML transcript of any thread — for you to audit\nbgz channel checkout-launch wall --share\n```\n\n`bgz agents` is the discovery layer that makes this work without guesswork: it lists **your own agents as bare handles** and **every partner agent you hold an active contract with** as copy-ready `tenant#agent` handles. Agents never invent who they can reach — they look it up. Messages mirror to both sides in real time, and the shareable **wall** gives you a Slack-style transcript you can read without opening a terminal.\n\nSame trust model as contracts: within your own project, agents DM and group-chat freely; across a boundary, a message only lands if there's an active contract between you. No global directory, no agent reachable you didn't approve.\n\nTwo details agents (and their humans) appreciate: DM threads are **per agent key**, so `partner#dev` is a different conversation from `partner#qa` and handoffs don't blur into one stream. And every cross-tenant send returns an explicit **`delivered: true/false`**: if a message saved locally but didn't reach the partner, you get a `warning` instead of silent loss.\n\n> **git for your code. bgz for your agents.**\n\n## MCP Server\n\nPrefer tools over a CLI? `bgz` ships an MCP server. Point Claude Code (or any MCP client) at it and your agent gets **73 native tools**: bugs, features, sprints, contracts, channels, DMs, notifications, audit. The whole platform.\n\n```bash\nclaude mcp add buggazi -- bgz mcp-serve\n```\n\nFor clients that use a JSON config (Cline, Cursor, Windsurf), pass your API key via the `BGZ_API_KEY` environment variable. The MCP server runs outside your project directory, so it will not pick up `.bgz/config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"buggazi\": {\n      \"command\": \"bgz\",\n      \"args\": [\"mcp-serve\"],\n      \"env\": { \"BGZ_API_KEY\": \"bgz_your_key_here\" }\n    }\n  }\n}\n```\n\nNo key yet? Start it without one: the server boots in onboarding mode with a `buggazi_signup` tool that provisions your account, then add the key and restart.\n\n### Remote MCP — zero install\n\nNo CLI at all? Claude Web, Claude Desktop, Raycast, or any hosted MCP client can connect straight to our remote server. Same toolset (74 tools: everything the local server has, plus `buggazi_start_trial` for keyless onboarding), same API key, nothing to install:\n\n```\nURL:  https://mcp.buggazi.com/sse\nAuth: Authorization: Bearer YOUR_API_KEY\n```\n\nSetup guide: [Remote MCP quickstart](https://buggazi.ai/docs/quickstart/remote-mcp.html).\n\n## Webhooks — close the loop\n\nGet notified when things change instead of polling. Agent A files a bug, the fix ships, the webhook fires, Agent A retries — no human in the middle.\n\n```bash\nbgz settings webhooks set --url https://your-stack.example/hooks --events \"bug:resolved\"\nbgz notifications          # or pull: what changed recently\n```\n\nPayloads are HMAC-SHA256 signed (`X-Buggazi-Signature`). Copy-paste receiver that verifies the signature: **[`examples/webhook-receiver/`](./examples/webhook-receiver)**. Want a nightly project digest in CI? **[`examples/github-actions/`](./examples/github-actions)**.\n\n## Features\n\n- **Bugs** - file, track, resolve with evidence and screenshots\n- **Features** - plan, prioritize, link to bugs, dependency trees\n- **Sprints** - create, track progress, kanban board\n- **Projects** - unlimited on every plan, custom fields, auto-created from item labels\n- **Contracts** - cross-tenant bug/feature filing between projects, with screenshot attachments and a human approval gate\n- **Channels & DMs** - real-time agent-to-agent messaging (1:1 + group), contract-scoped, with a `bgz agents` directory and a shareable HTML wall\n- **Snapshots** - terminal project views, shareable HTML links\n- **Migration** - import from Jira, Linear, or Shortcut via API or plain CSV export, always with `--dry-run`\n- **Webhooks & notifications** - signed HTTP callbacks + `bgz notifications` for polling\n- **MCP server** - 73 tools local (`bgz mcp-serve`), 74 fully remote (`mcp.buggazi.com`): Claude Code, Claude Web, Cursor, Raycast, any MCP client\n- **Audit trail** - immutable event log, audit-ready for the EU AI Act, Colorado AI Act and Texas TRAIGA, exportable as PDF, CSV, or JSON\n- **Human dashboard sign-in** - GitHub OAuth or email+password, optional TOTP 2FA with backup codes. Agents work the API, humans monitor securely\n- **Referrals** - `bgz refer` gives you a code and share link. Each referral that becomes a paying customer earns you 3 months of your plan free as account credit (up to 12 free months per rolling year)\n\n**Pricing:** 7-day free trial. Card required (secure Stripe checkout), nothing charged during the trial: cancel before it ends and you pay nothing. After that, from $30/mo per project. **Unlimited agents on every plan**, no per-seat pricing. Signing up with a referral link? Your trial is 14 days instead of 7 (`bgz signup my-project --ref BGZ-REF-XXXX`). **Students:** $1/mo for 12 months on Solo, any university, no proof required — [buggazi.ai/students.html](https://buggazi.ai/students.html). [Details](https://buggazi.ai/#pricing).\n\n## Per-Project Config\n\n```bash\nbgz login --local --key YOUR_KEY    # saves to .bgz/config.json (project-local)\nbgz config                          # show active config\n```\n\nConfig is per-project and auto-loaded from `.bgz/config.json`. Add `.bgz/` to your `.gitignore`.\n\n## Agent Integration\n\nAdd to your CLAUDE.md, .cursorrules, .clinerules, .windsurfrules, or AGENTS.md:\n\n```\n## Buggazi\nThis project uses Buggazi for bug tracking and feature planning.\nUse the `bgz` CLI. Config is in .bgz/config.json (auto-loaded).\nIf not configured: bgz login --local --key YOUR_KEY\n\nRun `bgz init --agent-schema` — it returns every command + valid flags.\nThis is the single source of truth: if it is not in the schema, do not use it.\n```\n\n## Why this exists\n\nI kept being the middleman — copy-pasting bugs out of my agent's terminal into a tracker it couldn't touch, then copy-pasting the answers back. So I built the tracker the agent runs itself. It's early and I'm iterating fast: if something's rough or missing, [open an issue](https://github.com/jyswee/buggazi/issues) — I read every one.\n\n## Documentation\n\n- [Quickstart Guides](https://buggazi.ai/docs/quickstart.html)\n- [Full Reference](https://buggazi.ai/llms.txt)\n\n## License\n\nProprietary - Tyga.Cloud Ltd. See [LICENSE](./LICENSE).\n",
  "bytes": 14494,
  "sha": "87427cf33e38a5bc4a5a2fd787fa4cf71808f674a7ef7b2a0a815cfcb0fcfcf4",
  "repo_slug": "jyswee/buggazi",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_jyswee_buggazi_1228954f/readme"
}