carlos

home · docs · install

getting started · install

Get carlos on your machine.

carlos ships as a single static binary. No CGO, no system libraries, around 30 MB. Pre-built tarballs cover macOS and Linux on amd64 and arm64; Homebrew is the shortest path.

Homebrew recommended

One tap, one formula. The release workflow bumps the formula on every v* tag, so brew upgrade tracks the latest stable release.

shell
brew install georgebuilds/tap/carlos
carlos

The formula lives in georgebuilds/homebrew-tap. On first launch you drop into the eight-screen onboarding flow; pick a name, configure at least one provider, and you are talking to carlos in under a minute.

Pre-built tarball

Grab a tarball from the Releases page. Four arch/os combos are published on every tag.

target asset note
darwin amd64 carlos_darwin_amd64.tar.gz Intel Mac
darwin arm64 carlos_darwin_arm64.tar.gz Apple Silicon
linux amd64 carlos_linux_amd64.tar.gz most servers, most laptops
linux arm64 carlos_linux_arm64.tar.gz Raspberry Pi 4/5, Graviton, Ampere

Extract and drop the carlos binary onto your $PATH:

shell
tar -xzf carlos_darwin_arm64.tar.gz
mv carlos /usr/local/bin/
carlos version
reproducible

SHA-256 checksums are published alongside the tarballs. Builds use CGO_ENABLED=0, -trimpath, and a fixed commit mod_timestamp, so artifacts are bit-identical given the same source.

From source

Requires a Go toolchain pinned by go.mod, currently 1.26.3. No CGO, no native dependencies.

shell
git clone https://github.com/georgebuilds/carlos
cd carlos
go build ./cmd/carlos
./carlos

Cross-compile sanity check for the supported targets:

shell
GOOS=linux  GOARCH=arm64  go build ./cmd/carlos
GOOS=darwin GOARCH=amd64  go build ./cmd/carlos

Verify

carlos version prints version, build date, and commit. carlos help lists the CLI verbs. If both work, you are installed.

shell
carlos version
# carlos v0.7.2  built 2026-06-08T14:22:01Z  commit 5ffed72
carlos help

What lands on disk

On first run carlos writes a minimal home directory at ~/.carlos/. Everything is local, plain-text where possible, and easy to inspect.

The full layout, including per-frame subdirectories and the daemon socket, is documented in the config reference.

Update path

Homebrew installs upgrade with brew upgrade. The bordered farewell panel surfaces a "brew update available" notice on TUI exit when a newer release is detected, so you do not need to poll manually.

install method update command
Homebrew brew update && brew upgrade carlos
tarball download the new tarball, swap the binary on $PATH
source git pull && go build ./cmd/carlos
next stop

Installed and verified? Head to the quickstart for the eight-screen onboarding tour, the chat TUI keys worth knowing, and the headless carlos please verb.