Releases: basecamp/basecamp-cli
basecamp v0.4.0
This update enhances the CLI's file management capabilities with the introduction of attach and upload commands, enabling direct file uploads with rich contextual embedding references, including support for inline images in rich text. Campfire commands now allow inline file uploads and streamline chat room interactions with features like direct message posts and attachment uploads. The user experience has been further refined with better help output, argument schema parsing, and example-rich documentation for API subcommands.
The authentication system now offers more robust handling of legacy tokens, auto-detecting OAuth types for seamless scope transitions. Enhanced error reporting improves debugging, particularly for whitespace-only mutations or invalid configuration flags. Additionally, visual improvements
Install
macOS:
brew install --cask basecamp/tap/basecamp
basecamp auth loginLinux (deb/rpm/apk):
Download the package for your architecture from the assets below, then:
sudo apt install ./basecamp-cli_0.4.0_linux_amd64.deb # Debian/Ubuntu
sudo dnf install ./basecamp-cli_0.4.0_linux_amd64.rpm # Fedora/RHEL
sudo apk add --allow-untrusted ./basecamp-cli_0.4.0_linux_amd64.apk # Alpine
basecamp auth loginArm64 users: substitute arm64 for amd64 in the filename. Verify the SHA-256 checksum from checksums.txt before installing — especially Alpine packages installed with --allow-untrusted.
Arch Linux / Omarchy:
yay -S basecamp-cli
basecamp auth loginNix:
nix profile install github:basecamp/basecamp-cli
basecamp auth loginWindows:
scoop bucket add basecamp https://github.com/basecamp/homebrew-tap
scoop install basecamp
basecamp auth loginOther platforms: download the matching archive from the assets below.
What's Changed
⚠️ Breaking Changes
- Fix scope selection misleading Launchpad users by @jeremy in #232
- Rename subject variable to title in message shortcut by @jeremy in #246
Features
- Remove PGO from release workflow by @jeremy in #233
- Structured missing-arg errors for agent elicitation by @jeremy in #235
- Add bin/ci and skill drift check by @jeremy in #236
- Structured positional-arg metadata in help system by @jeremy in #240
- Bump picker and list visible limits from 10 to 20 by @jeremy in #245
- Add examples to api command and subcommands by @jeremy in #244
- Add --completed shorthand flag to todos list by @jeremy in #258
- Add recordable trash, archive, and restore subcommands by @jeremy in #259
- Improve message board selection help text by @jeremy in #260
- Add accounts command and improve account selection UX by @jeremy in #261
- Add message presenter schema by @jeremy in #256
- Track skill version and auto-refresh after upgrade by @jeremy in #265
- Add attachment support: attach, upload, --attach, inline images by @jeremy in #242
- Polish boost display and copy by @jeremy in #262
- Upgrade basecamp-sdk to v0.4.0 by @jeremy in #266
- Style kanban boost label and deduplicate boostLabel helper by @jeremy in #267
Bug Fixes
- Fix review followups from #235 by @jeremy in #237
- Fix pagination gaps in config project and todolist resolver by @jeremy in #241
- Distinguish disabled tools from missing tools in errors by @jeremy in #247
- Collapse multiline text in table cells by @jeremy in #251
- Surface error details in todo complete/reopen by @jeremy in #252
- Fix auth token refresh by passing client credentials by @jeremy in #254
- Refetch full content for generic show recordings by @jeremy in #255
- Fix MarkFlagRequired rejecting alias flags by @jeremy in #248
- Fix campfire output: typed slice and campfire_line schema by @jeremy in #253
- Pad list widget output to allocated height by @jeremy in #263
- Fix sync-skills workflow permissions by @jeremy in #264
- Register --in/--project flags on comments commands by @jeremy in #249
- Reject whitespace-only content in mutation commands by @robzolkos in #238
Other Changes
- Skill evals system by @jeremy in #239
- Surface dock tools, app URLs, and project IDs in presenter output by @jeremy in #257
Full Changelog: v0.3.1...v0.4.0
basecamp v0.3.1
Significant improvements have been made to todoset handling in projects with multiple todosets. Command flags now support specifying --todoset to clearly identify and disambiguate todoset references. For projects with multiple todosets and no explicit selection, interactive resolution or clear error messages guide the user in providing the correct identifier. Commands affected include those related to todosets, todolists, and todos. This change improves workflows by making todoset-dependent operations more user-friendly
Install
macOS:
brew install --cask basecamp/tap/basecamp
basecamp auth loginLinux (deb/rpm/apk):
Download the package for your architecture from the assets below, then:
sudo apt install ./basecamp-cli_0.3.1_linux_amd64.deb # Debian/Ubuntu
sudo dnf install ./basecamp-cli_0.3.1_linux_amd64.rpm # Fedora/RHEL
sudo apk add --allow-untrusted ./basecamp-cli_0.3.1_linux_amd64.apk # Alpine
basecamp auth loginArm64 users: substitute arm64 for amd64 in the filename. Verify the SHA-256 checksum from checksums.txt before installing — especially Alpine packages installed with --allow-untrusted.
Arch Linux / Omarchy:
yay -S basecamp-cli
basecamp auth loginNix:
nix profile install github:basecamp/basecamp-cli
basecamp auth loginWindows:
scoop bucket add basecamp https://github.com/basecamp/homebrew-tap
scoop install basecamp
basecamp auth loginOther platforms: download the matching archive from the assets below.
What's Changed
Features
- Add todoset elicitation for multi-todoset projects by @jeremy in #230
- Replace per-command custom help with a global styled renderer by @jeremy in #229
Bug Fixes
Full Changelog: v0.3.0...v0.3.1
basecamp v0.3.0
--assignee flag for recordings has been replaced with reports assigned. Please update any relevant scripts accordingly.
The update features several improvements to authentication, including the addition of remote/headless mode for OAuth login and enhanced workflows for managing credentials. The update also tightens security with improvements to OAuth callback handling and sensitive-change protections, addressing potential script injection vulnerabilities. Additionally, support for multiple user identities and first-run onboarding setups has been streamlined, including new options for remote environments and local-only configurations.
The new release also brings a set of visual and usability enhancements. These include a polished root help interface with detailed examples, curated command categories, and refined documentation for output modes and agents. Users will notice improved layouts in project sorting and more intentional help page updates tailored for both human users and API-based agents. Furthermore, new features like OSC 8 clickable
Install
macOS:
brew install --cask basecamp/tap/basecamp
basecamp auth loginLinux (deb/rpm/apk):
Download the package for your architecture from the assets below, then:
sudo apt install ./basecamp-cli_0.3.0_linux_amd64.deb # Debian/Ubuntu
sudo dnf install ./basecamp-cli_0.3.0_linux_amd64.rpm # Fedora/RHEL
sudo apk add --allow-untrusted ./basecamp-cli_0.3.0_linux_amd64.apk # Alpine
basecamp auth loginArm64 users: substitute arm64 for amd64 in the filename. Verify the SHA-256 checksum from checksums.txt before installing — especially Alpine packages installed with --allow-untrusted.
Arch Linux / Omarchy:
yay -S basecamp-cli
basecamp auth loginNix:
nix profile install github:basecamp/basecamp-cli
basecamp auth loginWindows:
scoop bucket add basecamp https://github.com/basecamp/homebrew-tap
scoop install basecamp
basecamp auth loginOther platforms: download the matching archive from the assets below.
What's Changed
⚠️ Breaking Changes
- First-run onboarding: setup wizard, login aliases, Claude integration by @jeremy in #190
- Reverse gap analysis: adopt parity innovations by @jeremy in #197
- Generalize agent setup with registry pattern by @jeremy in #206
- Resolve "me" via profile API; require explicit project for cross-cutting todo filters by @jeremy in #205
- Polish: dual-vocabulary CLI — app terms for humans, API terms for agents by @jeremy in #222
Features
- Tighten Claude Code plugin by @jeremy in #191
- Migrate internal/auth and internal/output to consume shared basecamp/cli module by @jeremy in #192
- Migrate to Bubble Tea v2 by @jeremy in #196
- Add deb/rpm/apk packages and Nix flake to releases by @jeremy in #195
- Remote/headless OAuth authentication (#194) by @jeremy in #198
- Harden builds, polish releases, add plugin agents and docs by @jeremy in #199
- Add Bonfire: multi-campfire river view, front page, and ticker by @jeremy in #203
- Clickable OSC 8 hyperlinks in rendered output by @jeremy in #207
- Visual polish: animated wordmark, install script, interactive skill wizard by @jeremy in #208
- Privilege-separate AI labeler and gate release secrets by @jeremy in #211
- Pool monitor sidebar and persistent pool cache by @jeremy in #204
- Add direct-push alerting and sensitive-change gate by @jeremy in #214
- Unified trace system for CLI and TUI observability by @jeremy in #213
- Normalize drag-and-drop file paths for terminal attachment by @jeremy in #209
- Polish: root help, project sorting, list alignment by @jeremy in #219
Bug Fixes
- Fix agent routing: recordings --assignee → reports assigned by @jeremy in #200
- Fix "me" resolution: stop conflating identity IDs with person IDs by @jorgemanrubia in #202
- Harden workflows against script injection by @jeremy in #210
- Fix install script version detection on Windows by @jeremy in #223
- Fix search returning irrelevant results by @jeremy in #226
- Tighten install script version guard to full semver by @jeremy in #225
Documentation
- Document v0.2.2 features in SKILL.md by @jeremy in #193
- Document output modes for agents and surface --md in help by @jeremy in #221
- Restore --stats to output modes documentation by @jeremy in #228
Other Changes
New Contributors
- @jorgemanrubia made their first contribution in #202
Full Changelog: v0.2.3...v0.3.0
basecamp v0.2.3
This release focuses on refining the user experience and improving the quality of automated output. It fixes an issue with the notarization process where an incorrect value was being returned, ensuring more reliable behavior when notarization is enabled in templates. This addresses a critical requirement for smoother workflows involving notarized builds.
There are also adjustments to the AI-driven changelog generation features. The changelog prompt has been retooled to produce concise narrative summaries, improving the clarity and utility of automated release notes. Additionally, extraneous markdown code fences are now stripped from AI outputs, ensuring cleaner and more professional results in generated content. These updates enhance the overall utility of the tool, especially for teams relying on automated changelog generation.
Install
macOS:
brew install --cask basecamp/tap/basecamp
basecamp auth loginArch Linux / Omarchy:
yay -S basecamp-cli
basecamp auth loginOther platforms: download the matching archive from the assets below.
What's Changed
Bug Fixes
Full Changelog: v0.2.2...v0.2.3
basecamp v0.2.2
basecamp config trust a .basecamp/config.json before authority keys like base_url and profiles take effect.
Add --subscribe / --no-subscribe flags to recording creation commands (documents, messages, schedule entries) for subscription control. Support custom OAuth redirect_uri for environments that need non-default callback URLs. Convert HTML content to markdown in presenter output, including rendering todos as task lists.
Fix AI labeler re-adding already existing labels and restore error guards on labeler edit calls. Fix 86 CodeQL findings across Go, Python, and CI workflows.
Enable macOS code signing and notarization for release binaries. Add config trust / config untrust commands for the new trust model.
Install
macOS:
brew install --cask basecamp/tap/basecamp
basecamp auth loginArch Linux / Omarchy:
yay -S basecamp-cli
basecamp auth loginOther platforms: download the matching archive from the assets below.
What's Changed
Features
- Render todos as markdown task lists by @jeremy in #178
- Add config trust model for authority keys by @jeremy in #181
- Add macOS code signing and notarization by @jeremy in #185
- Support custom OAuth redirect_uri by @jeremy in #186
- Add --subscribe / --no-subscribe to recording creation commands by @jeremy in #187
Bug Fixes
- Fix AI labeler no-op relabeling noise by @jeremy in #179
- Fix 86 CodeQL findings across Go, Python, and CI workflows by @jeremy in #177
- Restore error guards on AI labeler edit calls by @jeremy in #180
- Convert HTML content to markdown in presenter output by @jeremy in #184
Full Changelog: v0.2.1...v0.2.2
basecamp v0.2.1
Changelog
⚠️ Breaking Changes
- Switch AUR package from binary to source-based (requires manual action for existing installations).
- Rename AUR package:
basecamp-bin→basecamp-cli.
Features
- Add custom AUR binary publish for basecamp-cli.
- Enable source archive for AUR source-based package.
- Add AUR install method to the README.
Bug Fixes
- Fix AUR publish: match exact archive filenames and use the 37signals author.
- Fix AUR package name to
basecamp-cli-bin.
Improvements
- Use package managers in release install instructions.
- Revise AUR install instructions to reflect
basecamp-cli-bin. - Update circuit breaker tests to ensure accurate simulation of state transitions and timeouts.
Install
macOS:
brew install --cask basecamp/tap/basecamp
basecamp auth loginArch Linux / Omarchy:
yay -S basecamp-cli
basecamp auth loginOther platforms: download the matching archive from the assets below.
What's Changed
Bug Fixes
Full Changelog: v0.2.0...v0.2.1
basecamp v0.2.0
Changelog
Breaking Changes ⚠️
⚠️ Migrate CLI to flat SDK routes, removing bucketID arguments in various commands, impacting how project-related commands are executed.⚠️ Remove legacy Docker release channel.
Features
- Add
--bundleflag for cosign v4 compatibility. - Add support for structured JSON help with
--help --agent. - Introduce new
--hintsand--no-hintsglobal flags to toggle follow-up suggestions in CLI output. - Self-describing CLI: Add structured JSON output for
--help --agentand include--help --agentsupport for all commands. - Add new
basecamp upgradecommand for seamless upgrade process.
Improvements
- Update CLI to use random delimiters for changelog environment files to avoid heredoc collisions.
- Use
cosignbundle-only signing for v4 compatibility. - Enhance error logging during OAuth discovery and fallback.
Bug Fix
Install
Linux (Omarchy):
gh release download v0.2.0 --repo basecamp/basecamp-cli --pattern '*linux_amd64*'
tar xzf basecamp_0.2.0_linux_amd64.tar.gz
sudo mv basecamp /usr/local/bin/
basecamp auth loginmacOS (Apple Silicon):
gh release download v0.2.0 --repo basecamp/basecamp-cli --pattern '*darwin_arm64*'
tar xzf basecamp_0.2.0_darwin_arm64.tar.gz
sudo mv basecamp /usr/local/bin/
basecamp auth loginOther platforms: download the matching archive from the assets below.
What's Changed
Features
- V1 CLI ship polish by @jeremy in #160
- Security hardening for public release by @jeremy in #161
- Migrate CLI to flat SDK routes by @jeremy in #132
- Second round SDK CI/CD sync + exceed by @jeremy in #167
- Remove Docker release channel by @jeremy in #170
- Sync skills to distribution repo on release by @jeremy in #172
Bug Fixes
- Fix security review followups from #161 by @jeremy in #162
- Address PR #166 review feedback by @jeremy in #173
- Address PR #166 review feedback by @jeremy in #174
Documentation
Other Changes
- Prep for v0.2.0 release by @jeremy in #163
- Self-describing CLI: --help --agent, embedded skills, doctor integration by @jeremy in #164
- Import SDK CI/CD tooling: labeling, CodeQL, surface checks, AI changelog by @jeremy in #166
Full Changelog: v0.1.1...v0.2.0
basecamp v0.1.1
Install
Linux (Omarchy):
gh release download v0.1.1 --repo basecamp/basecamp-cli --pattern '*linux_amd64*'
tar xzf basecamp_0.1.1_linux_amd64.tar.gz
sudo mv basecamp /usr/local/bin/
basecamp auth loginmacOS (Apple Silicon):
gh release download v0.1.1 --repo basecamp/basecamp-cli --pattern '*darwin_arm64*'
tar xzf basecamp_0.1.1_darwin_arm64.tar.gz
sudo mv basecamp /usr/local/bin/
basecamp auth loginRequires gh CLI with access to the basecamp org. Other platforms: grab the matching archive from the assets below.
What's Changed
Other Changes
- Fix Docker latest tag gating and PGO failure visibility by @jeremy in #157
- V1 ship polish: layout, visual consistency, focus lifecycle, chrome by @jeremy in #156
- Experimental feature labels for v0.1.0 by @jeremy in #158
- Switch to GitHub-native release notes by @jeremy in #159
Full Changelog: v0.1.0...v0.1.1
basecamp v0.1.0
The first release of the Basecamp CLI. Manage projects, todos, messages, cards, schedules, timesheets, and more from your terminal — or through any AI agent.
Install
Linux (Omarchy):
gh release download v0.1.0 --repo basecamp/basecamp-cli --pattern '*linux_amd64*'
tar xzf basecamp_0.1.0_linux_amd64.tar.gz
sudo mv basecamp /usr/local/bin/
basecamp auth loginmacOS (Apple Silicon):
gh release download v0.1.0 --repo basecamp/basecamp-cli --pattern '*darwin_arm64*'
tar xzf basecamp_0.1.0_darwin_arm64.tar.gz
sudo mv basecamp /usr/local/bin/
basecamp auth loginRequires gh CLI with access to the basecamp org. Other platforms: grab the matching archive from the assets below.
Highlights
- 55+ commands across projects, todos, cards, messages, campfire, files, schedules, timesheets, check-ins, lineup, and more
- Interactive workspace —
basecamp tuifor full terminal UI with card boards, campfire chat, Hey! inbox, and cross-account support - AI agent ready — works with Claude Code, Codex, Copilot, Gemini. Ships with a Claude Code plugin and standalone skills.
- JSON everywhere — styled output in terminals,
--jsonenvelope with breadcrumbs,--quietfor raw data - OAuth 2.1 with PKCE, automatic token refresh, and multi-account profiles
- Signed and verified — SHA-256 checksums, Sigstore cosign signatures, and SBOM for each archive