Buttons gives agents deterministic escape hatches. Instead of hoping an LLM follows a multi-step procedure correctly, agents press buttons — self-contained, composable actions with clear inputs, outputs, and status. Each button wraps a single action: a shell script, an HTTP API call, a Python/Node snippet, or an agent instruction. Create it once with typed arguments and a timeout, press it whenever you need it, get structured JSON output every time.Documentation Index
Fetch the complete documentation index at: https://docs.buttons.sh/llms.txt
Use this file to discover all available pages before exploring further.
Get started
Install
curl, Docker, Go, or Homebrew.
Quick start
Create and press your first button in 30 seconds.
Button types
Code
Inline shell, Python, or Node scripts.
HTTP API
GET/POST with URL templates and typed args.
File
Import an existing script file.
Agent
Attach an instruction for the consuming agent.
CLI reference
Every command is auto-generated from the Cobra command tree. Flags, examples, and descriptions stay in sync with the binary.CLI reference
Full command reference: create, press, list, history, delete, version, and more.
For deployed agents
Buttons ships as a static binary and a multi-arch Docker image. Bake it into your agent container with one line:buttons press <name> --json as a subprocess and gets structured output. No SDK, no library import, no runtime dependency.