Connect any tool that has a REST API, CLI or SDK to your Claude, Cursor, VS Code, or any other AI Client that supports MCP (Model Context Protocol)
- You: "Send an email to my team about tomorrow's meeting"
- Claude: "Here's how you would write that email..."
- You manually copy, paste, send
- You: "Send an email to my team about tomorrow's meeting"
- Claude: "I'll send that email for you" → [You approve] → Email sent ✓
- 📧 Send emails through Gmail
- 📅 Schedule meetings in Google Calendar
- 📊 Create surveys with Typeform
- 🎫 Create tickets in Linear, Jira, Asana, your task manager
- 📝 Edit documents in Google Drive, Notion, Confluence, your internal knowledgebase
- 💬 Send messages in Slack
- 📈 Manage your CRM
- 🔗 Any API you connect - Twitter, Stripe, GitHub, anything
All running securely in YOUR GitHub with YOUR API keys.
See Quickstart to start using Keyboard in Claude Desktop.
When you want your AI client (Claude, Cursor, ChatGPT, etc.) to actually execute tasks instead of just suggesting code.
Connect your tools to your secure GitHub environment, ask Claude to do something, and Keyboard handles the execution with your approval. No need to install separate MCP servers for each app, or rely on a third party to maintain their plug ins - any API-enabled service can connect through Keyboard.
Every action shows you the exact code BEFORE it runs:
// Claude wants to run this:
await gmail.send({
to: "[email protected]",
subject: "Tomorrow's meeting",
body: "Hi team, ..."
})
[Approve] [Reject] [Edit]Your data never leaves your GitHub. Keyboard can't see your API keys. Always secure, always private.
- "Check my calendar and email everyone in my next meeting"
- "Find all unread customer emails and create support tickets"
- "Post this update to Twitter and LinkedIn"
- "Create a Typeform survey from this list of questions"
- "Find that document about Q3 planning and summarize it"
- Connect Your Tools: One MCP, all your tools. Provide Keyboard access to third party tools in your own GitHub environment.
- Private: Keyboard doesn't have access to your API keys, it only has access to the GitHub Codespace.
- Secure Workflows: Run code safely within your own controlled environment with human oriented approval workflows.
- Human Control: You approve what code is executed, you also approve what data is sent is back to MCP clients like Claude.
Keyboard creates a seamless bridge between AI conversations and actual code execution through a simple approval-based workflow.
- Ask your AI to execute a task using your connected tools
- Review & approve the explanation and generated code in the Keyboard desktop app
- Watch it execute safely in your own GitHub Codespace
flowchart LR
A[👤 User] -->|Chat| B[🤖 Claude Desktop]
B -->|Generated Code| C[📋 Keyboard App<br/>Receives Script]
C -->|Review & Approve| D[✅ User Decision]
D -->|Approved| E[⚡ Executes in<br/>GitHub Codespace]
E -->|Results| F[📊 Back to User]
F -->|Continue| A
D -->|Rejected| G[❌ Process Ends]
G -.->|Try Again| A
style A fill:#FFD700,stroke:#B8860B,stroke-width:3px,color:#000
style B fill:#32CD32,stroke:#228B22,stroke-width:3px,color:#000
style C fill:#4169E1,stroke:#191970,stroke-width:3px,color:#fff
style D fill:#FF69B4,stroke:#C71585,stroke-width:3px,color:#000
style E fill:#1E90FF,stroke:#0000CD,stroke-width:3px,color:#fff
style F fill:#9370DB,stroke:#4B0082,stroke-width:3px,color:#fff
style G fill:#FF4500,stroke:#8B0000,stroke-width:3px,color:#fff
The process is straightforward:
- User Interaction: You chat with Claude (or any MCP-compatible AI client) normally
- Code Generation: Claude generates the code needed to accomplish your task in your connected apps
- User Approval: Keyboard presents the generated code for your review and approval
- Secure Execution: Once approved, the code runs safely in an isolated GitHub Codespace
- Results: You get real results, not just code suggestions
This architecture ensures you maintain full control while enabling your AI to actually execute tasks rather than just providing instructions.
Full docs can be found at https://docs.keyboard.dev/ but see below for direct links to a few docs that will help you use Keyboard after you get set up:
If you want to run the whole codebase and contribute to both the MCP server and the desktop client see the instructions below.
1️⃣ Clone the monorepo (with submodules)
git clone --recursive https://github.com/keyboard-dev/keyboard-local.git
cd keyboard-local2️⃣ Start Approver Client (Electron Desktop App)
cd apps/approver-client
git checkout main
git pull origin main
npm install && npm run dev3️⃣ Start Keyboard MCP Server
In a separate terminal:
cd apps/keyboard-mcp
git checkout main
git pull origin main
npm install && npm run build✅ DO THIS:
- Make changes in apps/approver-client/ or apps/keyboard-mcp/
- Create branches and commits like normal
- Submit PRs to the individual repos:
Approver Client changes → https://github.com/keyboard-dev/approver-client
Keyboard MCP changes → https://github.com/keyboard-dev/keyboard-mcp
❌ DON'T DO THIS:
- Don't submit PRs to this monorepo (unless changing this README)
- Don't worry about "updating submodules" - handled automatically
That's It! Work like you normally would. This repo just saves you from cloning multiple repositories.
Keyboard executes code in your GitHub Codspace environment. While we've designed it with security in mind, you should:
- Review all code before approving execution
- Only connect trusted applications
- Understand that API calls may have real-world effects
- Don't give Keyboard or by extension your GitHub codespace permissions that could in general ruin your life or career
This software is provided "as is" without warranty of any kind, express or implied.
⭐ If Keyboard helps you work more securely with AI, please give us a star!
Join our Discord if you have any questions. We'd love to hear from you.
Built with ❤️ by the Keyboard team