# Buttons - [Introduction](https://docs.buttons.sh/index.md): Buttons is a CLI workflow engine where AI agents are the primary users. - [Installation](https://docs.buttons.sh/installation.md): Install Buttons via curl, Docker, Go, Homebrew, or npm. - [Quick start](https://docs.buttons.sh/quickstart.md): Initialize a project, create a button, and press it. - [Buttons](https://docs.buttons.sh/concepts/buttons.md): The core unit of reusable work in Buttons. - [Drawers](https://docs.buttons.sh/concepts/drawers.md): Reusable action graphs and proactive flows. - [Registry](https://docs.buttons.sh/concepts/registry.md): How Buttons resolves, installs, pins, and publishes shared packages. - [Agent identity](https://docs.buttons.sh/concepts/agent-identity.md): Give an agent workspace a signed device identity and a stable public URL for registry enrollment and webhooks. - [Triggers](https://docs.buttons.sh/concepts/triggers.md): Automatic ways to run buttons and drawers. - [History](https://docs.buttons.sh/concepts/history.md): Local audit log for registry dependency lifecycle events. - [Code buttons](https://docs.buttons.sh/buttons/code.md): Wrap a shell, Python, or Node script as a pressable, typed action. - [API buttons](https://docs.buttons.sh/buttons/http-api.md): Wrap HTTP endpoints as pressable buttons with URL templates. - [Prompt buttons](https://docs.buttons.sh/buttons/prompt.md): Attach instructions for the consuming AI agent. - [CLI buttons](https://docs.buttons.sh/buttons/cli.md): Wrap a shell command as a button — one line, no separate script file. - [SQL buttons](https://docs.buttons.sh/buttons/sql.md): Run a stored SQL query against a connected database. - [MCP buttons](https://docs.buttons.sh/buttons/mcp.md): Freeze an MCP tool invocation as a deterministic, reusable button. - [Workflows](https://docs.buttons.sh/buttons/workflows.md): Chain buttons into typed workflows with refs, loops, sub-drawers, waits, and history. - [Triggers](https://docs.buttons.sh/buttons/triggers.md): Run a button or drawer from a webhook, cron schedule, or local hook. - [Webhook triggers](https://docs.buttons.sh/buttons/webhook.md): Run a button or drawer when an external service sends an HTTP POST. - [Cron triggers](https://docs.buttons.sh/buttons/cron.md): Run a button on a recurring schedule. - [Hook triggers](https://docs.buttons.sh/buttons/hook.md): Run a button or drawer when a local event happens. - [Arguments](https://docs.buttons.sh/concepts/arguments.md): Define typed arguments on buttons and pass values at press time. - [JSON output](https://docs.buttons.sh/concepts/json-output.md): Every command supports structured JSON output for programmatic use. - [URL and body templates](https://docs.buttons.sh/concepts/templates.md): How {{arg}} placeholders work in HTTP buttons with context-aware encoding. - [Folder structure](https://docs.buttons.sh/concepts/folder-structure.md): How Buttons stores buttons, drawers, history, secrets, and runtime state. - [button.json](https://docs.buttons.sh/concepts/button-json.md): The on-disk spec for a button. - [drawer.json](https://docs.buttons.sh/concepts/drawer-json.md): The action or proactive-flow spec for drawers. - [Docker](https://docs.buttons.sh/deployment/docker.md): Use the Buttons Docker image for deployed agents. - [Install script](https://docs.buttons.sh/deployment/install-script.md): How the install.sh script works and its configuration options. - [REST API server](https://docs.buttons.sh/deployment/rest-api.md): Expose local buttons over HTTP with buttons serve. - [Security overview](https://docs.buttons.sh/security/overview.md): Threat model, assumptions, and vulnerability reporting. - [SSRF protection](https://docs.buttons.sh/security/ssrf-protection.md): How Buttons blocks HTTP requests to private network addresses. - [Template encoding](https://docs.buttons.sh/security/template-encoding.md): How {{arg}} values are encoded to prevent injection attacks. - [Connect via MCP](https://docs.buttons.sh/ai/mcp-server.md): Search Buttons documentation from Claude, Cursor, VS Code, and other AI tools. - [llms.txt](https://docs.buttons.sh/ai/llms-txt.md): Auto-generated documentation index for LLMs and AI agents. - [skill.md](https://docs.buttons.sh/ai/skill-md.md): Install the Buttons agent skill into Claude Code, Cursor, and other AI tools. - [Agent instructions](https://docs.buttons.sh/ai/agent-instructions.md): How buttons init writes managed instruction blocks into CLAUDE.md, AGENTS.md, and other coding-agent files — and how the project button list stays current. - [Changelog](https://docs.buttons.sh/changelog/2026-07-05.md): New features and improvements to Buttons. - [Changelog](https://docs.buttons.sh/changelog/2026-06-27.md): New features and improvements to Buttons. - [Changelog](https://docs.buttons.sh/changelog/2026-04-20.md): New features and improvements to Buttons. - [Changelog](https://docs.buttons.sh/changelog/2026-04-19.md): New features and improvements to Buttons. - [Changelog](https://docs.buttons.sh/changelog/2026-04-18.md): New features and improvements to Buttons. - [Changelog](https://docs.buttons.sh/changelog/2026-04-17.md): New features and improvements to Buttons. - [Changelog](https://docs.buttons.sh/changelog/2026-04-14.md): New features and improvements to Buttons. - [Changelog](https://docs.buttons.sh/changelog/2026-04-13.md): New features and improvements to Buttons. - [Changelog](https://docs.buttons.sh/changelog/2026-04-12.md): New features and improvements to Buttons. - [buttons](https://docs.buttons.sh/cli/buttons.md): CLI reference for buttons - [buttons create](https://docs.buttons.sh/cli/buttons_create.md): CLI reference for buttons create - [buttons press](https://docs.buttons.sh/cli/buttons_press.md): CLI reference for buttons press - [buttons list](https://docs.buttons.sh/cli/buttons_list.md): CLI reference for buttons list - [buttons logs](https://docs.buttons.sh/cli/buttons_logs.md): CLI reference for buttons logs - [buttons history](https://docs.buttons.sh/cli/buttons_history.md): CLI reference for buttons history - [buttons summary](https://docs.buttons.sh/cli/buttons_summary.md): CLI reference for buttons summary - [buttons tail](https://docs.buttons.sh/cli/buttons_tail.md): CLI reference for buttons tail - [buttons delete](https://docs.buttons.sh/cli/buttons_delete.md): CLI reference for buttons delete - [buttons status](https://docs.buttons.sh/cli/buttons_status.md): CLI reference for buttons status - [buttons update](https://docs.buttons.sh/cli/buttons_update.md): CLI reference for buttons update - [buttons version](https://docs.buttons.sh/cli/buttons_version.md): CLI reference for buttons version - [buttons init](https://docs.buttons.sh/cli/buttons_init.md): CLI reference for buttons init - [buttons install](https://docs.buttons.sh/cli/buttons_install.md): CLI reference for buttons install - [buttons ignore](https://docs.buttons.sh/cli/buttons_ignore.md): CLI reference for buttons ignore - [buttons unignore](https://docs.buttons.sh/cli/buttons_unignore.md): CLI reference for buttons unignore - [buttons drawer](https://docs.buttons.sh/cli/buttons_drawer.md): CLI reference for buttons drawer - [buttons drawer create](https://docs.buttons.sh/cli/buttons_drawer_create.md): CLI reference for buttons drawer create - [buttons drawer add](https://docs.buttons.sh/cli/buttons_drawer_add.md): CLI reference for buttons drawer add - [buttons drawer list](https://docs.buttons.sh/cli/buttons_drawer_list.md): CLI reference for buttons drawer list - [buttons smash](https://docs.buttons.sh/cli/buttons_smash.md): CLI reference for buttons smash - [buttons add](https://docs.buttons.sh/cli/buttons_add.md): CLI reference for buttons add - [buttons remove](https://docs.buttons.sh/cli/buttons_remove.md): CLI reference for buttons remove - [buttons install](https://docs.buttons.sh/cli/buttons_install.md): CLI reference for buttons install - [buttons login](https://docs.buttons.sh/cli/buttons_login.md): CLI reference for buttons login - [buttons logout](https://docs.buttons.sh/cli/buttons_logout.md): CLI reference for buttons logout - [buttons publish](https://docs.buttons.sh/cli/buttons_publish.md): CLI reference for buttons publish - [buttons import](https://docs.buttons.sh/cli/buttons_import.md): CLI reference for buttons import - [buttons import skill](https://docs.buttons.sh/cli/buttons_import_skill.md): CLI reference for buttons import skill - [buttons import code](https://docs.buttons.sh/cli/buttons_import_code.md): CLI reference for buttons import code - [buttons import url](https://docs.buttons.sh/cli/buttons_import_url.md): CLI reference for buttons import url - [buttons import mcp](https://docs.buttons.sh/cli/buttons_import_mcp.md): CLI reference for buttons import mcp - [buttons agent](https://docs.buttons.sh/cli/buttons_agent.md): CLI reference for buttons agent - [buttons agent setup](https://docs.buttons.sh/cli/buttons_agent_setup.md): CLI reference for buttons agent setup - [buttons agent status](https://docs.buttons.sh/cli/buttons_agent_status.md): CLI reference for buttons agent status - [buttons serve](https://docs.buttons.sh/cli/buttons_serve.md): CLI reference for buttons serve - [buttons mcp](https://docs.buttons.sh/cli/buttons_mcp.md): CLI reference for buttons mcp - [buttons trigger](https://docs.buttons.sh/cli/buttons_trigger.md): CLI reference for buttons trigger - [buttons trigger add](https://docs.buttons.sh/cli/buttons_trigger_add.md): CLI reference for buttons trigger add - [buttons trigger list](https://docs.buttons.sh/cli/buttons_trigger_list.md): CLI reference for buttons trigger list - [buttons trigger rm](https://docs.buttons.sh/cli/buttons_trigger_rm.md): CLI reference for buttons trigger rm - [buttons webhook](https://docs.buttons.sh/cli/buttons_webhook.md): CLI reference for buttons webhook - [buttons webhook setup](https://docs.buttons.sh/cli/buttons_webhook_setup.md): CLI reference for buttons webhook setup - [buttons webhook listen](https://docs.buttons.sh/cli/buttons_webhook_listen.md): CLI reference for buttons webhook listen - [buttons webhook status](https://docs.buttons.sh/cli/buttons_webhook_status.md): CLI reference for buttons webhook status - [buttons webhook test](https://docs.buttons.sh/cli/buttons_webhook_test.md): CLI reference for buttons webhook test - [buttons webhook logout](https://docs.buttons.sh/cli/buttons_webhook_logout.md): CLI reference for buttons webhook logout - [buttons config](https://docs.buttons.sh/cli/buttons_config.md): CLI reference for buttons config - [buttons config set](https://docs.buttons.sh/cli/buttons_config_set.md): CLI reference for buttons config set - [buttons config unset](https://docs.buttons.sh/cli/buttons_config_unset.md): CLI reference for buttons config unset - [buttons batteries](https://docs.buttons.sh/cli/buttons_batteries.md): CLI reference for buttons batteries - [buttons batteries set](https://docs.buttons.sh/cli/buttons_batteries_set.md): CLI reference for buttons batteries set - [buttons batteries get](https://docs.buttons.sh/cli/buttons_batteries_get.md): CLI reference for buttons batteries get - [buttons batteries list](https://docs.buttons.sh/cli/buttons_batteries_list.md): CLI reference for buttons batteries list - [buttons batteries rm](https://docs.buttons.sh/cli/buttons_batteries_rm.md): CLI reference for buttons batteries rm - [buttons board](https://docs.buttons.sh/cli/buttons_board.md): CLI reference for buttons board This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.