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.