{"id":47702755,"url":"https://github.com/roman10/mcode","last_synced_at":"2026-04-26T04:01:35.795Z","repository":{"id":346803399,"uuid":"1180485433","full_name":"roman10/mcode","owner":"roman10","description":"Tiling IDE for macOS to manage multiple Claude Code sessions in parallel","archived":false,"fork":false,"pushed_at":"2026-04-17T06:31:35.000Z","size":6414,"stargazers_count":5,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-17T08:25:11.868Z","etag":null,"topics":["ai-coding","claude-code","developer-tools","electron","ide","macos","mcp","multi-agent","openai-codex","terminal","tiling","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/roman10/mcode","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roman10.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-13T04:56:16.000Z","updated_at":"2026-04-17T06:16:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/roman10/mcode","commit_stats":null,"previous_names":["roman10/mcode"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/roman10/mcode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman10%2Fmcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman10%2Fmcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman10%2Fmcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman10%2Fmcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roman10","download_url":"https://codeload.github.com/roman10/mcode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman10%2Fmcode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32285283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-coding","claude-code","developer-tools","electron","ide","macos","mcp","multi-agent","openai-codex","terminal","tiling","typescript"],"created_at":"2026-04-02T17:43:18.105Z","updated_at":"2026-04-26T04:01:35.788Z","avatar_url":"https://github.com/roman10.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mcode\n\n**Terminal-native tiling IDE for parallel coding-agent sessions**\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n[![CI](https://img.shields.io/github/actions/workflow/status/roman10/mcode/ci.yml?label=CI)](https://github.com/roman10/mcode/actions)\n\nmcode is a desktop IDE that lets you run, view, and orchestrate multiple coding-agent sessions simultaneously. It currently supports Claude Code, Gemini CLI, Codex CLI, Copilot CLI, and plain terminal sessions. Instead of tabbing between terminals, you see every session at once in a tiling layout — or switch to a kanban board grouped by status. A built-in task queue, hook-driven monitoring for Claude sessions, and 120 MCP tools make it highly automatable.\n\nLooking for setup and usage docs? Start with the [user manual](docs/user_manual/README.md) for guided walkthroughs, feature guides, and shortcut reference.\n\n![Tiling layout with multiple active sessions](docs/screenshots/tiling-layout.png)\n\n## Features\n\n### Multi-session management\n\n- **Tiling layout** — split the screen into resizable tiles, each running a fully interactive agent terminal. See all sessions at once.\n- **Kanban board** — switch to a board view with columns by status: Needs Attention, Working, Ready, and Completed.\n- **Multi-account support for Claude and Copilot** — run sessions under different accounts; switch accounts when a rate limit hits and resume work from a different account.\n\n![Kanban board grouped by session status](docs/screenshots/kanban-view.png)\n\n### Real terminal\n\n- **node-pty + xterm.js WebGL** — the same terminal stack used by VS Code and Cursor. Full ANSI support, not a chat wrapper.\n- **PTY persistence** — sessions survive app restarts via a background PTY broker process.\n\n### Orchestration\n\n- **Task queue** — dispatch prompts to sessions with per-session reordering, retry logic, and concurrent execution. Supports **plan mode** — agents propose a plan before executing, with an approve/revise workflow.\n- **Hook-driven monitoring for Claude** — receives Claude Code hook events (tool use, notifications, permission requests, stops) over HTTP for live session visibility.\n- **120 MCP tools** — 17 tool categories covering sessions, terminals, layout, tasks, git, files, commits, tokens, hooks, todos, prompt history, and more. Every feature is agent-accessible.\n\n### Productivity\n\n- **Command palette** (\u003ckbd\u003eCmd+Shift+P\u003c/kbd\u003e) + **Quick Open** (\u003ckbd\u003eCmd+P\u003c/kbd\u003e) — VS Code-style fuzzy navigation.\n- **Prompt library** — unified palette combining reusable snippet templates (`@` prefix) and prompt history (`#` prefix) with pinning and save-as-snippet.\n- **Commit analytics** — daily bar charts, streaks, heatmaps, cadence, 7d/30d averages, and per-repo breakdown.\n- **Token analytics** — usage and cost by model, cache efficiency, top sessions, 7-day heatmap.\n- **Git integration** — commit graph visualization, VS Code-style staging/unstaging, and inline diff viewer.\n- **Todos panel** — per-repo task list with priority levels, completion tracking, and automatic scanning of `TODO`/`FIXME`/`HACK`/`BUG` comments in code.\n\n![Stats sidebar with commit and token analytics](docs/screenshots/stats-sidebar.png)\n\n## Download\n\nPre-built DMG for Apple Silicon (macOS):\n\n**[Download latest DMG (Apple Silicon)](https://github.com/roman10/mcode/releases/latest)**\n\nThe app is signed and notarized — macOS Gatekeeper will allow it to open without extra steps.\n\n### Install via Homebrew\n\n```sh\nbrew install --cask roman10/tap/mcode\n```\n\n## Installation\n\n### Prerequisites\n\n- **macOS** (primary platform)\n- **Node.js** 22 or later\n- **Agent CLIs** installed and authenticated only for the session types you want to run:\n  - **Claude Code CLI** for Claude sessions (`npm install -g @anthropic-ai/claude-code`)\n  - **Gemini CLI** for Gemini sessions (`npm install -g @google/gemini-cli`)\n  - **Codex CLI** for Codex sessions\n  - **Copilot CLI** for Copilot sessions\n- **No agent CLI required** for plain terminal sessions\n\n### Build from source\n\n```bash\ngit clone https://github.com/roman10/mcode.git\ncd mcode\nnpm install\nnpm run dev\n```\n\n### Build production DMG\n\n```bash\nnpm run build:mac\n```\n\nThis produces a DMG in the `dist/` directory.\n\n## Quick Start\n\n1. **Create a session** — press \u003ckbd\u003eCmd+N\u003c/kbd\u003e to create a new Claude Code session (pick a working directory and optional prompt), or choose Gemini CLI, Codex CLI, or Copilot CLI from the command palette. Use \u003ckbd\u003eCmd+T\u003c/kbd\u003e for a plain terminal.\n2. **Split the view** — \u003ckbd\u003eCmd+D\u003c/kbd\u003e splits horizontally, \u003ckbd\u003eCmd+Shift+D\u003c/kbd\u003e splits vertically. \u003ckbd\u003eCmd+Enter\u003c/kbd\u003e maximizes a tile.\n3. **Navigate** — \u003ckbd\u003eCmd+Shift+P\u003c/kbd\u003e opens the command palette. \u003ckbd\u003eCmd+P\u003c/kbd\u003e opens Quick Open for file search.\n4. **Queue work** — \u003ckbd\u003eCmd+Shift+T\u003c/kbd\u003e creates a task. Tasks dispatch to sessions automatically or can target a specific session.\n5. **Switch views** — \u003ckbd\u003eCmd+Shift+L\u003c/kbd\u003e toggles between tiling layout and kanban board.\n\nFor the full first-run walkthrough, see [Getting Started](docs/user_manual/getting-started.md).\n\n## Documentation\n\n- [User Manual](docs/user_manual/README.md) — start here for setup and feature guides\n- [Getting Started](docs/user_manual/getting-started.md) — first-run walkthrough and core workflows\n- [Attention \u0026 Tasks](docs/user_manual/attention-and-tasks.md) — understand attention levels and the task queue\n- [Command Palette \u0026 Quick Open](docs/user_manual/command-palette.md) — fuzzy navigation, commands, and snippets\n- [Sidebar Panels](docs/user_manual/sidebar-panels.md) — sessions, search, changes, stats, activity, and todos\n- [Kanban View](docs/user_manual/kanban-view.md) — board layout, cards, and expanded session view\n- [Terminal Panel](docs/user_manual/terminal-panel.md) — bottom terminal area, tabs, and layout\n- [File Viewer](docs/user_manual/file-viewer.md) — opening, editing, and saving files\n- [Git Changes \u0026 Diff Viewer](docs/user_manual/git-changes.md) — review, stage, and inspect changes\n- [Accounts](docs/user_manual/accounts.md) — manage Claude accounts\n- [Multi-Account GitHub](docs/user_manual/multi-account-github.md) — GitHub SSH and gh CLI for multiple accounts\n- [Settings](docs/user_manual/settings.md) — general, tracking, editor, and advanced settings\n- [Keyboard Shortcuts](docs/user_manual/keyboard-shortcuts.md) — full shortcut reference\n\n## Keyboard Shortcuts\n\n| Shortcut | Action |\n|---|---|\n| \u003ckbd\u003eCmd+N\u003c/kbd\u003e | New session |\n| \u003ckbd\u003eCmd+T\u003c/kbd\u003e | New terminal |\n| \u003ckbd\u003eCmd+D\u003c/kbd\u003e | Split horizontal |\n| \u003ckbd\u003eCmd+Shift+D\u003c/kbd\u003e | Split vertical |\n| \u003ckbd\u003eCmd+Enter\u003c/kbd\u003e | Toggle maximize |\n| \u003ckbd\u003eCmd+W\u003c/kbd\u003e | Close tile |\n| \u003ckbd\u003eCmd+Shift+P\u003c/kbd\u003e | Command palette |\n| \u003ckbd\u003eCmd+P\u003c/kbd\u003e | Quick Open |\n| \u003ckbd\u003eCmd+Shift+T\u003c/kbd\u003e | New task |\n| \u003ckbd\u003eCmd+Shift+L\u003c/kbd\u003e | Toggle tiling / kanban |\n| \u003ckbd\u003eCmd+\\\\\u003c/kbd\u003e | Toggle sidebar |\n| \u003ckbd\u003eCmd+,\u003c/kbd\u003e | Settings |\n\nSee [Keyboard Shortcuts](docs/user_manual/keyboard-shortcuts.md) for the full list, or browse the [User Manual](docs/user_manual/README.md) for feature guides.\n\n## MCP Automation\n\nmcode exposes a Model Context Protocol (MCP) server with 120 tools across 17 categories:\n\n| Category | Tools | Examples |\n|---|---|---|\n| Session | 19 | create, kill, resume, wait for status, set label/model, auto-close, account list |\n| Layout | 15 | get/set view mode, add/remove tiles, toggle command palette |\n| Terminal | 11 | send keys, read buffer, resize, drop files, panel height/tabs |\n| Hooks | 9 | list events, attention summary, wait/clear attention |\n| Sidebar | 7 | switch tab, select session, get/set filter |\n| Git | 10 | stage/unstage/discard files, get diff, open diff viewer |\n| Commits | 9 | daily stats, heatmap, cadence, streaks, scan control |\n| Tokens | 6 | daily usage, model breakdown, session usage, heatmap |\n| Task | 6 | create, update, cancel, reorder, wait for status |\n| File | 5 | list, read, write, search, open viewer |\n| App | 5 | version, console logs, HMR events, sleep control |\n| Kanban | 3 | get columns, expand session, collapse |\n| Window | 3 | get bounds, resize, screenshot |\n| Todo | 5 | create, update, delete, reorder, list |\n| Prompt History | 4 | recent, search, pin/unpin, list pinned |\n| Snippet | 2 | list snippet templates, create from text |\n| Search | 1 | full-text file search |\n\nThis means agents can drive the IDE programmatically — creating sessions, dispatching tasks, reading terminal output, and verifying results without manual interaction.\n\n\u003e **Note:** Copilot CLI sessions are excluded from token cost metrics — Copilot does not expose token usage data.\n\n## Tech Stack\n\n| Component | Technology |\n|---|---|\n| App shell | Electron 41 + electron-vite |\n| Frontend | React 19 + TypeScript 5.9 |\n| Terminal | node-pty + xterm.js (WebGL) |\n| Tiling layout | react-mosaic-component |\n| State | Zustand |\n| Database | better-sqlite3 (SQLite, WAL mode) |\n| Styling | Tailwind CSS v4 |\n| Packaging | electron-builder |\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, code conventions, and how to submit changes.\n\nTo run tests:\n\n```bash\nnpm test              # unit tests\nnpm run dev           # start dev server (required for integration tests)\nnpm run test:mcp      # integration tests (in a separate terminal)\n```\n\n## License\n\n[Apache 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froman10%2Fmcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froman10%2Fmcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froman10%2Fmcode/lists"}