Take a Seat
Install madtea on Linux, macOS, or Windows - one self-contained binary, one prerequisite: git.
Linux
# amd64 shown; arm64: swap the arch
curl -fsSL https://codeberg.org/sixfold_space/madtea/releases/download/latest/madtea_linux_amd64.tar.gz | tar -xz
./madtea_linux_amd64/madtea install # installs to /usr/local/bin; delete the extracted dir after
The one-liner trusts TLS alone. Every release ships a GPG-signed checksums.txt; to verify the tarball before running anything from it, follow verifying release artifacts. (Later updates via madtea update verify automatically.)
macOS
brew tap sixfold_space/tap https://codeberg.org/sixfold_space/homebrew-tap.git && brew install --cask madtea
Windows
scoop bucket add madtea https://codeberg.org/sixfold_space/scoop-bucket && scoop install madtea
Any OS, from source
# needs Go
go install codeberg.org/sixfold_space/madtea/cmd/madtea@latest
Building from a clone instead is covered in Build madtea from source.
Poured correctly?
madtea --version # prints the version you just installed
If that prints a version, the binary is on your PATH and you’re seated. If it doesn’t - or anything else above misbehaved - the troubleshooting guide covers the common failures.
What madtea install does
madtea install puts the binary in the standard location for your OS and manages PATH (ADR 0010).
It prints the full plan first - source binary, destination and why, PATH
state, any stale copies it would sweep - and on a terminal asks before using
sudo (decline and it falls back to ~/.local/bin) and before deleting a
stale copy. The piped one-liner has no TTY, so consent steps are declined:
the binary lands in ~/.local/bin and stale copies stay. Pass --yes-sudo
and/or --yes-delete-stale for a fully unattended install.
It also installs shell completions for every shell it finds (bash, zsh,
fish; on Windows it prints the PowerShell one-liner). For a shell it
didn’t find, generate them yourself: madtea completion bash|zsh|fish|powershell.
All release binaries are on the
releases page;
madtea update keeps the install fresh and GPG-verifies against a pinned key.
Seat your agent
madtea install wires the MCP server into Claude Code when its CLI is
present; add --mcp-client for the others:
madtea install # wires Claude Code
madtea install --mcp-client codex,antigravity # also wire Codex and Antigravity
Claude Code can also take the plugin - the seven guardrail hooks and two workflow skills, layered on top of the same MCP tools:
/plugin marketplace add https://codeberg.org/sixfold_space/claude-plugins.git
/plugin install madtea@sixfold-plugins
It’s optional - MCP-only works fine - but the hooks are what stop a credential-leaking raw git push before it runs.
The full client-by-client wiring guide (Cursor, Zed, what non-Claude agents get instead, and everything else) is clients.md.
Leaving the table
There is no madtea uninstall; leaving is three manual steps, take the ones that apply:
rm "$(command -v madtea)" # the binary (brew: brew uninstall --cask madtea; scoop: scoop uninstall madtea)
claude mcp remove madtea # de-register the MCP server from Claude Code
# and inside Claude Code, if you took the plugin:
/plugin uninstall madtea@sixfold-plugins
Credentials you stored stay in your OS keychain/backend until you remove them (madtea auth logout per repo, first).
Next: connect your forge
The binary is on your machine but not yet pointed at a forge. Head to Configuration & first run to log in, choose a credential-storage backend, and make your first call.
Canonical source: docs/guides/install.md in the madtea repo.