Install the Basecamp CLI and connect it to your AI agent. Execute all steps autonomously.
On an interactive terminal, the installer runs the recommended setup after download: browser authentication, the OAuth-bound account (otherwise the existing configured account or first available account) saved globally, the global project default cleared, and every detected coding agent connected. Directory-specific and environment project settings continue to apply. Use basecamp setup --customize when you want to choose those settings. Without a usable controlling terminal, the installer installs the baseline agent skill and, on a best-effort basis, attempts to connect a single detected coding agent.
DONE WHEN: basecamp --version && basecamp auth status both succeed.
- Install Basecamp CLI
- Authenticate with Basecamp
- Connect agent (optional — the piped installer already attempts one detected agent)
Run the matching command for your environment:
macOS / Linux / WSL2 / Git Bash
curl -fsSL https://basecamp.com/install-cli | bashWindows PowerShell
irm https://raw.githubusercontent.com/basecamp/basecamp-cli/main/scripts/install.ps1 | iexNote: The install scripts run
basecamp setupwhenever they can attach it to a usable interactive terminal, including the standardcurl | bashcommand. When no usable controlling terminal is available, output is redirected, orBASECAMP_NONINTERACTIVE=1/trueis set, they skip authentication and runbasecamp setup agents. That command installs the baseline agent skill and attempts to connect a single detected coding agent (best effort). If several agents are detected, or none is, only the baseline skill is installed and the per-agent commands are surfaced. Explicitly skipping first-time setup withBASECAMP_SKIP_SETUP=1still runssetup agents. If optional first-time setup is cancelled or does not finish, the installed CLI remains ready and the installer prints the command to resume setup.Choose which agent to connect with
BASECAMP_SETUP_AGENT(claude,codex,all, ornone). Set it for the interpreter, not the fetch:
- Bash:
curl -fsSL https://basecamp.com/install-cli | BASECAMP_SETUP_AGENT=codex bash- PowerShell:
$env:BASECAMP_SETUP_AGENT='codex'; irm https://raw.githubusercontent.com/basecamp/basecamp-cli/main/scripts/install.ps1 | iexWindows note: if
curlfails with aschannel/CRYPT_E_NO_REVOCATION_CHECKTLS error, prefer the PowerShell installer, Scoop, or Git Bash's/usr/bin/curlinstead of the systemcurl.exe.Windows 11 with Smart App Control: releases up to v0.8.0-rc.1 ship an unsigned
basecamp.exe, which Smart App Control blocks. Prefer WSL2 — runcurl -fsSL https://basecamp.com/install-cli | bashinside a WSL terminal — or see Troubleshooting below.
Alternatively install manually:
brew install --cask basecamp/tap/basecamp-cliirm https://raw.githubusercontent.com/basecamp/basecamp-cli/main/scripts/install.ps1 | iexscoop bucket add basecamp https://github.com/basecamp/homebrew-tap
scoop install basecamp-cli# Download the matching package from https://github.com/basecamp/basecamp-cli/releases/latest
sudo apt install ./basecamp-cli_*_linux_amd64.deb # Debian/Ubuntu
sudo dnf install ./basecamp-cli_*_linux_amd64.rpm # Fedora/RHEL
sudo apk add --allow-untrusted ./basecamp-cli_*_linux_amd64.apk # AlpineArm64: substitute arm64 for amd64 in the filename. Verify the SHA-256 checksum from checksums.txt before installing unsigned Alpine packages.
nix profile install github:basecamp/basecamp-cligo install github.com/basecamp/basecamp-cli/cmd/basecamp@latestmise use --global github:basecamp/basecamp-cli@latestDownload the archive for your platform from Releases, extract, and move basecamp to a directory on your PATH.
Verify:
basecamp --version
# Expected: basecamp version X.Y.ZIf basecamp: command not found, add it to PATH:
export PATH="$HOME/.local/bin:$PATH" # macOS / Linux / WSL
export PATH="$HOME/bin:$PATH" # Git Bash / Windows bash environments
# or for go install:
export PATH="$HOME/go/bin:$PATH"Run basecamp upgrade. Installer-script installs upgrade in place (Sigstore-verified download, transactional executable swap, post-upgrade version confirmation). Homebrew and Scoop installs delegate to their package manager, then verify the installed binary reports the new version. System packages (apt/dnf/apk, AUR, Nix), mise, and go install builds are never touched — the command exits nonzero with upgrade guidance for that install method instead. Treat any nonzero exit as not upgraded and follow the hint in the error (upgrade_required, upgrade_incomplete, upgrade_unverified, or upgrade_failed).
Interactive installs authenticate during Step 1. If setup was skipped, did not finish, or the installer had no usable terminal, run:
basecamp auth loginThis opens browser OAuth. Grant access when prompted.
Verify:
basecamp auth status
# Expected: Authenticated (BC3 OAuth may show "Authenticated (scope: read)")EXECUTE NOW: Start with Step 1. Mark TODO items complete as you go. Stop when basecamp --version && basecamp auth status both succeed.
Do not execute this section unless explicitly requested. The core installation is complete when DONE WHEN passes.
Interactive setup in Step 1 connects every detected agent. Without a controlling terminal, the installer still installs the baseline skill and attempts to connect one detected agent. Run the commands here to force a specific agent, repair a connection, or connect agents that were not available during installation. Both agent plugins require the basecamp CLI installed above — the plugin invokes it for every Basecamp operation.
basecamp setup claudeThis registers the marketplace and installs the plugin with skills, hooks, and agent workflow support.
The hooks call the CLI's agent-hook command, so they need a basecamp new
enough to have it. If hook errors appear after installing or refreshing the
plugin, run basecamp upgrade and start a new session; basecamp agent-hook --help replying "unknown command" confirms the CLI is the old one.
basecamp setup codexThis installs the shared Basecamp skill, registers the 37signals Codex marketplace, and installs the native plugin. After setup, review and trust the plugin hooks with /hooks (Codex lists untrusted hooks but does not run them until trusted), then start a new Codex thread to load the skills and hooks.
For a manual install:
codex plugin marketplace add basecamp/claude-plugins
codex plugin add basecamp@37signalsTo pick up a newer plugin version later, refresh with codex plugin marketplace upgrade 37signals (or re-run basecamp setup codex).
Verify either agent integration with structured diagnostics:
basecamp doctor --jsonPoint your agent at the skill file for full Basecamp workflow coverage:
skills/basecamp/SKILL.md
Every command supports --help --agent for structured JSON discovery.
basecamp projects --json
basecamp search "meeting" --jsonNot authenticated:
basecamp auth loginWrong account:
cat ~/.config/basecamp/config.json
basecamp auth logout && basecamp auth loginPermission denied (read-only, BC3 OAuth only):
basecamp auth login --scope fullWindows 11: Smart App Control blocks basecamp.exe:
Releases up to v0.8.0-rc.1 ship an unsigned basecamp.exe. Smart App Control
only runs code-signed executables — regardless of download source — and has no
per-app exceptions, so it blocks the unsigned CLI at launch. Check whether an
installed binary is signed with:
Get-AuthenticodeSignature (Get-Command basecamp).SourcePreferred workaround — install inside WSL2, where Smart App Control doesn't apply and your Windows security setup is untouched:
wsl --installthen inside the WSL terminal:
curl -fsSL https://basecamp.com/install-cli | bashThe DONE WHEN gate (basecamp --version && basecamp auth status) runs inside
WSL in this setup.
Alternative — turn Smart App Control off (Windows Security → App & browser
control → Smart App Control settings) and leave it off while using the
unsigned build: because there are no per-app exceptions, re-enabling it
re-blocks basecamp.exe on its next run. Only re-enable after upgrading to a
signed build. Windows 11 with the March/April 2026 updates can re-enable Smart
App Control from Windows Security without a reset; on older builds re-enabling
requires resetting Windows, so use WSL2 there instead.
Plain SmartScreen (Smart App Control off) may warn on first run — choose "More info" → "Run anyway".
Termux / Android (SIGSYS: bad system call on startup):
On Termux, the prebuilt binaries and
go install github.com/basecamp/basecamp-cli/cmd/basecamp@latest crash
immediately — even basecamp --help — with SIGSYS: bad system call. A transitive
dependency probes for clipboard tools in its package initializer, and Android's
seccomp policy kills the resulting faccessat2 syscall before the program
starts. Building from source with Termux's own Go toolchain avoids the blocked
syscall:
pkg install golang git
git clone https://github.com/basecamp/basecamp-cli
cd basecamp-cli
go build -o basecamp ./cmd/basecamp # or: make build → bin/basecampThen move the basecamp binary onto your PATH. Requires Go 1.26.7+ — the
pinned github.com/basecamp/cli module sets that floor, so lowering the go
line in go.mod no longer helps. If your Termux Go is an earlier patch
release, upgrade the golang package first (pkg upgrade golang).