Skip to content

Releases: basecamp/basecamp-cli

basecamp v0.4.0

11 Mar 09:26

Choose a tag to compare

⚠️ This release introduces breaking changes in authentication handling (OAuth tokens and scope management) and command behavior. Users will need to re-authenticate for some commands due to updated token migration processes. Certain commands now show help screens when executed with invalid or missing arguments, making error handling more user-friendly but changing behavior for machine consumers.

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 login

Linux (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 login

Arm64 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 login

Nix:

nix profile install github:basecamp/basecamp-cli
basecamp auth login

Windows:

scoop bucket add basecamp https://github.com/basecamp/homebrew-tap
scoop install basecamp
basecamp auth login

Other 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

10 Mar 11:54

Choose a tag to compare

⚠️ This release introduces breaking changes to the help system for commands and argument validation behavior. Command-line help rendering has been overhauled for better consistency and usability across commands. Custom, per-command help renderers have been replaced with a global, styled help renderer. This ensures a uniform structure for usage, flags, and examples across both root and subcommands, while maintaining curated sections for clarity. Users invoking commands with missing arguments or content will now see the corresponding help message, rather than error messages, improving guidance for incomplete inputs.

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 login

Linux (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 login

Arm64 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 login

Nix:

nix profile install github:basecamp/basecamp-cli
basecamp auth login

Windows:

scoop bucket add basecamp https://github.com/basecamp/homebrew-tap
scoop install basecamp
basecamp auth login

Other 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

  • Skip tests during PGO benchmark profiling by @jeremy in #231

Full Changelog: v0.3.0...v0.3.1

basecamp v0.3.0

10 Mar 10:12

Choose a tag to compare

⚠️ This release introduces a number of notable updates and enhancements to the CLI tool. There is a breaking change in agent routing: the --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 login

Linux (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 login

Arm64 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 login

Nix:

nix profile install github:basecamp/basecamp-cli
basecamp auth login

Windows:

scoop bucket add basecamp https://github.com/basecamp/homebrew-tap
scoop install basecamp
basecamp auth login

Other 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

Full Changelog: v0.2.3...v0.3.0

basecamp v0.2.3

04 Mar 06:17
ebe5510

Choose a tag to compare

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 login

Arch Linux / Omarchy:

yay -S basecamp-cli
basecamp auth login

Other platforms: download the matching archive from the assets below.

What's Changed

Bug Fixes

  • Fix notarize enabled template to return boolean by @jeremy in #188

Full Changelog: v0.2.2...v0.2.3

basecamp v0.2.2

04 Mar 05:46
fea17f4

Choose a tag to compare

⚠️ Breaking: Introduce a trust model for authority keys in configuration files — users must now explicitly 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 login

Arch Linux / Omarchy:

yay -S basecamp-cli
basecamp auth login

Other 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

02 Mar 02:23

Choose a tag to compare

Changelog

⚠️ Breaking Changes

  • Switch AUR package from binary to source-based (requires manual action for existing installations).
  • Rename AUR package: basecamp-binbasecamp-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 login

Arch Linux / Omarchy:

yay -S basecamp-cli
basecamp auth login

Other platforms: download the matching archive from the assets below.

What's Changed

Bug Fixes

  • Rename AUR package: basecamp-bin → basecamp-cli by @jeremy in #175

Full Changelog: v0.2.0...v0.2.1

basecamp v0.2.0

01 Mar 03:16

Choose a tag to compare

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 --bundle flag for cosign v4 compatibility.
  • Add support for structured JSON help with --help --agent.
  • Introduce new --hints and --no-hints global flags to toggle follow-up suggestions in CLI output.
  • Self-describing CLI: Add structured JSON output for --help --agent and include --help --agent support for all commands.
  • Add new basecamp upgrade command for seamless upgrade process.

Improvements

  • Update CLI to use random delimiters for changelog environment files to avoid heredoc collisions.
  • Use cosign bundle-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 login

macOS (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 login

Other platforms: download the matching archive from the assets below.

What's Changed

Features

Bug Fixes

Documentation

  • Release engineering: script, package managers, completions, docs by @jeremy in #171

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

25 Feb 16:34
2713e1b

Choose a tag to compare

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 login

macOS (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 login

Requires 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

25 Feb 06:30

Choose a tag to compare

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 login

macOS (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 login

Requires 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 workspacebasecamp tui for 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, --json envelope with breadcrumbs, --quiet for 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

Contributors

@jeremy, @robzolkos, @kevinmcconnell, @flavorjones