bzr - Bugzilla CLI
A command-line interface for Bugzilla servers, written in Rust. Inspired by the GitHub CLI (gh), bzr lets you search, view, create, and update bugs, manage comments and attachments, and switch between multiple Bugzilla instances — all from your terminal.
Features
- Bug management — list, search, view, create, clone, update, and batch-update bugs; view change history
- Bug workflow — view your bugs (
bzr bug my), save reusable field templates, and run saved queries - Comments — list and add comments, with
$EDITORintegration for composing - Comment tags — add, remove, and search comment tags
- Attachments — list, download, upload, and update file attachments with auto-detected MIME types
- Flags — set, request, and clear flags on bugs and attachments
- Products — list, view, create, and update products
- Components — create and update product components
- Classifications — view classification details
- Fields — look up valid values for bug fields (status, priority, severity, etc.)
- Users — search, create, and update users
- Groups — list members, add/remove users, view, create, and update groups
- Server diagnostics — check server version and extensions (
whoami,server info) - Admin operations — create and update products, components, users, and groups
- Multi-server — configure and switch between multiple Bugzilla instances
- Output formats — human-readable tables (with colored status) or JSON for scripting
- Secure auth — API key sent via
X-BUGZILLA-API-KEYheader by default; falls back to query parameter auth for older servers
Installation
Pre-built binaries
Download the latest release for your platform from GitHub Releases.
Available platforms: Linux (x86_64, aarch64, ppc64le, s390x), macOS (x86_64, Apple Silicon), Windows (x86_64).
From crates.io
From source
Requires Rust 1.70+.
Onboarding
If you are new to bzr, this is the fastest path from install to a working Bugzilla session.
1. Install bzr
Use a release binary from GitHub Releases, install from crates.io, or install from source:
For a local source checkout:
2. Configure your first server
# For Bugzilla 5.1+ (REST API)
# For Bugzilla 5.0 or earlier (XMLRPC)
3. Verify authentication
4. Run your first queries
# List the user's open bugs
# List open bugs in a product
# View a specific bug
# Search across bugs
5. Save time with local workflows
# Save a reusable bug template
# Create a bug from the template
# Save a reusable query
# Run the saved query later
Quick Start
# Common day-to-day commands
CLI Reference
See docs/bzr-cli.md for the full command reference covering all commands and options.
Agent Integration
Claude Code
bzr works well with Claude Code skills because the CLI has stable subcommands, global --json output, and clear exit codes. See docs/skills.md for reusable skill definitions such as bug triage, investigation, patch review, and saved-query workflows.
Typical setup:
~/.claude/skills/
bzr-investigate/SKILL.md
bzr-bug-summary/SKILL.md
bzr-review/SKILL.md
Once installed, invoke them directly from Claude Code, for example /bzr-investigate 12345.
IBM Bob
IBM Bob uses its own SKILL.md conventions under .bob/skills/ or ~/.bob/skills/. See docs/bob-skills.md for Bob-specific examples and guidance tuned for bzr.
The same workflow design carries over cleanly:
- Prefer
bzr --json ...so Bob receives structured data it can parse. - Keep write operations explicit, for example
bzr bug update,bzr comment add --body, andbzr attachment upload. - Encode repeatable workflows such as "summarize bug", "review patch attachments", or "run saved query and report results" as Bob prompt templates.
The important compatibility point is that bzr is agent-friendly by default: global flags are consistent, machine-readable output is built in, and saved templates and queries let agents reuse local workflows without custom wrappers.
JSON Output
All list and view commands support --output json for scripting and piping to tools like jq:
# Get bug IDs matching a search
|
# Extract assignee from a bug
|
# List attachment filenames
|
# Get product component names
|
# List allowed status transitions from NEW
|
Configuration & Authentication
Configuration is stored in ~/.config/bzr/config.toml with support for multiple named servers. See docs/bzr-cli.md for the full file format.
Authentication
bzr authenticates using Bugzilla API keys. When you run bzr config set-server, it auto-detects whether your server supports header-based auth (X-BUGZILLA-API-KEY) or query parameter auth (Bugzilla_api_key), and caches the result. See docs/bzr-cli.md for details on generating and configuring API keys.
License
MIT
