Skip to content

Releases: basecamp/basecamp-cli

basecamp v0.7.2

26 Mar 06:43

Choose a tag to compare

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

  • Switch to GitHub Advanced CodeQL workflow by @jeremy in #383

Full Changelog: v0.7.1...v0.7.2

basecamp v0.7.1

25 Mar 19:10

Choose a tag to compare

⚠️ Homebrew and Scoop package renamed from 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 --end to +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 login

Linux (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 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-cli
basecamp auth login

Other 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

25 Mar 09:39

Choose a tag to compare

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 --sort and --reverse on list commands to sort by name, date, position, etc.
  • Built-in --jq for JSON querying and transformation without jq installed. Works everywhere --json does.
  • 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 login

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

  • Extend assign/unassign to support cards and card steps by @robzolkos in #269
  • Fix basecamp me 404 for BASECAMP_TOKEN users by @jeremy in #272
  • Hide TUI from release builds via dev build tag by @jeremy in #274
  • Fix campfire list on 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 schedule discoverability 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 show by @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 update command by @jeremy in #348
  • Make --in optional 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 hillcharts commands (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...
Read more

basecamp v0.4.0

11 Mar 09:26

Choose a tag to compare

⚠️ Scope selection fixed for Launchpad users; --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.
  • --completed shorthand on todos list to filter completed todos.
  • basecamp api now 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 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

Small release: unified help renderer and multi-todoset support.

  • Global styled help renderer replaces per-command custom renderers.
  • --todoset elicitation for projects with multiple todosets — interactive picker or clear error when ambiguous.

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

⚠️ 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 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

Patch release: fix macOS notarization template returning wrong type.


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

⚠️ AUR package renamed from basecamp-bin to basecamp-cli. Existing AUR users: uninstall and reinstall.


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

⚠️ Migrate to flat SDK routes — removes 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 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