mrkeyoor.com_
Thu 17 Sept 22:02 UTC
AI Toolsevaluationupdated 26 Aug 2026

emdash review

Emdash is a desktop workspace for running several coding agents against one project at the same time. It gives each task its own Git worktree, then puts prompts, terminals, diffs, pull requests, issue trackers, and local or SSH projects in one application.

+37stars / 7d
Verdict

Our Emdash checkout built in 170 seconds and Vitest reported 331 passing tests, yet the overall 500-second test task exited 1 with @emdash/core:test named as failed. The desktop idea is excellent for a developer who already trusts several agent CLIs and reviews every branch, but the current scaling and remote-work reports make it a cautious trial for large worktree collections or shared hosts. Start with a small local repository and watch Git process count before moving daily work into it.

We ran it

Lab card: what happened when we ran emdashScreenshot of emdash (emdash.ai)
Install✓ · 55s1 packages · 1694 MB
Build✓ · 170s
Tests✗ · 500s331 passed · 0 failed of 331 (vitest)
Repo4887 files~497,806 lines of source · 34.7 MB · 5 CI workflows

Answers from our run

Does emdash build from source?

Dependencies installed in 55 seconds (1 packages), and the build succeeded in 170 seconds. We cloned commit 24c30e6 into a clean Debian container with 3 CPUs and no project-specific setup.

Do emdash's tests pass?

Yes: 331 of 331 passed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use emdash?

Repositories with hundreds of worktrees until issue 2987 is resolved: its reporter measured about 250 concurrent Git queries and a load average above 200.

What are the alternatives to emdash?

GitButler, Aider, OpenHands. Our Emdash checkout built in 170 seconds and Vitest reported 331 passing tests, yet the overall 500-second test task exited 1 with @emdash/core:test named as failed.

Setup3/5Desktop binaries exist; source install used 1,694 MB
Docs4/5Clear workflow, provider, remote, privacy, and platform guidance
Community4/55,500 stars with active August 2026 issue discussion
Maturity3/5v1.1.40 is usable, but tests and scaling reports need attention

Discussed on

  1. hnShow HN: Emdash – Open-source agentic development environment206 points
  2. hnShow HN: OS layer for running multiple Codex agents in parallel7 points

Who it’s for

Developers who already use Claude Code, Codex, Aider, OpenCode, or another supported CLI agent.
Maintainers who can split work into independent branches and review several agent diffs.
Teams that want GitHub, Linear, Jira, Asana, or other tracked work turned into isolated coding tasks.
Desktop users who need the same agent workflow across local repositories and SSH hosts.

Who it’s NOT for

Repositories with hundreds of worktrees until issue 2987 is resolved: its reporter measured about 250 concurrent Git queries and a load average above 200.
Shared remote hosts where repeated file scans are unacceptable: issue 2853 reports about 6,000 forks per second with 17 remote workspaces open.
Windows users who require a clean worktree while running Claude Code: issue 3011 says injected hooks can create an untracked file named NUL.
Anyone expecting Emdash to include model access: provider CLIs keep their own accounts, credentials, billing, and data policies.
Teams needing the repository test command to exit cleanly: our run returned exit 1 even though Vitest reported 331 passed and 0 failed.

Setup reality

Our pnpm install succeeded in 55 seconds and the dependency tree occupied 1,694 MB, while the harness reported 1 package installed. The build completed in 170 seconds. Tests ended with exit 1 after 500 seconds even though Vitest counted 331 passed and 0 failed; Nx named @emdash/core:test as the failed task.

Using the desktop app is easier than building the monorepo, but Emdash still needs Git plus at least one separately installed and authenticated agent CLI. Remote projects add SSH or SFTP access, with credentials stored in the operating system keychain. Jira, GitHub, Linear, and other issue sources need their own connections.

Emdash ships for macOS, Windows, and Linux. Each parallel task creates a worktree and branch, so large task histories consume disk and Git bookkeeping. Provider CLIs may send code and prompts to their own services even though Emdash itself keeps project state in local SQLite. Optional telemetry can be disabled.

A 1,694 MB checkout manages agents through Git worktrees

Emdash is a desktop control room for coding agents you already use. Create a task and it creates a Git worktree plus branch, launches the selected agent there, and keeps its terminal and changes separate from other tasks. The same interface can show diffs, open pull requests, inspect CI, and merge the result. Issue trackers including GitHub, Linear, Jira, Asana, and GitLab can supply work, which reduces the copying needed to turn a ticket into an agent prompt.

The source tree is substantial. Our checkout contained 4,887 files and about 497,806 lines of source before installation, then pnpm occupied 1,694 MB. That weight makes sense for a cross-platform Electron application with a terminal, Git integration, provider adapters, file indexing, issue connections, and remote access. It also means Emdash is a product layer, not a thin launcher script. You are trusting its worktree management and process supervision alongside the agents themselves.

Worktrees make parallel attempts reviewable

Giving every task its own worktree is the right default for parallel code generation. Two agents can pursue different fixes without rewriting the same working directory, and a reviewer can compare branches before merging either one. Emdash does not replace the provider CLI; it detects tools such as Claude Code, Codex, OpenCode, Amp, Devin, and GitHub Copilot, then displays their sessions inside one task-oriented application.

Worktree count is also the sharpest reported scaling limit. Open issue 2987 describes Emdash v1.1.40 on a repository with 190 worktrees. The reporter observed roughly 250 concurrent git worktree list processes during refresh and a peak load average above 226 on an 18-core Mac. That is an extreme repository, yet it represents the behavior Emdash encourages over time. Archive and remove old worktrees, then monitor process bursts as the task list grows.

What happened when we ran it

Our sandbox installed the pnpm workspace in 55 seconds. The harness reported 1 package installed, while the resulting dependency tree took 1,694 MB on disk. Building commit 24c30e6 succeeded in 170 seconds inside an unprivileged Node 22 container with 3 CPUs, 8 GB of RAM, and no secrets. The monorepo contained 5 CI workflow files and no root Dockerfile or tests directory.

The test command ran for 500 seconds and returned exit code 1. Vitest itself reported 331 passed and 0 failed, and the visible integration-test lines were passing. Nx still said that the test target for 9 projects had failed and named @emdash/core:test as the failed task. The supplied log tail does not contain the earlier error that caused that task to fail, so 331 green assertions cannot turn the overall command into a pass or support a guess about the cause.

Remote development has specific open failures

SSH support is more than a checkbox here. Emdash can open a remote repository, create tasks, browse files over SFTP, and run agents on the remote machine while keeping credentials in the local OS keychain. That gives a laptop access to a larger build host without moving the whole repository. It also adds path translation, session lifetime, network permissions, authentication, and remote scanning to every task.

Several current reports land on those boundaries. Issue 2962 says native Codex chat in an SSH task passed a remote path as the local macOS working directory and failed before starting. Issue 2896 reports that a saved password worked in the connection test on Windows 11 but was unavailable when opening the repository. Issue 2853 measured about 6,000 process forks per second on an 8-core remote host with 17 workspaces, caused by repeated file scans and external stat calls.

Local privacy does not cover provider traffic

Emdash stores application state in a local SQLite database and says it does not send code or chats to Emdash servers. Telemetry is optional and can be disabled in settings or with an environment variable. That is a useful separation: a disabled Emdash telemetry switch controls Emdash data, while the chosen agent still follows its own provider's authentication, retention, and billing rules.

Version 1.1.40 also installs marker-tagged lifecycle hooks for agents that support them. An open Windows report says Claude Code hooks launched through Git Bash can interpret a >NUL redirect as a normal filename and leave that file untracked in the worktree. This is not a remote code claim, but it can pollute git status and enter a commit. Windows users should inspect generated agent settings and run a prompt in a disposable branch first.

August activity is faster than the release channel

GitHub recorded the last push on August 25, 2026, while the latest tagged release was v1.1.40 from July 17. The repository had 5,500 stars and 198 open issues and pull requests when fetched. Recent reports include performance traces, Windows shell details, and SSH path analysis rather than vague complaints, and maintainers continued to push code after the release. The tag date alone therefore does not indicate abandonment.

Emdash earns a place on a developer's shortlist because worktree isolation matches how parallel coding agents should be reviewed. Our 170-second build succeeded, but the final test status and open scaling reports rule out an unconditional recommendation. Try one provider, two tasks, and a local repository first. Verify cleanup, hook changes, CPU use, and diff review before connecting a crowded monorepo or a shared remote machine.

Alternatives

ProjectWhat it isPick it when
GitButler gh↗A desktop Git client built around parallel virtual branches and code review.pick this instead when branch management and manual code work matter more than coordinating several agent CLIs.
Aider gh↗A terminal pair programmer that edits a repository and works directly with Git.pick this instead when one focused agent in a terminal is enough and you do not need a desktop task board.
OpenHands gh↗A development-agent platform for delegated software tasks and sandboxed execution.pick this instead when you want an agent platform and runtime rather than a desktop shell around existing CLI agents.

Sources

  1. Emdash repository and README
  2. Emdash v1.1.40 release
  3. Large worktree process burst report
  4. Remote host scan load report
  5. Native Codex SSH path report
  6. Windows Claude Code hook report

More ai tools reviews

rowboat · skills · superpowers-zh · yolov5 · eve · MemOS · the whole board →