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.
Scaffold-by-default and simpler button creation
Runningbuttons create without a source flag now scaffolds a placeholder script you can edit, instead of returning an error. This makes the default workflow scaffold → edit → press, which is faster for agents and humans alike.New features
-
Scaffold-by-default —
buttons create deploy --arg env:string:requirednow succeeds and writes amain.shwith a shebang and a TODO placeholder. Open the file, add your logic, and press. No--codeor--filerequired. See code buttons. -
Python and Node scaffolds — pass
--runtime pythonor--runtime nodeto scaffoldmain.pyormain.jswith the correct shebang. Previously--runtimerequired--code. -
Create output shows the file path — after
buttons create, the CLI now prints the path to the scaffolded script and the press command, so you know exactly where to edit and how to run it. JSON output addscode_pathandbutton_dirfields.
Updates
-
--code-stdinremoved — the--code-stdinflag has been dropped. Anything it could do,--fileor--code "$(cat)"can do with fewer flags to learn. If you were piping scripts via stdin, use--fileinstead. -
--coderepositioned as a shortcut —--codeis now documented as a convenience for one-liners. The default path is to scaffold and edit.
Prompt buttons, consolidated docs, and five upcoming button types
This release renames agent buttons to prompt buttons, simplifies the button type lineup, and previews five new button types on the roadmap.New features
- Five upcoming button types — the docs now include preview pages for button types coming soon: CLI, SQL, Webhook, Cron, and MCP. Each page explains the planned behavior and what it’s blocked on.
Updates
-
--agentrenamed to--prompt— the--agentflag onbuttons createis now--prompt. The JSON output field changes fromagent_prompttoprompt. Existing buttons created with--agentwill need to be recreated. See prompt buttons. -
File buttons merged into code buttons — file-based button creation (
--file) is now documented alongside inline code under code buttons. The separate file buttons page has been removed. No CLI changes —--fileworks exactly the same way. - API buttons renamed — “HTTP API buttons” are now just “API buttons” in the docs. The flags and behavior are unchanged. See API buttons.
-
Schema version bumped to v2 — newly created buttons use schema version 2. This reflects the
--agent→--promptrename in the stored spec.
Four button types, drawers, and batteries
Buttons ships with four ways to create a button and two new command groups for organizing and running them.New features
-
Code buttons — write inline shell, Python, or Node scripts directly in a button. Arguments are injected as
BUTTONS_ARG_<NAME>environment variables to prevent shell injection. Supports--codefor inline scripts and--code-stdinfor piping longer scripts. See code buttons. -
HTTP API buttons — wrap any HTTP endpoint as a pressable button with
--url,--method,--header, and--body. Placeholders like{{arg}}are automatically encoded based on context (path segment, query string, JSON body, or form body) so values are always safe. See HTTP API buttons. -
File buttons — import an existing script file with
--file. The script is copied into the button folder at create time so the button is self-contained. No size limit applies, unlike inline code buttons. See file buttons. -
Agent buttons — attach an LLM prompt to a button with
--agent. Use it standalone to encode a task for an AI agent, or combine it with a code or HTTP button so the agent receives both the execution result and instructions in one response. See agent buttons. -
Drawers — group related buttons into named collections with
buttons drawer createandbuttons drawer add. Use drawers to organize buttons by project, team, or workflow. See the CLI reference. -
buttons smash— run multiple buttons in parallel with a single command. Useful for kicking off several tasks at once without scripting. See the CLI reference. -
Batteries — manage environment variables and secrets with
buttons batteries set,buttons batteries list, andbuttons batteries rm. Values set here are available to all buttons at press time. See the CLI reference.
Updates
- Release pipeline fix — resolved an issue where automated releases could fail on merge to
main. Releases now run reliably on every push.
Project-scoped buttons with buttons init
You can now scope buttons to a project instead of storing everything globally in ~/.buttons/.New features
-
buttons initcommand — runbuttons initin any project directory to create a local.buttons/folder. Buttons created inside that project are versioned alongside your code and shared with collaborators via git. See folder structure for details. -
Automatic discovery — all Buttons commands now walk up the directory tree to find the nearest
.buttons/folder, the same way git finds.git/. No flags or config needed — justcdinto your project and go. -
Discovery priority — Buttons resolves the home directory in order:
BUTTONS_HOMEenvironment variable first, then a.buttons/folder in the current or any parent directory, then the global~/.buttons/fallback. -
Git-friendly defaults —
buttons initgenerates a.gitignoreinside.buttons/that excludes run history (pressed/) but keeps button specs, scripts, and agent instructions committed.
Buttons is live
buttons update command. You can now update Buttons to the latest version directly from the CLI. It downloads the correct binary for your OS, verifies the SHA256 checksum, and atomically replaces the running binary. Use --check to see if an update is available without installing. See the CLI reference for details.Agent skill discovery. AI tools like Claude Code, Cursor, and VS Code can now discover and install the Buttons skill automatically. Run npx skills add https://buttons.mintlify.app to teach your agent every command, flag, and output format. Learn more in the skill.md guide.MCP server and llms.txt. Buttons documentation is now searchable from AI tools via a hosted MCP server. Connect it in Claude, Cursor, or VS Code to search docs and retrieve full pages without leaving your editor. An auto-generated llms.txt index is also available for RAG pipelines and generative search engines.Updates
Automatic releases. Every merge tomain now triggers a new release with pre-built binaries and a Docker image on GitHub Container Registry. You no longer need to wait for a manual release to get the latest changes.