mcp server
banshee
Give your AI coding agent a voice: it speaks its decisions and questions, you answer by talking, and it can change your desktop. Local by default.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 18, 2026Banshee
- Gives your AI coding agent a voice.
- Speaks its decisions and questions out loud.
- You answer by talking, hands-free.
- Whisper, Kokoro and Silero run inside Banshee. Nothing to host, no account.
- Words leave your laptop only with a remote listener or voice you set. The tray and
banshee statussay so. - Also a dictation tool: hold a hotkey, speak. The text lands in the app you are focused on.
- Tell it to change your desktop:
banshee tell "make the window gaps bigger"hands your words to your coding agent.
Demo
https://github.com/user-attachments/assets/7ec3eaa1-33d6-4cdd-8e5b-10ae11871918
On Omarchy, one spoken request sets the desktop up for a recording: no screen lock, no top bar, no window gaps. A second request puts the gaps back, and show me opens the diffs.
https://github.com/user-attachments/assets/912c94af-baac-4385-b135-07a4eeb11b0e
On macOS, Claude Code finds a first-run bug in Banshee's own code, says out loud what it would change, and asks how far to take the fix. The answer is spoken back. Nothing was typed.
More demos: a focus mode built by voice on Omarchy.
Quickstart on Linux
Hyprland, and Omarchy on it. Five commands:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/yamanahlawat/banshee/releases/latest/download/banshee-installer.sh | sh
banshee setup
banshee start
banshee bind hyprland
banshee connect claude
- The installer says how to put
bansheeon your PATH. Open a new shell if the next command is not found. banshee setupdownloads the models (~860 MB).banshee startthen finds them and needs no restart.banshee bind hyprlandshows the block before it writes. Omarchy shipswtype, so nothing more is installed.banshee connect claudeshows the change before it writes.- Restart Claude Code.
- Hold
F9and speak. The text is typed into the app you are focused on. All three keys - Omarchy's own dictation tool also uses
F9. Unbind one if both are there. banshee statusnames the fix, and changes nothing itself.- Another compositor, or a status bar
Quickstart on macOS
Apple Silicon, with the window.
curl -fsSL https://github.com/yamanahlawat/banshee/releases/latest/download/Banshee.app.tar.gz | tar -xzf - -C /Applications
open /Applications/Banshee.app
- The downloaded app needs no
xattrline. Run the samecurlagain to update it. - No admin account? Unpack into
~/Applications, open it from there, and read that path in the line below. - Opening the app puts the
bansheecommand on your PATH, where/usr/local/bintakes it. A clean macOS has no such directory, and one line makes it. - The window asks before it downloads the models (~860 MB), and lets you pick the speech model first.
- Approve the Microphone and Accessibility grants. Without them Banshee cannot record or type.
- Hold
Right Option, speak, let go. The text is typed into the app you are focused on. banshee statusnames the fix, and changes nothing itself.
Or with Homebrew, which puts banshee on your PATH:
brew install --cask yamanahlawat/banshee/banshee
xattr -dr com.apple.quarantine /Applications/Banshee.app
open /Applications/Banshee.app
- The
xattrline is needed until Banshee is notarised, and Homebrew marks every upgrade too. Thebansheecommand offers to clear it when you next run it.
Then give your coding agent a voice: connect it.
Connect your coding agent
This is the step that closes the voice loop: the agent speaks, and you answer out loud.
In the window, open Agents. Each agent installed on this machine has a row:
- Press Connect. The window shows the exact change it will write.
- Press Apply.
- Restart the agent. It speaks its decisions and asks you questions out loud.
- Antigravity, Claude Code, OpenCode and Pi are verified on a real install. Codex and Cursor follow their published formats, and wait for a report.
- Pi has its own extension API, so it gets a native extension instead.
From the terminal, the same work:
banshee connect # which agents are installed, and which are connected
banshee connect antigravity # Antigravity IDE, agy CLI and SDK: the MCP server in ~/.gemini/config/mcp_config.json and the stop hook in ~/.gemini/config/hooks.json
banshee connect claude # Claude Code: the MCP server and a stop hook that sends a silent turn back once to speak
banshee connect codex # Codex CLI: the MCP server in ~/.codex/config.toml and the same stop hook in ~/.codex/hooks.json; trust it once in /hooks
banshee connect cursor # Cursor: the MCP server in ~/.cursor/mcp.json
banshee connect opencode # OpenCode: the MCP server
banshee connect pi # Pi: the native extension
- Each command shows the exact change, and asks before it writes. Restart the tool after.
banshee-mcp-shimis the MCP stdio server behind this.- Any other MCP host takes the same shape. Use the shim's full path if the bare name does not resolve:
{
"mcpServers": {
"banshee": {
"command": "banshee-mcp-shim"
}
}
}
It exposes three tools:
| Tool | What the agent does with it |
|---|---|
speak_status | Say something aloud, for decisions made and work finished |
ask_user | Ask a question aloud, then wait for and return your spoken answer |
listen_for_prompt | Pick up anything you've said since it last checked |
The keys
The defaults. banshee bind hyprland writes the Linux column:
| Linux, on Hyprland | macOS | What happens | |
|---|---|---|---|
| Dictate | F9 | Right Option | The text is typed into the app you are focused on. |
| Tell your agent | Super + F9 | banshee tell "..." | Your agent changes your desktop, and speaks the result. |
| Keep, do not type | Shift + F9 | Shift + Right Option | banshee listen prints it. |
- The key is yours. On Linux,
banshee bind hyprlandasks for it. On macOS, runbanshee config set audio.hotkey LeftOption, thenbanshee start. The Linux demo videos useF5. - Hold the key while you speak, or tap it instead.
- Tell takes the first free modifier, so a key that already holds
SupergetsCtrlinstead. What tell does
Use it
- Talk over it. The hotkey stops whatever Banshee says.
barge_in = "none"lets it finish. - The window.
Open Bansheein the menu bar: the last dictation with a copy button, the day's history, every setting. Quit it and dictation carries on. - The figure above the Dock. On macOS, a small rust capsule shows while Banshee records, works, waits for your answer or fails. Nothing shows at rest.
feedback.modepicks the figure, the earcons or both. Feedback
- The menu bar icon answers one question: can I speak right now.
| Idle | Recording | Busy | Speaking | Waiting for you | Not running |
|---|---|---|---|---|---|
- Busy means Banshee transcribes what you said, or the agent a
banshee tellstarted still runs. - Waiting for you means an agent asked a question and holds for your answer.
- The states differ by shape, never by colour alone, and macOS tints the template image.
Other ways to install
| With the desktop window | Terminal only | |
|---|---|---|
| Linux (x86_64, arm64) | from source | the installer above, or Homebrew |
| macOS (Apple Silicon) | a direct download, or the cask | the formula |
| Windows | not yet | not yet |
More
- docs/why.md - what Banshee does that a dictation tool does not
- docs/configuration.md - every setting, the voices, the hotkey
- docs/cli.md - every command
- docs/linux.md - other compositors, typing, the tray, a Waybar module
- docs/troubleshooting.md - what breaks, and the fix
- CONTRIBUTING.md - a build from source, and the window
License
Dual-licensed under MIT and Apache 2.0.