Releases: basecamp/basecamp-cli
basecamp v0.7.2
What's Changed
Features
- Rewrite release summary prompt for scannable output by @jeremy in #384
- Update SDK for card step assignee_ids rename by @jeremy in #387
Bug Fixes
Other Changes
Full Changelog: v0.7.1...v0.7.2
basecamp v0.7.1
basecamp to basecamp-cli. The upgrade command detects legacy installs and walks you through the migration.
Patch release with two bug fixes.
reports schedule: default--endto +30 days so you don't have to specify both dates.- Fix empty titles in schedule output by falling back to the summary field.
Install
macOS:
brew install --cask basecamp/tap/basecamp-cli
basecamp auth loginLinux (deb/rpm/apk):
Download the package for your architecture from the assets below, then:
sudo apt install ./basecamp-cli_0.7.1_linux_amd64.deb # Debian/Ubuntu
sudo dnf install ./basecamp-cli_0.7.1_linux_amd64.rpm # Fedora/RHEL
sudo apk add --allow-untrusted ./basecamp-cli_0.7.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-cli
basecamp auth loginOther platforms: download the matching archive from the assets below.
What's Changed
⚠️ Breaking Changes
- Rename Homebrew cask to basecamp-cli and fix upgrade detection by @robzolkos in #374
Bug Fixes
- fix: fall back to summary when title is empty in formatCell by @robzolkos in #380
- fix: default --end to +30 for reports schedule by @robzolkos in #381
Full Changelog: v0.7.0...v0.7.1
basecamp v0.7.0
Big one! 100+ PRs spanning new commands, capabilities, quality-of-life polish, and bugfixes.
Highlights:
basecamp show <url>: paste in any Basecamp URL to display it.- Inline images and attachments. Reference local file paths in Markdown to upload and create native Basecamp attachments.
- Attachment downloads. Fetch all inline attachments along with your message, comment, etc with
--download-attachments. - @mentions: "Hey @jane, take a look" becomes a native Basecamp mention. Works in comments, messages, and chat. Ambiguous names get helpful suggestions to disambiguate. Use @First.Last to be specific.
- Sort and reverse. Ubiquitous
--sortand--reverseon list commands to sort by name, date, position, etc. - Built-in
--jqfor JSON querying and transformation without jq installed. Works everywhere--jsondoes. - Auto-update. The CLI and Basecamp skill update themselves on new releases.
- And much more!
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.7.0_linux_amd64.deb # Debian/Ubuntu
sudo dnf install ./basecamp-cli_0.7.0_linux_amd64.rpm # Fedora/RHEL
sudo apk add --allow-untrusted ./basecamp-cli_0.7.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
- Extend assign/unassign to support cards and card steps by @robzolkos in #269
- Fix
basecamp me404 for BASECAMP_TOKEN users by @jeremy in #272 - Hide TUI from release builds via dev build tag by @jeremy in #274
- Fix
campfire liston multi-campfire projects by @jeremy in #275 - Refactor campfire list to use getDockTools helper by @jeremy in #281
- Error on bare group commands with explicit flags by @jeremy in #313
- Fix url --help to show as argument, not [parse] by @jeremy in #315
- Support multiple IDs in assign and unassign by @jeremy in #317
- Rename --chat flag to --room by @jeremy in #321
- Fix 3 post-QA issues on api command by @jeremy in #330
- Replace "pending" with "incomplete" in todos output; omit from default view by @jeremy in #327
- Fix
reports schedulediscoverability and default date window by @robzolkos in #344 - Fix chat post JSON output contract and upload error handling by @jeremy in #365
Features
- Support multi-todoset projects end-to-end by @jeremy in #270
- Enforce bare-group-shows-help convention by @jeremy in #271
- Add QA happy-path replay tests and smoke suite scaffolding by @jeremy in #276
- Improve date display and HTML stripping in generic renderer by @jeremy in #277
- Add input validation and delete confirmation UX by @jeremy in #278
- TUI experimental flag and device code auth flow by @jeremy in #280
- Improve help text, naming, and discoverability by @jeremy in #282
- Expand smoke suite to full command coverage by @jeremy in #287
- Add built-in --jq flag via gojq by @robzolkos in #286
- Auth success screen by @jzimdars in #227
- Close every remaining smoke coverage gap by @jeremy in #289
- Add inline @mention support for comments, messages, and chat by @nnemirovsky in #288
- Factory-mode provisioning for smoke tests by @jeremy in #292
- Add messages publish command by @jeremy in #294
- Add --position flag to cards move by @jeremy in #298
- Add deterministic mention syntax and harden fuzzy resolution by @jeremy in #297
- Return structured JSON help from bare group commands when --json is active by @jeremy in #304
- Provision smoke test data dependencies, drop 4 allowlist entries by @jeremy in #305
- Show -- separator in card creation help and add test coverage by @jeremy in #303
- Add breadcrumbs for archived/trashed cards and messages by @jeremy in #310
- Add --sort and --reverse flags to list commands by @jeremy in #299
- Promote parent-scoped persistent flags into FLAGS section by @jeremy in #307
- Wire up markdown-to-HTML conversion for cards, schedule, and sweep by @jeremy in #302
- Add e2e test coverage for --jq flag by @jeremy in #308
- Add paragraph spacing and line accumulation to MarkdownToHTML by @jeremy in #306
- Add --assignee flag to card creation by @jeremy in #300
- Show file size for campfire upload lines by @jeremy in #322
- Filter low-value columns from --md markdown output by @jeremy in #311
- Add pagination notice when search results are truncated by @jeremy in #314
- Add --limit flag to timeline command by @jeremy in #318
- Add [action] hint to tools command Use string by @jeremy in #316
- Support storage URL downloads in files download by @jorgemanrubia in #283
- Improve tool instance disambiguation format by @jeremy in #329
- Fix dock ordering and add --all flag to
projects showby @robzolkos in #333 - Switch CODEOWNERS from sip to cli team by @jeremy in #346
- Add --on-hold flag to cards move command by @nnemirovsky in #325
- Add attachment listing for items by @brianevanmiller in #296
- Add
todos updatecommand by @jeremy in #348 - Make
--inoptional for all tools commands by @robzolkos in #340 - Add lineup list command by @jeremy in #324
- Support all URL types in show command by @robzolkos in #349
- Add
hillchartscommands (show, track, untrack) by @robzolkos in #347 - ci: harden GitHub Actions workflows by @flavorjones in #350
- Stamp plugin version at release time by @jeremy in #355
- Add plugin version checking and auto-update awareness by @jeremy in #357
- Add ambient update notice for interactive TTY sessions by @jeremy in #358
- Skip interactive setup wizard in non-TTY environments by @robzolkos in #353
- Add bats to make tools target by @jeremy in #359
- Remove MCP command stub by @jeremy in #362
- Upgrade to basecamp-sdk v0.7.1 — gauges, assignments, notifications, accounts by @jeremy in #373
- Add attachments download and show-command inline attachment discovery by @jeremy in #360
- Add field clearing to todos update by @jeremy in #370
- Add --list flag to todos position for cross-list moves by @jeremy in #372
- Default check-ins answer date to today by @robzolkos in #376
- Close smoke coverage gap from .surface alias expansion by @jeremy in https://github.com/basecamp/basecam...
basecamp v0.4.0
--subject renamed to --title on message shortcut.
Attachment support, accounts, and a pile of fixes.
attach,upload, and--attach: upload files and reference them inline as native Basecamp attachments, including images.trash,archive,restore: manage recording lifecycle from the CLI.basecamp accounts: list and switch between accounts.--completedshorthand ontodos listto filter completed todos.basecamp apinow has examples for every subcommand.- Fix auth token refresh, pagination gaps in project/todolist resolution, and several help-system edge cases.
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
Small release: unified help renderer and multi-todoset support.
- Global styled help renderer replaces per-command custom renderers.
--todosetelicitation for projects with multiple todosets — interactive picker or clear error when ambiguous.
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
recordings --assignee replaced by reports assigned. Bare todo filters now require --project.
Big update: first-run onboarding, new packaging, and headless auth.
- First-run setup wizard with login aliases and Claude Code integration.
basecamp auth login --remote: headless OAuth for SSH sessions and containers.- deb/rpm/apk packages and Nix flake added to releases.
- Bonfire: multi-campfire river view, front page, and ticker.
- Clickable OSC 8 hyperlinks in terminal output.
- Security hardening across CI workflows, OAuth callbacks, and release secrets.
- Fix search returning irrelevant results and "me" resolution conflating identity IDs with person IDs.
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
Patch release: fix macOS notarization template returning wrong type.
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
basecamp-bin to basecamp-cli. Existing AUR users: uninstall and reinstall.
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
bucketID arguments from project commands. Docker release channel removed.
First public release. Security hardening, self-describing CLI, and package manager support.
--help --agent: structured JSON help for AI agents, embedded skills, and doctor integration.basecamp upgrade: seamless self-update command.- Cosign v4 bundle signing for supply-chain verification.
- Homebrew, Scoop, and shell completions ship with releases.
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