claude-buttons
Claude Buttons
A button bar for the Claude desktop app, filled by Claude itself.
Ask Claude Code to "make me a button that pulls all my repos" and a button appears on a small bar docked to the edge of the Claude window. One click runs the script: no prompt, no tokens, no waiting.
Claude writes the automations. An MCP server lets Claude create, test, edit and delete buttons from any Claude Code session.
Always one click away. The bar docks to the right edge of the Claude desktop window in every project. Collapsed, it is a small tab; click it (or press
Ctrl+Alt+B) to open it, click ✕ to close it.Feels native. It follows the Claude window as you move and resize it, hides when Claude is minimized, goes behind other apps together with Claude, and matches Claude's light/dark theme.
Scripts are plain files. PowerShell, Python or batch, stored in
~/.claude-buttons/scripts. Read them, edit them, keep them.
Unofficial community project, not affiliated with or endorsed by Anthropic.
Requirements
Windows 10 or 11
Claude desktop and the Claude Code CLI (
claudeon PATH)Python 3.10+ with tkinter (the default python.org installer includes it)
Related MCP server: Claude MCP Servers
Install
git clone https://github.com/pierrosimonestd-cpu/claude-buttons.git
cd claude-buttons
powershell -ExecutionPolicy Bypass -File install.ps1The installer:
installs the
mcpPython package if it is missing;registers the
claude-buttonsMCP server with Claude Code (user scope, so it works in every project);adds a shortcut to your Startup folder so the bar starts with Windows (use
-NoStartupto skip);starts the bar.
The bar stays invisible until the Claude desktop window is open. If it is not running, the MCP server starts it when a Claude Code session begins.
Usage
Open a new Claude Code session and ask for a button:
make me a button that deletes files older than 7 days from my Downloads folder
Claude writes the script, can run it once to test it, and the button appears on the bar within a second.
Action | How |
Open / close the bar | Click the tab on the right edge of Claude, click ✕, or |
Run a button | Click it. ↻ while running, ✓ success, ✕ failure (the tab turns yellow while something runs) |
Output, script, edit, delete |
|
Open the scripts folder | Folder in the bar header |
Scripts run without a console window and without interactive input, so parameters go in the script itself.
Ideas
Things that make good buttons: anything you do more than twice a week and could describe in one sentence.
"Pull every git repo under C:\code and tell me which ones had changes"
"Start my dev stack: docker compose up in my-app, then npm run dev"
"Zip my Documents folder into D:\Backups with today's date"
"Toggle what closing the laptop lid does between sleep and nothing"
"Empty the Recycle Bin and delete temp files older than a week"
"Open the three sites I check every morning"
MCP tools
Tool | What it does |
| Create a button from a name, language, script, and optional description, working directory and color |
| List every button |
| Show a button's details and script |
| Change any field of a button |
| Delete a button and its script |
| Run a button and return its exit code and output |
Configuration
Settings live in ~/.claude-buttons/bar.json:
{
"expanded": false,
"dock_to": ["claude.exe"]
}dock_to lists the executables the bar can dock to. For example, add "WindowsTerminal.exe" or "Code.exe" if you mostly use Claude Code in a terminal or in VS Code.
Environment variable | Effect |
| Data folder (default |
| Stop the MCP server from starting the bar |
Security
Buttons run arbitrary scripts with your user permissions, exactly like running them yourself. They only run when you click them, or when Claude calls run_button (Claude Code asks for your permission first, unless you have allowed the tool). Review what Claude writes: ⋯ → View script.
Uninstall
powershell -ExecutionPolicy Bypass -File uninstall.ps1 # keeps your buttons
powershell -ExecutionPolicy Bypass -File uninstall.ps1 -RemoveData # deletes them tooHow it works
claude-buttons/
├── bar.pyw # starts the bar (pythonw, no console)
├── mcp_server.py # starts the MCP server (registered with `claude mcp add`)
├── claude_buttons/
│ ├── registry.py # data format, validation, script execution
│ ├── server.py # MCP tools for Claude
│ ├── bar.py # the bar UI (tkinter)
│ └── dock.py # Win32: finds the Claude window, docking, DPI, hotkey, theme
├── tests/
├── install.ps1
└── uninstall.ps1registry.py is the only module that touches ~/.claude-buttons; the bar and the MCP server both go through it, and the bar picks up changes by watching the files.
The bar is an owned window of the Claude window: Windows keeps it just above Claude in the z-order and hides it with Claude, so it never floats over other apps.
Script output goes to a file rather than a pipe, so a button that launches a long-running program (a dev server, a tunnel) finishes as soon as its script does.
Development
python -m pip install -r requirements.txt pytest ruff
python -m pytest
python -m ruff check . ; python -m ruff format --check .Issues and pull requests are welcome. See the changelog for what changed.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Notes and actions in one app. Let Claude or ChatGPT read and update them.
Agent personas for Claude. 16 tools, 13 personas, 3 workflows. Zero extra API cost. Free.
Related MCP Servers
- AlicenseAqualityBmaintenanceAllows Claude desktop app to execute terminal commands and edit files on your computer through MCP, with features including command execution, process management, and diff-based file editing.26140,347 npm9,850MIT
- AlicenseNot gradedqualityDmaintenanceA toolkit for managing Claude desktop app extension configurations, enabling features like Brave search, file operations, Git/GitHub integration, shell access, web scraping, HTTP requests, AWS documentation search, and Obsidian note management.2MIT
- AlicenseAqualityDmaintenanceEnables Claude to create, edit, run, and manage reusable skills stored locally, including executing scripts with automatic dependency management and environment variables. Works across all MCP-compatible clients like Cursor, Claude Desktop, and claude.ai.530MIT
- FlicenseNot gradedqualityNot gradedmaintenanceExtends Claude Desktop with custom tools for file management, system operations, and command execution. Supports creating/reading/deleting files, directory listing, system information retrieval, and file searching capabilities.-