Skip to content

Repository files navigation

RunJam

RunJam

One Desktop, All Your AI Agents

Manage and run multiple AI agents — Claude Code, Codex CLI, Gemini CLI, and more — in a single unified desktop app. Auto-detect, one-click install, real-time streaming, local-first, automatic protocol proxy, cache optimization, llama.cpp local models, built-in code editor, terminal, and more.

License: MIT Tauri Vue 3 Rust PRs Welcome

Features · Quick Start · Architecture · Roadmap · FAQ

中文文档


RunJam Homepage

What is RunJam?

RunJam is a local-first, cross-platform desktop manager for AI agents. It manages your AI CLI tools and LLM model configurations — think of it as a unified control panel for all your AI coding assistants.

Instead of juggling multiple terminal windows, manually configuring each agent, and losing track of which agent is working on which project, RunJam brings everything into one clean interface with a single model configuration for all projects and agents:

  • Auto-detect agents already installed on your system
  • One-click install missing agents (Claude Code, Codex CLI, Gemini CLI)
  • Unified chat interface with real-time streaming, Markdown rendering, and syntax highlighting
  • Multi-project, multi-agent sessions running in parallel
  • Built-in file explorer, terminal, and code editor for each project workspace
  • Unified model configuration — configure once, sync to all agents with automatic protocol proxy
  • Cache optimization — automatic prompt cache detection saves tokens and reduces costs
  • Run local models — built-in llama.cpp support for free, offline inference with open-source models
  • Local-first — all data stays on your machine, no cloud, no telemetry

Core philosophy: RunJam doesn't require manually installing agent CLI tools — one-click auto-install. No need to manually configure the right model for each agent — RunJam's proxy auto-converts model protocols. No need for multiple editor windows for multiple projects — one interface manages all projects in parallel. Zero modifications needed. Just install and go.


Features

RunJam Core Features Demo

Agent Management

  • Auto-detection — Scans your PATH for installed AI agents (Claude Code, Codex CLI, Gemini CLI)
  • One-click install/uninstall — Installs agents via npm install -g with real-time progress
  • Agent configuration — View and edit agent config files (~/.claude/, ~/.codex/, ~/.gemini/)
  • Enable/disable agents per session

Unified Chat Interface

  • Real-time streaming — Watch agent thinking process, tool calls, and responses live
  • Markdown rendering — Full Markdown support with syntax highlighting and Mermaid diagrams
  • Thinking process — Agent reasoning steps are separated and auto-collapsed
  • Tool call details — Expand to see tool inputs and outputs
  • Multi-agent switching — Switch between agents as naturally as switching chat partners

Project Workspace

  • File explorer — Browse project files with a VS Code-style tree
  • Built-in code editor — Monaco-powered editor with syntax highlighting
  • Integrated terminal — xterm.js terminal for each project
  • Recent projects — Quick access to recently used project directories

Model Management

  • Unified model hub — Configure models once, sync to all agents automatically
  • Provider presets — OpenAI, Anthropic, Google AI, Groq, DeepSeek, custom APIs, and local models
  • Per-agent model assignment — Assign different models to different agents
  • Model aliases — Map friendly names to model IDs
  • API proxy — Built-in local proxy for unified API key management
  • Cache optimization — Automatic prompt cache hit detection & local response cache to save tokens and reduce costs
  • Local models — Built-in llama.cpp integration to run open-source models (DeepSeek Coder, Qwen, Llama, etc.) 100% locally and free

Session Management

  • Multi-session parallel — Run multiple agent sessions simultaneously
  • Session persistence — Sessions survive app restarts
  • Search — Full-text search across all conversation history
  • Archive — Archive old sessions to keep the sidebar clean
  • Cost tracking — Token usage and cost estimation per session

Local-First & Secure

  • All data local — Conversations, configs, and agent states stored in ~/.runjam/
  • No telemetry — Zero data collection, no analytics, no phone-home
  • No cloud dependency — Works fully offline (agents need their own API access)
  • System keychain — API keys stored securely in OS keychain
  • Local models — Run models via llama.cpp with zero API costs

Supported Agents

Agent CLI Command Install Provider
Claude Code claude npm install -g @anthropic-ai/claude-code Anthropic
Codex CLI codex npm install -g @openai/codex OpenAI
Gemini CLI gemini npm install -g @google/gemini-cli Google

More agents coming soon. RunJam's architecture makes it easy to add new agents — just add their detection and invocation logic.


Quick Start

Prerequisites

  • Node.js ≥ 18 (required by AI agent CLIs)
  • Rust ≥ 1.80 (for building from source)
  • System dependencies:
    • macOS: Xcode Command Line Tools
    • Windows: Microsoft Visual Studio C++ Build Tools + WebView2
    • Linux: webkit2gtk and related packages

Option A: Download Pre-built Binary

Pre-built binaries will be available on the GitHub Releases page.

Option B: Build from Source

# Clone the repository
git clone https://github.com/peintune/runjam.git
cd runjam

# Install frontend dependencies
npm install

# Run in development mode (hot reload)
npm run tauri dev

# Build for current platform (macOS → .dmg, Windows → .msi/.exe, Linux → .deb/.AppImage)
npm run tauri build

Build artifacts will be in src-tauri/target/release/bundle/.

Platform-specific builds

# macOS: build universal binary (Intel + Apple Silicon)
npm run tauri build -- --target universal-apple-darwin

# macOS: build Intel-only .dmg
npm run tauri build -- --target x86_64-apple-darwin

# macOS: build Apple Silicon-only .dmg
npm run tauri build -- --target aarch64-apple-darwin

# Windows: build .msi / .exe (run on Windows, or cross-compile from macOS/Linux)
npm run tauri build -- --target x86_64-pc-windows-msvc

# Linux: build .deb / .AppImage
npm run tauri build -- --target x86_64-unknown-linux-gnu

Cross-compilation note: Building Windows binaries from macOS/Linux requires additional Rust toolchains. It's recommended to build each platform's package on that platform directly (e.g., use CI runners).

First Run

  1. Open RunJam — it auto-detects installed AI agents
  2. Go to Settings → Agents to install missing agents (one-click)
  3. Go to Settings → Models to configure your API keys and models
  4. Click New Session, pick an agent, optionally select a project folder
  5. Start chatting!

Architecture

Core Data Flow

flowchart LR
    subgraph Frontend["🖥️ Vue 3 Frontend"]
        UI[Chat UI]
        Settings[Settings Panel]
        WS[Workspace Panel]
    end

    subgraph Agents["🤖 AI Agents"]
        Claude[Claude Code]
        Codex[Codex CLI]
        Gemini[Gemini CLI]
    end

    subgraph Proxy["🔀 RunJam Proxy"]
        Router[Protocol Router]
        Cache[Response Cache]
        LLM[LLM Protocol Adapter]
    end

    subgraph Backend["☁️ LLM APIs"]
        Anthropic[Anthropic API]
        OpenAI[OpenAI API]
        Google[Google AI API]
        DeepSeek[DeepSeek API]
        Qwen[Qwen API]
        Custom[Custom APIs]
    end

    subgraph Local["💻 Local Models"]
        Llama[llama.cpp Server]
        GGUF[GGUF Models]
    end

    UI -->|"Tauri IPC"| Agents
    Settings -->|"Tauri IPC"| Agents
    WS -->|"Tauri IPC"| Agents
    Agents -->|"stdin/stdout"| Proxy
    Proxy -->|"Auto Protocol\nConversion"| Router
    Router --> Cache
    Cache --> LLM
    LLM --> Anthropic
    LLM --> OpenAI
    LLM --> Google
    LLM --> DeepSeek
    LLM --> Qwen
    LLM --> Custom
    Router -.->|"local models"| Llama
    Llama --> GGUF

    style Frontend fill:#42b883,color:#fff
    style Agents fill:#ce422b,color:#fff
    style Proxy fill:#6366f1,color:#fff
    style Backend fill:#f59e0b,color:#fff
    style Local fill:#8b5cf6,color:#fff
Loading

System Architecture

flowchart TB
    subgraph Desktop["🖥️ RunJam Desktop (Tauri 2)"]
        direction TB
        subgraph Frontend2["Vue 3 Frontend"]
            Chat[Chat Messages]
            Sidebar[Session Sidebar]
            Explorer[File Explorer]
            Editor[Monaco Editor]
            Terminal[xterm.js Terminal]
        end

        subgraph RustBackend["Rust Backend"]
            Cmds[Tauri Commands]
            AgentMgr[Agent Manager]
            SessionMgr[Session Manager]
            DB[(SQLite DB)]
            Proxy2[API Proxy]
            LlamaSrv[llama.cpp Manager]
        end
    end

    subgraph Processes["📦 External Processes"]
        ClaudeProc[Claude Code Process]
        CodexProc[Codex ACP Process]
        GeminiProc[Gemini CLI Process]
        LlamaProc[llama-server Process]
    end

    Chat -->|"Tauri Events"| Cmds
    Sidebar --> Cmds
    Explorer --> Cmds
    Editor --> Cmds
    Terminal --> Cmds

    Cmds --> AgentMgr
    Cmds --> SessionMgr
    AgentMgr --> DB
    SessionMgr --> DB
    Proxy2 --> DB

    AgentMgr -->|"spawn & pipe"| ClaudeProc
    AgentMgr -->|"spawn & pipe"| CodexProc
    AgentMgr -->|"spawn & pipe"| GeminiProc
    LlamaSrv -->|"spawn & manage"| LlamaProc

    ClaudeProc -->|"stdout stream"| Proxy2
    CodexProc -->|"stdout stream"| Proxy2
    GeminiProc -->|"stdout stream"| Proxy2
    LlamaProc -->|"OpenAI API"| Proxy2

    Proxy2 -->|"HTTP"| AnthropicAPI[Anthropic API]
    Proxy2 -->|"HTTP"| OpenAIAPI[OpenAI API]
    Proxy2 -->|"HTTP"| GoogleAPI[Google AI API]
    Proxy2 -->|"HTTP"| DeepSeekAPI[DeepSeek API]
    Proxy2 -->|"HTTP"| QwenAPI[Qwen API]

    style Desktop fill:#1e1e2e,color:#fff
    style Frontend2 fill:#42b883,color:#fff
    style RustBackend fill:#ce422b,color:#fff
    style Processes fill:#6366f1,color:#fff
Loading

Tech Stack

Layer Technology Why
Desktop Framework Tauri 2 90% smaller than Electron, native performance
Backend Rust Zero GC pauses, excellent process management
Frontend Vue 3 + TypeScript Reactive, ecosystem maturity
Styling Tailwind CSS v4 Rapid UI development
State Pinia Vue 3 official, great TS support
Database SQLite (rusqlite) Local-first, zero-config
Code Editor Monaco Editor VS Code's editor engine
Terminal xterm.js Industry standard web terminal
Process Comm stdin/stdout pipes No agent modification needed

Project Structure

runjam/
├── src-tauri/                  # Rust backend
│   └── src/
│       ├── commands/           # Tauri command handlers (IPC bridge)
│       ├── agent/              # Agent detection & installation
│       ├── session/            # Session management & process control
│       ├── models/             # Data structures
│       ├── db/                 # SQLite layer & migrations
│       ├── proxy.rs            # Local API proxy
│       └── ...
├── src/                        # Vue 3 frontend
│   ├── components/             # UI components
│   ├── views/                  # Page views
│   ├── stores/                 # Pinia state management
│   ├── api/                    # Tauri invoke wrappers
│   ├── composables/            # Vue composables
│   └── i18n/                   # Internationalization (EN/ZH)
├── landing.html                # Landing page (separate build)
└── package.json

How It Works

RunJam manages AI agent CLI tools as child processes:

  1. Detection — Scans PATH for claude, codex, gemini executables
  2. Invocation — Spawns agent CLI as a child process with stdin piped
  3. Streaming — Reads stdout line-by-line, streams to frontend via Tauri events
  4. Protocol Proxy — RunJam's built-in proxy intercepts agent API calls and automatically converts between different LLM protocols (Anthropic ↔ OpenAI ↔ Gemini), so any agent can use any model
  5. Parsing — Parses agent output (thinking steps, tool calls, final responses)
  6. Rendering — Vue frontend renders Markdown, code blocks, and Mermaid diagrams

No network protocols required. No agent modifications needed. Just native CLI processes with automatic protocol adaptation.


Roadmap

  • Agent auto-detection & one-click install
  • Unified chat interface with streaming
  • Multi-agent, multi-project sessions
  • Built-in file explorer, editor, and terminal
  • Unified model configuration with sync
  • Session persistence & search
  • Local API proxy for unified key management
  • i18n (English / 中文)
  • Prompt cache optimization (auto-detect cache hits, response cache)
  • llama.cpp local model support (download, run, manage GGUF models)
  • PTY session mode (persistent multi-turn context)
  • Cost tracking dashboard with charts
  • Git worktree integration
  • Agent auto-update detection
  • Plugin/skill system
  • Linux builds

FAQ

How is RunJam different from Cursor / GitHub Copilot?

Cursor and Copilot are AI-powered code editors. RunJam is not an AI or an editor — it's a manager that makes your existing AI CLI agents more productive. Think of it as a unified dashboard for Claude Code, Codex CLI, and Gemini CLI.

How is RunJam different from AionUI?

AionUI requires agents to implement the ACP (Agent Client Protocol). RunJam takes a different approach: it manages agents as native CLI processes via stdin/stdout. Zero agent modifications needed. This means RunJam works with any CLI agent out of the box.

Is my data sent to the cloud?

No. RunJam is local-first. All agent processes run on your machine. All data (conversations, configs, agent states) is stored locally in ~/.runjam/. No telemetry, no analytics, no cloud sync.

Is RunJam free?

Yes. RunJam is fully open-source under the MIT license. Free to use, modify, and distribute.

Can multiple agents run simultaneously?

Yes. You can create separate sessions for different projects, each using a different agent. They run independently in parallel without interfering with each other.

What are the system requirements?

macOS, Windows, and Linux are all supported. The only prerequisite is Node.js ≥ 18 (required by AI agent CLIs). RunJam will check and guide you through installation if needed.


Contributing

Contributions are welcome! See CONTRIBUTING.md for setup instructions, code style guidelines, and PR workflow.

Areas We Need Help With

  • Linux build testing & packaging
  • New agent support (Aider, Continue, etc.)
  • UI/UX improvements
  • Documentation & translations
  • Bug reports & testing

License

MIT © RunJam Contributors


⭐ Star this repo if you find it useful!

Made with Rust 🦀 and Vue 3 💚

About

One desktop for all your AI coding agents — Claude Code, Codex CLI & Gemini CLI. Auto-detect, one-click install, unified chat, file explorer, terminal & editor. Local-first. Built with Tauri + Rust + Vue 3.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages