Skip to main content

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.

2026-04-17
Board opens in its own terminal window

Board opens in its own terminal window

buttons board now launches in a dedicated terminal window so your current shell stays free.

New features

  • Own-window by default — running buttons board opens the dashboard in a new OS-native terminal window and immediately returns your shell prompt. No more dedicating a tab to the dashboard — it lives in its own window that you can close whenever you’re done. Works on macOS, Linux, and Windows.
  • --inline flag — pass --inline to render the board in the current terminal, the way it worked before. Useful over SSH, inside tmux, or in headless environments. See the CLI reference.
  • Automatic fallback — if your system can’t open a new window (e.g. no display server), the board falls back to inline mode automatically so the command never silently fails.
2026-04-17
Ambient board dashboard

Ambient board dashboard

The board is now an always-on dashboard you leave open in a spare terminal.

Updates

  • Auto-refresh — the board now polls for changes every two seconds. Buttons created or removed in another terminal appear automatically without closing and reopening the board. A press already in flight keeps its spinner during the refresh.
  • No visible quit — the board no longer shows a quit button, q keybind, or “press q to quit” hint. Close the board by closing the terminal window, the same way you’d close any app. Ctrl+C still works as an emergency escape. See the CLI reference.
2026-04-17
Batteries and board dashboard polish

Batteries and board dashboard polish

Batteries are now fully functional, and the board dashboard gets a design refresh.

New features

  • Batteries storebuttons batteries set, get, list, and rm are now fully implemented. Store API tokens, secrets, and environment variables once, and every button press automatically receives them as environment variables. Values are scoped to a project by default, or use --global to share across all projects. See the CLI reference.
  • Automatic injection — batteries are injected into every button press as environment variables. You can reference them in your scripts without any extra flags or configuration. Per-press arguments take priority over batteries on key collision, so you can always override a stored value.
  • Redacted listingbuttons batteries list redacts values by default so you can safely check what’s stored without exposing secrets. Pass --reveal to see full values.

Updates

  • Board empty state — opening buttons board with no buttons now shows a helpful getting-started screen with example commands instead of a blank page.
  • Board press feedback — pressing a button from the board now shows a spinner while it runs and a success or failure indicator when it finishes. List rows display check and cross glyphs so you can see session results at a glance.
  • Board footer — the footer now shows clickable action buttons and keyboard hints (↑↓ nav · ↵ press · q quit) so you can discover controls without a help overlay.
2026-04-17
Agent skill picker in buttons init

Agent skill picker in buttons init

buttons init now sets up your coding agents alongside your project.

New features

  • AGENT.md auto-generated — running buttons init now writes a .buttons/AGENT.md file that gives AI agents a quick reference for how Buttons works. The file is updated automatically on each run, so it always matches your installed version.
  • Agent skill picker — on interactive terminals, buttons init prompts you to install Buttons skill files for your coding agents. Supported targets include Cursor (.cursor/rules/buttons.mdc), Claude Code (CLAUDE.md), Cline (.clinerules), GitHub Copilot (.github/copilot-instructions.md), and AGENTS.md. Select the agents you use and the right config files are created for you. See skill.md for more on agent skills.
  • Non-interactive mode — pass --agent cursor,claude to install specific skill files without the picker, or --agent none to skip it entirely. JSON output and --no-input mode skip the picker by default.
  • Idempotent updates — re-running buttons init updates existing skill files in place rather than duplicating content, so you can safely re-run it after upgrading Buttons.

Bug fixes

  • Agent picker no longer skips silently — the interactive agent skill picker in buttons init now uses a single-select list instead of a multi-select. Previously, pressing Enter without first pressing Space to toggle a choice would submit an empty selection with no warning. The picker also adds an explicit “None (skip)” option so opting out is intentional. You can still install multiple agent skills in one go with the --agent flag (e.g. --agent cursor,claude).