← Discover MCPs and Agents
n
MCPAI & MLGitHub

nexus

Multi-agent AI terminal workspace — run Claude Code, Codex, Gemini CLI, and 10+ other AI agents side-by-side. Tauri + React + brutalist UI.

Links

README

From the repo.

Nexus Terminal

Nexus Logo

Multi-Agent AI Terminal Workspace
Run Claude Code, Codex CLI, Gemini CLI, Qwen, Aider, and more — side-by-side in split panes.
Think "tmux meets a project manager meets an AI agent launcher."

Release License Stars

Dual Mode — Use as a desktop app (Tauri) or run the standalone web server and access from any browser on your local network. Same features, same UI.


Screenshots

1. Main Workspace2. Diff View3. Settings
1. Main Workspace2. Diff View3. Settings

Features

🤖 Multi-Agent Runner Terminal

  • 10 AI coding agents — Claude Code, Codex CLI, Gemini CLI, Aider, OpenCode, Qwen Code, Junie, Kiro, Kilo Code, Cline
  • Auto-detected on PATH — only installed agents appear in launcher
  • Run multiple agents side-by-side in split panes (up to 2×2 grid) within the same project
  • Custom agents — add your own agent commands with custom args, env, accent color
  • Terminal tabs per project — each project has independent tabs with split pane grids
  • Session persistence — terminals survive restarts; layout and sessions fully restored
  • True-color PTYxterm-256color + COLORTERM=truecolor for proper TUI rendering
  • Direct writer pipeline — batched PTY → xterm.js rendering to prevent UI freeze under high output
  • Copy on select, paste on right-click, configurable cursor styles
  • Per-pane zoom (Ctrl+scroll), 10,000 line scrollback

🗂️ Multi-Project Management System

  • Add/remove/reorder projects with name, path, accent color, custom icon, and category
  • 7 project categories: Web, App, Game, API/Backend, ML/AI, CLI Tool, Other
  • Resizable collapsible sidebar (drag to reorder projects, right-click context menu)
  • Project tabs — open multiple projects simultaneously, switching preserves all layouts
  • Agent count badge per project in sidebar — projects auto-bump to top when agents are running
  • SSH remote project supportuser@host:/path format, agents auto-launch over SSH
  • Auto-spawn default agents per project on open
  • Browser mode — projects synced via HTTP API for headless server

📋 Local Kanban Board

  • Built-in ◈ KANBAN tab per project — always present as first tab
  • Four columns: Todo, In Progress, Done, Blocked
  • Full CRUD: create, edit (double-click), drag-and-drop between columns, delete
  • Quick status advancement — one-click move to next status
  • Tasks persist across restarts via local JSON storage or HTTP API

☁️ Planka Self-Hosted Cloud Kanban

  • Full Planka API integration — connect Nexus to your self-hosted Planka instance
  • 3-step connection wizard: Credentials → Select/Create Project → Select/Create Board
  • Full CRUD sync: Create/delete projects, create/delete boards, create/update/delete/move cards, create/delete lists
  • Drag-and-drop cards between lists — auto-syncs to Planka API in real-time
  • Planka proxy — HTTP proxy through backend to avoid CORS issues
  • WebSocket live synckanban-refresh events keep all connected clients in sync
  • Agent instructions panel — customize how AI agents interact with the kanban board
  • Auto-detection — if project has Planka config, shows Planka board instead of local
  • Connect/Disconnect/Change Board controls in UI

🧠 AI Agency — Agent Personality Selector

  • Agency agent dropdown in toolbar — browse and select AI agency personalities
  • 65+ specialist agents from the agency-agents catalog across 7 divisions:
    • Design & UX, Engineering, Marketing, Product & Project Management, Support & Operations, Testing & Quality, Specialized
  • Search agents by name or slug
  • Enable/disable toggle per agent with green dot indicator
  • Project sync — writes AGENCY.md file to project root with selected agent personality and instructions
  • Change AI personality for any agent — instructions flow into all agents working on that project
  • Auto-re-sync on startup if agency files are missing or stale

🛠️ CLI AI Tools Harness — Skills & MCP Servers

  • Shared MCP registry — configure MCP servers once in Settings, sync across all projects
  • 7 MCP presets: context-mode, context7, playwright, github, filesystem, sequential-thinking, android-mcp
  • Per-agent MCP file auto-generation — Nexus writes proper MCP configs for each agent:
    • Claude Code (.mcp.json), Gemini CLI (.gemini/settings.json), OpenCode (.nexus/opencode/opencode.json)
    • Qwen Code (.qwen/settings.json), Kilo Code (.kilocode/mcp.json), Junie (.junie/mcp/mcp.json)
    • Kiro (.kiro/settings/mcp.json), Cline (.nexus/cline/data/settings/cline_mcp_settings.json)
  • Codex MCP via launch args — auto-converts MCP config to CLI arguments
  • Project-scoped values<PROJECT_PATH> placeholder replacement in MCP server configs
  • Managed manifest.nexus/mcp-managed.json tracks Nexus-managed entries for clean removal
  • Per-agent MCP install labels: Project File, Launch Config, Launch Args, or Manual

📐 Spec-Kit Integration

  • One-click Spec Kit bootstrap per project — installs specify-cli and initializes .specify directory
  • Per-project enable/disable with agent selection
  • Supported agents: Codex, Claude Code, Gemini CLI
  • Auto-detection — checks for .specify directory on project load
  • Rust-side bootstrap — runs uv tool install specify-cli then specify init automatically

🔍 Complete Git Diff Panel

  • Full git diff view — side-by-side file list + diff hunks with line numbers
  • Color-coded additions/removals — green/red highlighting in diff hunks table
  • Per-file diff — click any changed file to load detailed diff
  • Branch switching — dropdown to list all local/remote branches and checkout
  • Git status badge — shows changed file count on toolbar button, polls every 5s
  • Commit instruction generator — "Ask Agent to Commit" button copies commit message + instructions to clipboard
  • Total additions/deletions summary at top of diff panel
  • Resizable panel (360-900px), refresh button, working tree clean indicator
  • Keyboard shortcut: Ctrl+Shift+G

📁 Project Tree — Hierarchical View & File Preview

  • Collapsible left panel showing full project file tree (160-480px resizable)
  • Lazy-loading directories — expand to load children on demand
  • File search — filter tree by filename
  • 15+ file type icons with colored indicators
  • Image preview — PNG, JPG, BMP, WebP, SVG, ICO, TIFF loaded in modal viewer
  • Animated GIF preview — full support for animated GIFs in image viewer
  • Text file preview — modal with monospace rendering of code/text file contents
  • Comprehensive MIME detection — code, images, GIFs, video, audio, archives, PDF, executables, fonts
  • Open in system editor — double-click any file to open in default editor
  • Context menu: Preview Text, Preview Image, Open in Editor
  • Drag-and-drop files to agents — drag any file from project tree onto terminal to paste its path
  • Keyboard shortcut: Ctrl+Shift+E

📊 Performance Monitor — System Health

  • System health header: Total CPU %, Total RAM (used/total GB) with progress bar
  • Process list — PID, Name, CPU%, RAM (MB/GB), Kill button
  • Sortable columns — click CPU or RAM header to sort ascending/descending
  • Kill any process — sends SIGKILL directly from the UI
  • Auto-refresh every 2 seconds via sysinfo crate in Rust backend
  • Resizable panel (280-600px)
  • Live in StatusBar — CPU/RAM always visible at bottom of workspace

🎨 Brutalist UI

  • High-contrast dark mode with #1a1a1a backgrounds, bold borders, pixel shadows
  • Yellow accent (#ffcc00) throughout — buttons, focus rings, active states, badges
  • Space Grotesk typography with JetBrains Mono for terminals
  • Material Symbols icon font — consistent iconography across all components
  • Light mode support toggleable in Settings
  • Custom titlebardecorations: false with macOS traffic lights, Windows/Linux min/max/close
  • Mobile-responsive — overlays and responsive sidebar for small screens

⚙️ Settings & Configuration

  • Appearance: Theme (dark/light), font family picker, font size slider (11-16px)
  • Terminal: Scrollback lines, cursor style (block/bar/underline), cursor blink toggle
  • Session: Session restore toggle, shell override, agent default args
  • Projects: Manage projects list, add/remove/edit, Spec-Kit/Caveman one-click install
  • Agents & MCP: Custom agents, MCP preset installation, per-agent MCP enable/disable
  • Keybindings: 15 configurable shortcuts — edit, clear, or reset any binding
  • Debug system: Toggleable namespaced debug logging with runtime window.__NEXUS_DEBUG__
  • Log search: Ctrl+Shift+F to search across all terminal session logs, grouped by session

⌨️ Keyboard Shortcuts

ShortcutAction
Ctrl+Shift+TNew terminal tab
Ctrl+Shift+WClose terminal tab
Ctrl+Shift+DSplit vertical
Ctrl+Shift+HSplit horizontal
Ctrl+Shift+XKill focused session
Ctrl+Shift+GToggle Git Diff panel
Ctrl+Shift+EToggle Project Directory panel
Ctrl+Shift+FLog search
Ctrl+BToggle sidebar
Ctrl+,Toggle Settings
Ctrl+TabNext project
Ctrl+Shift+TabPrevious project
Ctrl+QQuit
Ctrl+PlusZoom in terminal
Ctrl+MinusZoom out terminal

All keybindings are user-configurable in Settings → Keybindings.


Desktop vs Web Server

Both modes share the same frontend and Rust backend. Choose what fits your workflow:

FeatureDesktop AppWeb Server
Terminal✅ Native PTY✅ Via WebSocket
Agent spawning✅ Full✅ Full
Project tree & file preview✅ Native FS✅ Via HTTP API
Git diff/status✅ Full✅ Full
Kanban board (local + Planka)✅ Persisted to disk✅ Persisted to disk
Multi-project management✅ Persisted to disk✅ Persisted to disk
Resource monitor (CPU/RAM)✅ Full✅ Full
Settings / MCP / Skills✅ Full✅ Full
Agency agents✅ Full✅ Full
Access from phone/tablet✅ Same WiFi
Multiple users✅ Local network

Note: In web server mode, projects and kanban tasks are saved to nexus_web_state.json in the server's working directory. The desktop app uses Tauri's native file APIs. Data is not shared between the two modes unless you manually copy the state file.


Install

Option 1: Desktop App (Recommended)

⬇ Download latest release

Linux

x64:

tar -xzf Nexus_linux_x64.tar.gz
cp Nexus_linux_x64/nexus ~/.local/bin/nexus
chmod +x ~/.local/bin/nexus
nexus

ARM64:

tar -xzf Nexus_linux_arm64.tar.gz
cp Nexus_linux_arm64/nexus ~/.local/bin/nexus
chmod +x ~/.local/bin/nexus
nexus

Or use the installer script:

./install.sh  # Auto-detects architecture

Windows

Download Nexus_windows_x64.zip or Nexus_windows_arm64.zip, extract, and run nexus.exe.

Or use PowerShell:

./install.ps1  # Auto-detects architecture

Option 2: Web Server (Browser Mode)

Run the standalone HTTP + WebSocket server and access from any browser on your local network.

Build from source

git clone https://github.com/abhay-byte/nexus.git
cd nexus
npm install
npm run build
cd src-tauri
cargo build --bin nexus-server --release

Run the server

./target/release/nexus-server
  • HTTP API: http://localhost:7878
  • WebSocket: ws://localhost:7879/ws
  • Open in browser: http://localhost:7878

Security

The server only accepts connections from localhost and your local network IPs. External requests are blocked with 403 Forbidden. You can allow extra IPs:

NEXUS_ALLOW_IPS=192.168.1.50 ./target/release/nexus-server

Environment Variables

VariableDefaultDescription
NEXUS_PORT7878HTTP server port
NEXUS_WS_PORT7879WebSocket server port
NEXUS_ALLOW_IPSComma-separated extra allowed IPs

Supported Agents

AgentCommandNotes
Claude Codeclaude--dangerously-skip-permissions flag auto-added
Codex CLIcodexMCP via launch args auto-configured
Gemini CLIgemini.gemini/settings.json auto-generated
Aideraider--no-auto-commits flag auto-added
OpenCodeopencode.nexus/opencode/opencode.json auto-generated
Qwen Codeqwen.qwen/settings.json auto-generated
JuniejunieJetBrains, .junie/mcp/mcp.json auto-generated
Kirokiro.kiro/settings/mcp.json auto-generated
Kilo Codekilo-code.kilocode/mcp.json auto-generated
Clinecline.nexus/cline/data/settings/cline_mcp_settings.json auto-generated

Dev Setup

git clone https://github.com/abhay-byte/nexus.git
cd nexus
npm install
npm run tauri dev

For ARM64 cross-compilation, see docs/building-arm64.md.


Tech Stack

LayerTech
Desktop shellTauri v2 (Rust) — optional
FrontendReact 18 + TypeScript + Vite
StateZustand
Terminalxterm.js v5 via @xterm/xterm
PTY backendportable-pty (Rust)
HTTP servertiny_http (Rust)
WebSockettokio-tungstenite (Rust)
System monitoringsysinfo (Rust)
StylingTailwind CSS v4 + custom brutalist tokens

Project Structure

nexus/
├── src/                        # React frontend (works in both modes)
│   ├── components/
│   │   ├── AgentBar/           # Running session tabs + launch dropdown
│   │   ├── GitDiffPanel/       # Git diff viewer with branch switching
│   │   ├── Kanban/             # Local kanban + Planka integration
│   │   ├── PaneGrid/           # Split terminal grid (2×2 max)
│   │   ├── ProjectDirectoryPanel/  # File tree with preview
│   │   ├── ResourceMonitorPanel/   # CPU/RAM/process monitor
│   │   ├── Settings/           # Full settings workspace (6 sections)
│   │   ├── Sidebar/            # Project list with drag-to-reorder
│   │   ├── StatusBar/          # Agent count, CPU/RAM, version
│   │   ├── TerminalTabBar/     # Terminal tabs + agency dropdown
│   │   ├── Titlebar/           # Custom window chrome
│   │   └── dialogs/            # Add project, custom agent, log search
│   ├── store/                  # Zustand stores (project, session, kanban)
│   ├── lib/
│   │   ├── api.ts              # Unified Tauri / HTTP / WebSocket API
│   │   ├── planka.ts           # Planka full CRUD API client
│   │   ├── projectMcpSync.ts   # Per-agent MCP config file generation
│   │   ├── directWriter.ts     # Batched PTY → xterm.js pipeline
│   │   ├── layout.ts           # Split pane fraction management
│   │   └── persistence.ts      # Project & session persistence
│   ├── constants/
│   │   ├── agents.ts           # Agent definitions + MCP/spec-kit/caveman support
│   │   ├── keybindings.ts      # 15 configurable shortcuts
│   │   └── mcpPresets.ts       # 7 MCP server presets
│   └── types/                  # TypeScript type definitions
├── src-tauri/                  # Rust backend
│   ├── src/
│   │   ├── lib.rs              # Library exports (pty, server, ws)
│   │   ├── main.rs             # Tauri desktop entry point
│   │   ├── bin/
│   │   │   └── server.rs       # Standalone headless server entry point
│   │   ├── server.rs           # HTTP REST API + static file serving
│   │   ├── ws_server.rs        # WebSocket terminal streaming
│   │   └── pty.rs              # PTY spawn/resize/kill, agent launch, system health, spec-kit/caveman bootstrap
│   └── capabilities/           # Tauri permissions
├── docs/                       # Screenshots, building guides
├── stitch/                     # Stitch tool scripts
└── install.sh                  # System-wide installer

License

MIT © 2026 Abhay

Collected info

  • 17 stars
  • 2 forks
  • Language: TypeScript
  • Source updated: 8/18/2026

Config for your environment

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.