Discover MCPs & agents
Loading MCPs and agents…
Loading MCPs and agents…
AI pair programming desktop app with pixel-art RPG visualization. Watch Claude Code come alive as a character navigating a virtual office—reading files at cabinets, editing code at desks, running commands at terminals. Electron + Godot + xterm.js
From the repo.
Your AI coding assistant, visualized as a cozy pixel-art office adventure.
Claudy transforms the Claude CLI experience into something you can actually watch. Instead of staring at scrolling text in a terminal, you get a charming little character who runs around a virtual office doing your bidding—fetching files from cabinets, typing at terminals, and celebrating when tasks are complete.
Claudy is a desktop app that wraps Claude Code (Anthropic's AI coding assistant) in a fun, visual interface. It has two views:
When you ask Claude to do something, the little character in the game physically walks to different parts of the office based on what Claude is doing:
| Claude is... | Character goes to... |
|---|---|
| Reading files | The filing cabinet |
| Editing code | The main desk |
| Running commands | The computer terminal |
| Searching the web | The bookshelf |
| Spawning helper tasks | The center of the room |
It's like having a tiny robot assistant you can watch work.
Select a project folder to get started
Watch your character navigate the office while Claude works — here spawning helper agents
Full terminal experience with Claude Code running multiple parallel agents
Before you begin, make sure you have:
# Clone the repository
git clone <repo-url>
cd emulator
# Install dependencies (this also rebuilds native modules for Electron)
npm install
Development mode (with hot reload):
# In one terminal, start the dev servers
npm run dev
# In another terminal, run Electron
electron . --dev
Production mode:
npm start
┌─────────────────────────────────────────────────────────────────┐
│ CLAUDY APP │
│ │
│ ┌──────────────┐ ┌──────────────────────┐ │
│ │ Terminal │◄──── same ────────►│ RPG View │ │
│ │ View │ PTY │ ┌────────┐ ┌──────┐ │ │
│ │ (xterm.js) │ session │ │ Game │ │ Chat │ │ │
│ └──────────────┘ │ │(Godot) │ │Panel │ │ │
│ │ │ └────────┘ └──────┘ │ │
│ │ └──────────────────────┘ │
│ ▼ │ │
│ ┌─────────────────────────────────────────────┘ │
│ │ │
│ │ Claude CLI (running in PTY) │
│ │ │ │
│ │ ▼ │
│ │ Transcript Files (.jsonl) │
│ │ │ │
│ │ ▼ │
│ │ Transcript Watcher │
│ │ (detects what Claude is doing) │
│ │ │ │
│ │ ┌────────────┼────────────┐ │
│ │ ▼ ▼ ▼ │
│ │ Chat Messages Tool Events Game Events │
│ │ (to Chat Panel) (status) (character moves) │
│ └─────────────────────────────────────────────────────────────┘
└─────────────────────────────────────────────────────────────────┘
The pixel-art office isn't just cute decoration—each location represents a type of work Claude does:
| Location | What It Represents | When Character Goes There |
|---|---|---|
| Filing Cabinet | File storage and retrieval | Reading, searching, or globbing files |
| Main Desk | Code editing | Editing or writing files |
| Computer Terminal | Command execution | Running bash commands |
| Bookshelf | Research and references | Web searches or fetching URLs |
| Center Room | Coordination | Spawning helper agents or asking questions |
| Door | Entry/exit | When helper agents spawn or leave |
The character also shows different emotions:
emulator/
├── src/
│ ├── main/ # Electron main process (Node.js)
│ │ ├── main.ts # App entry point, creates window
│ │ ├── pty/PtyManager.ts # PTY session management
│ │ ├── claude-code/
│ │ │ ├── process-manager.ts # Spawns and manages Claude CLI
│ │ │ └── transcript-watcher.ts # Watches Claude's log files
│ │ └── ipc/handlers.ts # Communication between processes
│ │
│ ├── preload/
│ │ └── preload.ts # Security bridge for IPC
│ │
│ ├── renderer/ # React UI (what you see)
│ │ ├── App.tsx # Main app with tab switching
│ │ ├── main.tsx # React entry point
│ │ ├── components/
│ │ │ ├── Terminal/ # xterm.js terminal emulator
│ │ │ ├── RPG/ # Game + Chat container
│ │ │ ├── GodotGame/ # Embedded Godot game
│ │ │ ├── ChatPanel/ # Chat messages and input
│ │ │ ├── SplashScreen/ # Loading screen
│ │ │ └── FolderSelector/# Project folder picker
│ │ ├── hooks/
│ │ │ └── useTranscript.ts # Subscribe to transcript events
│ │ ├── terminal/ # Terminal configuration
│ │ └── styles/ # CSS (pixel-art theme)
│ │
│ └── shared/
│ ├── ipc-channels.ts # Communication channel names
│ └── types.ts # TypeScript type definitions
│
├── public/
│ └── godot/ # Compiled Godot game files
│ ├── index.html
│ ├── index.js
│ ├── index.wasm
│ └── index.pck
│
├── godot-src/ # Godot game source code
│ ├── project.godot # Godot project file
│ ├── Main.tscn # Main scene
│ ├── Player.gd # Character controller
│ ├── Player.tscn # Player scene
│ ├── EventHandler.gd # Handles events from Electron
│ ├── AgentManager.gd # Manages helper agent visuals
│ ├── UIOverlay.gd # Status bubbles and UI
│ └── Door.gd # Door interactions
│
└── package.json
| Technology | What It Does |
|---|---|
| Electron | Makes it a desktop app (combines Node.js + Chromium) |
| React | Builds the user interface |
| TypeScript | Adds type safety to JavaScript |
| Vite | Fast build tool and dev server |
| xterm.js | Terminal emulator in the browser |
| node-pty | Creates real terminal sessions |
| Godot 4.6 | Game engine for the pixel-art office |
| chokidar | Watches files for changes |
| Command | What It Does |
|---|---|
npm install | Install dependencies and rebuild native modules |
npm run dev | Start development mode with hot reload |
npm run build | Build for production |
npm start | Build and run the app |
npm run rebuild | Rebuild native modules (if you have issues) |
npm run dist | Package the app for distribution |
The Godot game source is in godot-src/. To make changes:
godot-src/project.godot in Godot 4.6public/godot/npm run buildClaudy uses a 16-bit pixel-art aesthetic inspired by classic RPG games. The color palette features:
The goal is to make coding feel like a cozy adventure game.
npm run rebuild
rm -rf node_modules
npm install
Make sure the Godot export files exist in public/godot/. If not, export from Godot.
Make sure Claude CLI is installed and in your PATH. Try running claude in a regular terminal first.
It's Claude + Buddy. A friendly little companion that makes coding with AI feel more personal and fun.
MIT License — see LICENSE for details.
| Asset | Creator | License |
|---|---|---|
| Office Tileset | Donarg | Custom license (credit appreciated) |
| UI Elements | Crusenho | CC BY 4.0 |
| Adam Character Sprites | Penzilla | Penzilla Standard License |
Thank you to these talented artists for making their work available!
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.