Sandbox
@generalaction/emdash

Parallel agent desktop app for Git worktrees

Emdash is a local-first desktop environment for agent-led development. It launches multiple agent tasks in parallel, isolates each one in its own Git worktree, and lets you inspect diffs, CI, pull requests, and merges in one interface. It also supports remote projects over SSH/SFTP and installs lifecycle hooks for supported agent CLIs.

5,713 stars585 forksTypeScriptUpdated 6d ago
Who it's for

Builders who want to run several coding agents at once and compare their results before merging.

What it delivers

You can explore multiple fixes or features in parallel without managing each agent by hand.

What it does

Parallel agent runs

Starts multiple coding agents at the same time instead of one terminal session at a time.

Git worktree isolation

Keeps each task in its own worktree and branch so changes stay separated.

Provider CLI support

Works with installed agent CLIs such as Claude Code, Codex, Cursor, OpenCode, Amp, Devin, Qwen Code, Droid, and GitHub Copilot.

Issue and ticket intake

Sends work from Linear, GitHub, Jira, GitLab, Asana, Featurebase, Monday.com, Forgejo, or Plain into an agent.

Review and merge flow

Lets you inspect diffs, check CI, create pull requests, and merge from the app.

Remote project support

Connects to remote machines with SSH/SFTP and stores credentials in the OS keychain.

Lifecycle hooks

Installs marker-tagged entries in provider configs so status, notifications, and resumable sessions work inside Emdash sessions.

Local-first storage

Stores app state in a local SQLite database and keeps code and chats off Emdash servers.

How to get it

  1. 1Telemetry is optional and can be disabled in Settings or by launching with
    TELEMETRY_ENABLED=false

README

Emdash

Emdash is a desktop app for running AI coding agents in parallel. Each task runs in its own Git worktree, so you can explore multiple fixes or features at once, review the diffs, and merge what works.

It works with local projects and remote machines over SSH. Bring the CLI agents you already use: Claude Code, Codex, OpenCode, Amp, and more.

Emdash product screenshot

What You Can Do

  • Run multiple coding agents at once without juggling terminals.
  • Keep every agent isolated in its own Git worktree and branch.
  • Send issues and tickets from Linear, GitHub, Jira, GitLab, Asana, Featurebase, Monday.com, Forgejo, or Plain into an agent.
  • Review diffs, create pull requests, inspect CI checks, and merge from one place.
  • Work locally or on your own remote machines over SSH/SFTP.

A Poem for Parallel Exploration

Multiple paths wind through the forest deep,
Each trail diverging where the wild things creep,
Isolated journeys through the woods they roam,
Discoveries blooming far away from home.

What thrives persists, what withers falls away,
Parallel futures guide us day by day,
Merge the best pathways where the sunlight flows,
A symphony of nature where the river goes.

Installation

PlatformInstall
macOSbrew install --cask emdash · Apple Silicon · Intel
WindowsInstaller · Portable
Linux x64AppImage · DEB · RPM
Linux ARM64AppImage · DEB · RPM

See the latest release for all desktop builds.

Agents

Emdash detects installed provider CLIs automatically. It supports agents like Claude Code, Codex, Cursor, OpenCode, Amp, Devin, Qwen Code, Droid, and GitHub Copilot.

For agents with lifecycle-hook support, Emdash installs marker-tagged entries in the agent's user-level config. These hooks let Emdash track status, notifications, and resumable sessions, and silently do nothing when the agent runs outside an Emdash session.

See Providers for the full list, setup commands, and provider-specific behavior.

Remote Projects

Connect to remote machines with SSH/SFTP and run the same parallel workflow on remote codebases. Emdash supports SSH agent, key, and password authentication, with credentials stored in your OS keychain.

See Remote Projects for setup details.

Privacy

Emdash is local-first. App state is stored in a local SQLite database, and Emdash does not send your code or chats to Emdash servers.

Agent CLIs may send code, prompts, and context to their own providers. Their data handling depends on the provider you choose.

Telemetry is optional and can be disabled in Settings or by launching with:

TELEMETRY_ENABLED=false

See Telemetry for details.

Contributing

Contributions are welcome. Read the Contributing Guide, open an issue, or join the Discord.

License

Licensed under the Apache-2.0 license.

Files in the repo

Repository payload28 top-level entries
  • .claude
  • .github
  • .scratch
  • agents
  • apps
  • docs
  • packages
  • tooling
  • .emdash.json
  • .gitignore
  • .node-version
  • .npmrc
  • .nvmrc
  • .oxfmtrc.json
  • .oxlintrc.json
  • .prettierignore
  • AGENTS.md
  • CLAUDE.md
  • CONTEXT.md
  • CONTRIBUTING.md
  • LICENSE.md
  • mise.toml
  • nx.json
  • package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • README.md
  • tsconfig.base.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k