Installation
This page covers every install path plus post-install configuration. For the fastest path (pre-built binary + setup wizard), see the Quick start on the project README.
Tip
New here? Run the installer script below, then yottacode setup. No sudo required.
Requirements
- Go 1.25+ for building from source
- A modern terminal for the interactive TUI
- A model provider: Ollama, OpenAI, Anthropic, Gemini, xAI, ChatGPT OAuth through
openai-auth, GitHub Copilot throughcopilot-auth, or any OpenAI-compatible/v1API
Installer script (recommended)
curl -fsSL https://raw.githubusercontent.com/yottadynamics/yottacode/main/install.sh | bashThe script detects your OS/arch (Linux + macOS, amd64 + arm64), resolves the latest GitHub release (or honors VERSION=0.3.0 if set), verifies the archive against SHA256SUMS, and installs to $HOME/.yottacode/bin/yottacode. No sudo required. It then offers to append a PATH export to your shell rc file (zsh / bash / fish / sh detected from $SHELL), backing up the rc first.
Useful flags and env:
VERSION=0.3.0— pin a version instead of “latest”.INSTALL_DIR=/custom/path— override the install location.--no-modify-rc— skip the rc-file edit (useful when you managePATHyourself).--yes/-y— non-interactive: assume “yes” to prompts (required in CI).NO_COLOR=1— disable ANSI colors and animations.
Re-running the installer upgrades in place: same flow, the rc edit is detected and skipped via sentinel comments.
Updating
yottacode checks GitHub for a newer release once per day on startup. The check is asynchronous, cached at ~/.yottacode/cache/update-check.json, and runs only when the root interactive command launches into a real terminal — yottacode run, yottacode --version, scripts, and pipes never trigger it. When a newer release exists, you’ll see a one-line prompt before the TUI starts:
yottacode 0.3.0 is available (you have 0.2.0).
Release notes: https://github.com/yottadynamics/yottacode/releases/tag/v0.3.0
Install now? [y/N]:Answer y and the installer runs in the foreground; yottacode exits cleanly once it’s done so you can re-launch on the new binary. Answer anything else and the TUI starts as normal.
To disable the check entirely (CI, privacy, sandboxes): export YOTTACODE_NO_UPDATE_CHECK=1. To force a refresh: rm ~/.yottacode/cache/update-check.json.
Manual binary install
Pinned download + manual extract
VERSION=0.2.0
# Swap linux/darwin and amd64/arm64 to match your machine
curl -fsSL https://github.com/yottadynamics/yottacode/releases/download/v${VERSION}/yottacode_${VERSION}_linux_amd64.tar.gz \
| tar -xz
install -m 0755 ./yottacode "$HOME/.yottacode/bin/yottacode"Archive matrix: yottacode_${VERSION}_{linux,darwin}_{amd64,arm64}.tar.gz. Each release also publishes a SHA256SUMS file for verification.
Build from source
git clone https://github.com/yottadynamics/yottacode.git
cd yottacode
go build -o yottacode ./cmd/yottacodeRun it from the repo:
./yottacode --helpInstall it onto your PATH:
sudo install -m 0755 ./yottacode /usr/local/bin/yottacodeOr install into a user-local bin directory:
mkdir -p ~/.local/bin
install -m 0755 ./yottacode ~/.local/bin/yottacodeMake sure ~/.local/bin is on your PATH.
Go install from a local checkout
From the repository root:
go install ./cmd/yottacodeThis writes the binary to $(go env GOPATH)/bin.
Cross-compile
GOOS=darwin GOARCH=arm64 go build -o yottacode-darwin-arm64 ./cmd/yottacode
GOOS=darwin GOARCH=amd64 go build -o yottacode-darwin-amd64 ./cmd/yottacode
GOOS=linux GOARCH=arm64 go build -o yottacode-linux-arm64 ./cmd/yottacode
GOOS=linux GOARCH=amd64 go build -o yottacode-linux-amd64 ./cmd/yottacodeSupported platforms
- Linux: supported by source builds and release binaries
- macOS: supported by source builds and release binaries
- Windows: not a release target; run yottacode under WSL
Run the setup wizard (recommended)
Important
yottacode has no default model — you must set a model and base URL before the first run. The wizard is the easiest way.
yottacode does not guess a default model or endpoint. The fastest post-install path is the interactive wizard:
yottacode setupThe wizard writes ~/.yottacode/config.toml and ~/.yottacode/.env, probes providers where possible, and can be rerun later with /setup from inside the TUI.
Or configure manually
No API key — run a model locally with Ollama:
ollama serve
ollama pull <your-model-id>
export YOTTACODE_PROVIDER=ollama
export YOTTACODE_MODEL=<your-model-id>
export YOTTACODE_BASE_URL=http://localhost:11434/v1
yottacodeOther OpenAI-compatible endpoints (NVIDIA NIM’s free tier, Groq, vLLM, …) work the same way — see Configuring providers.