Releases: basecamp/fizzy-cli
Release list
v4.0.1
What's Changed
Features
- Bare pin comments: let Dependabot maintain action version comments by @jeremy in #192
- Rebuild comment sync as a post-merge repair caller by @jeremy in #195
Bug Fixes
- Fix v4.0.0 release fallout: install.sh assets, AUR key fail-fast, docs by @jeremy in #194
- Re-pin dependabot-sync past the bot-author fix by @jeremy in #196
- Correct the --board scope and document the surface gate by @jeremy in #198
Documentation
- Document the Fizzy 3.x Homebrew upgrade path by @robzolkos in #197
Other Changes
- Remove the AI labeler: GitHub Models is retired by @jeremy in #199
- Support profile aliases for shared Fizzy accounts by @robzolkos in #201
Full Changelog: v4.0.0...v4.0.1
v4.0.0
Fizzy CLI 4.0.0
Fizzy 4 is a major expansion of the CLI. It brings a much broader command surface, polished terminal output, strong machine-readable modes, multi-account profiles, built-in JSON filtering, guided signup, better diagnostics, and first-class support for coding agents.
⬆️ Upgrading from Fizzy 3.x
Homebrew: Fizzy 3.x was the fizzy-cli formula in the robzolkos/fizzy-cli tap. Fizzy 4 ships as the fizzy cask in basecamp/tap. Running brew update points the old tap at the new cask, but Homebrew will not tap a third-party tap on your behalf, so finish the move yourself:
brew tap basecamp/tap
brew unlink fizzy-cli
brew install --cask basecamp/tap/fizzy
brew uninstall --formula --force fizzy-cli
brew untap robzolkos/fizzy-cliThen confirm with fizzy --version.
Two things to know about Homebrew's own migration output:
brew migrate fizzy-clidoes nothing here. Homebrew suggests it, but it is a no-op for a formula-to-cask move — it warnsTreating fizzy-cli as a formulaand exits without migrating. Use the commands above instead.brew unlink fizzy-clifirst is not optional. A cask will not overwrite abin/fizzysymlink owned by the formula, so installing the cask while the formula is still linked silently skips the binary — and the later uninstall then leaves you with nofizzyon your PATH at all. If you already hit this,brew reinstall --cask fizzyrestores the link.
Everything else: re-run the install script, or upgrade through your package manager as usual.
curl -fsSL https://raw.githubusercontent.com/basecamp/fizzy-cli/master/scripts/install.sh | bash✨ What’s new
A much larger Fizzy command surface
Fizzy now covers substantially more of the SDK, with new commands for account settings and exports, join codes, board streams and involvement, card publication and read state, column movement, steps, user administration, notification settings, activity, board access, webhook deliveries, email changes, and more.
Card column filtering also happens server-side, making filtered lists faster and more consistent.
(#99, #100, #129 — @robzolkos)
Output that works for people and programs
Fizzy now selects polished styled output in an interactive terminal and JSON when piped. Explicit output modes include:
--json--quiet--ids-only--count--styled--markdown--agent--limit
Human output includes clearer summaries and suggested next steps. For agents and scripts, fizzy commands --json exposes the complete command catalog, while --help --agent provides structured command help.
(#75, #76 — @jeremy; #117, #120 — @robzolkos)
Built-in jq-compatible filtering
Use --jq to transform command results without installing an external jq binary:
fizzy board list --jq '.data[0].name'
fizzy board list --quiet --jq '.[0].name'
fizzy card list --jq '[.data[] | {number, title}]'Expressions are compiled before the command runs, so an invalid expression cannot accidentally allow a mutation to proceed.
(#101 — @robzolkos)
Profiles for multi-account authentication
Each Fizzy account can now have its own saved profile, including its base URL, board context, and credential.
Use fizzy auth list, fizzy auth switch, and --profile to move between accounts. Existing credentials are migrated into profile-scoped keyring storage or a protected fallback file.
(#78 — @robzolkos)
Sign up without leaving the terminal
fizzy signup provides a guided interactive signup flow, while signup start, signup verify, and signup complete expose safe programmatic steps for agents and automation.
New users can move directly from setup into signup, complete account configuration, and then install agent integration.
(#71, #80, #81 — @robzolkos; #87 — @jeremy)
First-class support for coding agents
Fizzy now ships its agent skill inside the binary. The skill installer can install or refresh shared, Claude, OpenCode, and Codex skill locations, including project-scoped installations.
fizzy setup claude installs the Claude Code plugin and connects the embedded Fizzy skill.
(#64, #85, #119 — @robzolkos; #106 — @invzhi)
A real troubleshooting toolbox
fizzy doctor performs a read-only check of the installation, configuration, profiles, credentials, API connectivity, authentication, board context, shell completions, and agent setup. It reports concrete remediation steps without changing anything.
Configuration is easier to understand too:
fizzy config show
fizzy config explain
fizzy doctor --all-profiles(#123 — @robzolkos)
One-step inline attachments
Card descriptions and comment bodies now accept repeatable --attach PATH flags:
fizzy card create --board ID --title "Bug report" \
--description "See attached" \
--attach screenshot.png
fizzy comment create --card 42 \
--body "Logs attached" \
--attach app.log \
--attach trace.txtFiles are uploaded and appended in flag order. The manual upload-and-markup workflow remains available when exact placement is required.
(#128 — @robzolkos)
Webhooks, publishing, and access-token management
Fizzy can now:
- Create, inspect, update, activate, deactivate, and delete board webhooks
- Inspect webhook delivery history
- Publish and unpublish boards
- Publish cards
- List, create, and delete personal access tokens
New access-token secrets are displayed once, when created.
(#83, #96, #129, #157 — @robzolkos)
Search is now real full-text search
fizzy search now uses Fizzy’s dedicated full-text endpoint for ranked, cross-board results and exact card-ID lookup.
For board, tag, assignee, status, sorting, or pagination filters, use fizzy card list --search.
(#114 — @waynemsmith; #160 — @robzolkos)
Quiet update notifications
Release builds check for newer stable versions during interactive sessions. Results are cached for 24 hours and stay out of CI and machine-readable output.
Set FIZZY_NO_UPDATE_NOTIFIER=1 to disable the check.
(#175 — @robzolkos)
🐛 Bug fixes and polish
- Paginated-command breadcrumbs now point to the correct next page, and
webhook list --all --page Nbegins at the requested page. (#96, #159 — @robzolkos) - Invalid column colors are rejected before an API request, with friendly aliases normalized to Fizzy’s API values. (#174 — @robzolkos)
- Temporary server and network failures now retry with exponential backoff and
Retry-Aftersupport. OversizedRetry-Aftervalues can no longer overflow. (#76, #94 — @jeremy) - Root help no longer prints duplicate usage lines. (#97 — @jeremy)
- Styled lists have clearer and more consistent column spacing. (#98 — @robzolkos)
- Stable Homebrew, Scoop, and AUR channels no longer receive release candidates. (#155 — @robzolkos)
- Setup is no longer launched automatically by the installer, avoiding configuration being written under the installer’s environment. Run
fizzy setupexplicitly after installation. (#131 — @dheerapat)
⚠️ Breaking changes
Fizzy 4 includes several intentional interface changes. Scripts written against Fizzy 3 should be reviewed before upgrading.
Output contract
- Interactive terminal output is styled by default. Use
--jsonfor the stable JSON envelope. - JSON responses use
okinstead ofsuccess. - Error responses now expose a top-level
errorstring andcode. - Pagination and location metadata now live under
context. - Automatic timestamp metadata is no longer included.
--pretty...
v4.0.0-rc.6
What's Changed
Other Changes
- Update fizzy SDK for v4.0.0-rc.6 by @robzolkos in #186
Full Changelog: v4.0.0-rc.5...v4.0.0-rc.6
v4.0.0-rc.5
What's Changed
Features
- Add interactive update notifications by @robzolkos in #175
- [codex] Update fizzy SDK for v4.0.0-rc.5 by @robzolkos in #179
Bug Fixes
- fix: auto setup after install is broken, let user run it manually by @dheerapat in #131
Documentation
- Document Homebrew transition for Fizzy 4 by @robzolkos in #176
Other Changes
- Validate column colors in the CLI by @robzolkos in #174
New Contributors
- @dheerapat made their first contribution in #131
Full Changelog: v4.0.0-rc.4...v4.0.0-rc.5
v4.0.0-rc.4
What's Changed
Bug Fixes
- Use current attest checksums input by @robzolkos in #170
Full Changelog: v4.0.0-rc.3...v4.0.0-rc.4
v4.0.0-rc.3
What's Changed
Features
- Use cosign bundle for release checksum signing by @robzolkos in #169
Full Changelog: v4.0.0-rc.2...v4.0.0-rc.3
v3.0.3
What's Changed
- Add card self-assign command by @robzolkos in #58
- Add user update command by @robzolkos in #59
- Add user deactivate command by @robzolkos in #60
- Add notification tray command by @robzolkos in #61
Full Changelog: v3.0.2...v3.0.3
v3.0.2
What's Changed
- Fix spurious mentions from literal action-text-attachment tags in CLI content by @robzolkos in #57
Full Changelog: v3.0.1...v3.0.2
v3.0.1
What's New
has_attachmentsfield — Cards now include ahas_attachmentsboolean so you can tell at a glance which cards have file attachments without fetching them individually. Quickly spot cards with attachments in a list:fizzy card list | jq '[.data[] | select(.has_attachments) | {number, title}]'
- Documentation & test coverage — Updated SKILL.md card schema and README with
has_attachmentsusage tips. Added e2e tests to keep it honest. (#56)
v3.0.0
What's New
- Comment attachments — List and download attachments embedded in comments (#55 by @ardavis)
fizzy comment attachments show --card NUMBERfizzy comment attachments download --card NUMBER [INDEX]
--include-commentsflag on existing card attachment commands to include comment attachments alongside description attachmentsfizzy card attachments show CARD_NUMBER --include-commentsfizzy card attachments download CARD_NUMBER --include-comments
-oprefix mode for multi-file downloads (e.g.-o testproducestest_1.png,test_2.png)
Breaking Changes
- Attachment indices may shift —
parseAttachmentsnow filters out non-downloadable entries (e.g.@mentions). If a card description contained mentions alongside real attachments, the 1-based indices will change. Scripts referencing attachments by index on affected cards will need updating. -oflag behavior changed for multi-file downloads — Previously-oonly applied when downloading a single attachment. Now when downloading multiple files,-oacts as a prefix (-o test→test_1.png,test_2.png).