Skip to content

roman10/mcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

424 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mcode

Terminal-native tiling IDE for parallel coding-agent sessions

License CI

mcode 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 105 MCP tools make it highly automatable.

Looking for setup and usage docs? Start with the user manual for guided walkthroughs, feature guides, and shortcut reference.

Tiling layout with multiple active sessions

Features

Multi-session management

  • Tiling layout — split the screen into resizable tiles, each running a fully interactive agent terminal. See all sessions at once.
  • Kanban board — switch to a board view with columns by status: Needs Attention, Working, Ready, and Completed.
  • Multi-account support for Claude — run Claude sessions under different accounts; switch accounts when an account limit reaches and resume work from a different account.

Kanban board grouped by session status

Real terminal

  • node-pty + xterm.js WebGL — the same terminal stack used by VS Code and Cursor. Full ANSI support, not a chat wrapper.
  • PTY persistence — sessions survive app restarts via a background PTY broker process.

Orchestration

  • Task queue — dispatch prompts to sessions with per-session reordering, retry logic, and concurrent execution.
  • Hook-driven monitoring for Claude — receives Claude Code hook events (tool use, notifications, permission requests, stops) over HTTP for live session visibility.
  • 105 MCP tools — 15 tool categories covering sessions, terminals, layout, tasks, git, files, commits, tokens, hooks, and more. Every feature is agent-accessible.

Productivity

  • Command palette (Cmd+Shift+P) + Quick Open (Cmd+P) — VS Code-style fuzzy navigation.
  • Snippet palette — reusable prompt templates with variable interpolation.
  • Commit analytics — daily stats, streaks, heatmaps, cadence, and per-repo breakdown.
  • Token analytics — usage and cost by model, cache efficiency, top sessions, 7-day heatmap.
  • Git integration — commit graph visualization, VS Code-style staging/unstaging, and inline diff viewer.

Stats sidebar with commit and token analytics

Download

Pre-built DMG for Apple Silicon (macOS):

Download latest DMG (Apple Silicon)

Gatekeeper note: macOS may block the app on first launch since it is not yet notarized. Right-click mcode.app in your Applications folder → OpenOpen Anyway. Alternatively: xattr -cr /Applications/mcode.app

Install via Homebrew

brew install --cask roman10/tap/mcode

Installation

Prerequisites

  • macOS (primary platform)
  • Node.js 22 or later
  • Agent CLIs installed and authenticated only for the session types you want to run:
    • Claude Code CLI for Claude sessions (npm install -g @anthropic-ai/claude-code)
    • Gemini CLI for Gemini sessions (npm install -g @google/gemini-cli)
    • Codex CLI for Codex sessions
    • Copilot CLI for Copilot sessions
  • No agent CLI required for plain terminal sessions

Build from source

git clone https://github.com/roman10/mcode.git
cd mcode
npm install
npm run dev

Build production DMG

npm run build:mac

This produces a DMG in the dist/ directory.

Quick Start

  1. Create a session — press Cmd+N, choose Claude Code, Gemini CLI, Codex CLI, or Copilot CLI, then pick a working directory and optional prompt. Use Cmd+T for a plain terminal.
  2. Split the viewCmd+D splits horizontally, Cmd+Shift+D splits vertically. Cmd+Enter maximizes a tile.
  3. NavigateCmd+Shift+P opens the command palette. Cmd+P opens Quick Open for file search.
  4. Queue workCmd+Shift+T creates a task. Tasks dispatch to sessions automatically or can target a specific session.
  5. Switch viewsCmd+Shift+L toggles between tiling layout and kanban board.

For the full first-run walkthrough, see Getting Started.

Documentation

Keyboard Shortcuts

Shortcut Action
Cmd+N New session
Cmd+T New terminal
Cmd+D Split horizontal
Cmd+Shift+D Split vertical
Cmd+Enter Toggle maximize
Cmd+W Close tile
Cmd+Shift+P Command palette
Cmd+P Quick Open
Cmd+Shift+T New task
Cmd+Shift+L Toggle tiling / kanban
Cmd+\ Toggle sidebar
Cmd+, Settings

See Keyboard Shortcuts for the full list, or browse the User Manual for feature guides.

MCP Automation

mcode exposes a Model Context Protocol (MCP) server with 105 tools across 15 categories:

Category Tools Examples
Session 17 create, kill, resume, wait for status, set label/model, account list
Layout 15 get/set view mode, add/remove tiles, toggle command palette
Terminal 9 send keys, read buffer, resize, drop files, panel height
Hooks 8 list events, attention summary, wait/clear attention
Sidebar 7 switch tab, select session, get/set filter
Git 10 stage/unstage/discard files, get diff, open diff viewer
Commits 9 daily stats, heatmap, cadence, streaks, scan control
Tokens 6 daily usage, model breakdown, session usage, heatmap
Task 6 create, update, cancel, reorder, wait for status
File 5 list, read, write, search, open viewer
App 5 version, console logs, HMR events, sleep control
Kanban 3 get columns, expand session, collapse
Window 3 get bounds, resize, screenshot
Snippet 1 list snippet templates
Search 1 full-text file search

This means agents can drive the IDE programmatically — creating sessions, dispatching tasks, reading terminal output, and verifying results without manual interaction.

Tech Stack

Component Technology
App shell Electron 41 + electron-vite
Frontend React 19 + TypeScript 5.9
Terminal node-pty + xterm.js (WebGL)
Tiling layout react-mosaic-component
State Zustand
Database better-sqlite3 (SQLite, WAL mode)
Styling Tailwind CSS v4
Packaging electron-builder

Contributing

See CONTRIBUTING.md for development setup, code conventions, and how to submit changes.

To run tests:

npm test              # unit tests
npm run dev           # start dev server (required for integration tests)
npm run test:mcp      # integration tests (in a separate terminal)

License

Apache 2.0

Packages

 
 
 

Contributors

Languages