Install
Prefer binaries? Get Amber for prebuilt Homebrew, .deb, .rpm, or tarball, no compiler needed. This page covers building from source.
macOS
Homebrew (recommended)
brew install jtrefon/homebrew-amber/amber-agent
Installs the prebuilt amber (TUI), amber-cli(headless) and amber-bench (benchmark harness) binaries with no compilation. Apple Silicon only.
Or use the one-line installer (also installs Homebrew if you don't have it):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/jtrefon/homebrew-amber/main/install.sh)"
Build from source
Prerequisites
amber requires a C++17 compiler and a few development libraries:
# macOS (Homebrew) brew install curl ncurses pkg-config # Debian / Ubuntu sudo apt install build-essential libcurl4-openssl-dev libncurses-dev # Arch Linux sudo pacman -S base-devel curl ncurses # Fedora / RHEL sudo dnf install gcc-c++ libcurl-devel ncurses-devel
- A C++17 compiler (g++ or clang++)
- GNU make
- libcurl (development headers)
- ncurses (development headers, for the TUI client)
- OpenSSL (for HTTPS, pulled in by libcurl)
- nlohmann/json is vendored under include/ (no separate install needed)
No Python or Node.js runtime is required. The test infrastructure has been deliberately moved away from Python dependencies.
Build & Run
git clone https://github.com/jtrefon/amber cd amber make # Run the TUI ./amber # Run headless ./amber-cli # Run benchmarks (hermetic mode, no model needed) ./amber-bench run
Configuration
amber reads from amber.conf in the project root and ~/.config/amber/ for global settings:
# amber.conf (project-local, only data paths) system_prompt=prompts/system.md tools_prompt=prompts/tools.md # Provider config lives in ~/.config/amber/providers/ # Example: ~/.config/amber/providers/llama.conf api_base=http://localhost:8080/v1 model=Qwopus-27B-Fusion
Plugins
Amber ships with bundled plugins for providers (Anthropic, Gemini, OpenRouter, DeepSeek, KiloCode, OpenCode, CommandCode, Custom, OpenAI-compatible), core tools, and metrics. Plugins are controlled at runtime:
/get plugin # list plugins and their state /set plugin anthropic on # enable a provider plugin /set plugin anthropic off # disable (unwinds cleanly)
Plugin state is persisted in~/.config/amber/plugins/<id>/plugin.conf.
What Happens Next
When you run ./amber, you'll see the welcome screen, the command drawer, and the slash command system:
/set model: switch models at runtime/get model list: list available models/set provider: switch provider configurations/get plugin: list plugins and their state/set plugin <id> on|off: enable or disable a plugin/compress: force compression of conversation history/set policy: configure approval rules
Build System
amber uses a standard configure + make build system. The GNUmakefile auto-runs ./configure to generate Makefile from Makefile.in:
make # build everything (lib + cli + tui) make test # run unit tests make check # smoketest + build hygiene make lint # run clang-tidy make analyze # run cppcheck make clean # remove .o / .d / binaries make distclean # also removes the generated Makefile