{"id":32851434,"url":"https://github.com/generalaction/emdash","last_synced_at":"2026-04-01T19:31:40.330Z","repository":{"id":315649451,"uuid":"1046096502","full_name":"generalaction/emdash","owner":"generalaction","description":"Emdash is the Open-Source Agentic Development Environment (🧡 YC W26). Run multiple coding agents in parallel. Use any provider.","archived":false,"fork":false,"pushed_at":"2026-03-24T02:11:55.000Z","size":127776,"stargazers_count":2855,"open_issues_count":169,"forks_count":255,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-03-24T15:41:01.567Z","etag":null,"topics":["ai","claude-code","cli","coding-agents","codingagents","containerization","docker","gitworktrees","jira","linear","llm","openai","opensource","orchestration","parallel-agents","parallelexecution","terminal"],"latest_commit_sha":null,"homepage":"https://emdash.sh","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/generalaction.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-08-28T07:19:57.000Z","updated_at":"2026-03-24T15:38:39.000Z","dependencies_parsed_at":"2026-02-13T05:29:53.549Z","dependency_job_id":null,"html_url":"https://github.com/generalaction/emdash","commit_stats":null,"previous_names":["generalaction/emdash"],"tags_count":123,"template":false,"template_full_name":null,"purl":"pkg:github/generalaction/emdash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/generalaction%2Femdash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/generalaction%2Femdash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/generalaction%2Femdash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/generalaction%2Femdash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/generalaction","download_url":"https://codeload.github.com/generalaction/emdash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/generalaction%2Femdash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291146,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude-code","cli","coding-agents","codingagents","containerization","docker","gitworktrees","jira","linear","llm","openai","opensource","orchestration","parallel-agents","parallelexecution","terminal"],"created_at":"2025-11-08T12:01:07.872Z","updated_at":"2026-04-01T19:31:40.322Z","avatar_url":"https://github.com/generalaction.png","language":"TypeScript","readme":"\u003cimg alt=\"Emdash banner\" src=\"https://github.com/user-attachments/assets/a2ecaf3c-9d84-40ca-9a8e-d4f612cc1c6f\" /\u003e\n\n\n\u003cdiv align=\"center\" style=\"margin:24px 0;\"\u003e\n  \n\u003cbr /\u003e\n\n[![MIT License](https://img.shields.io/badge/License-MIT-555555.svg?labelColor=333333\u0026color=666666)](./LICENSE.md)\n[![Downloads](https://img.shields.io/github/downloads/generalaction/emdash/total?labelColor=333333\u0026color=666666)](https://github.com/generalaction/emdash/releases)\n[![GitHub Stars](https://img.shields.io/github/stars/generalaction/emdash?labelColor=333333\u0026color=666666)](https://github.com/generalaction/emdash)\n[![Last Commit](https://img.shields.io/github/last-commit/generalaction/emdash?labelColor=333333\u0026color=666666)](https://github.com/generalaction/emdash/commits/main)\n[![Commit Activity](https://img.shields.io/github/commit-activity/m/generalaction/emdash?labelColor=333333\u0026color=666666)](https://github.com/generalaction/emdash/graphs/commit-activity)\n\u003cbr\u003e\n[![Discord](https://img.shields.io/badge/Discord-join-%235462eb?labelColor=%235462eb\u0026logo=discord\u0026logoColor=%23f5f5f5)](https://discord.gg/f2fv7YxuR2)\n\u003ca href=\"https://www.ycombinator.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/Y%20Combinator-W26-orange\" alt=\"Y Combinator W26\"\u003e\u003c/a\u003e\n[![Follow @emdashsh on X](https://img.shields.io/twitter/follow/emdashsh?logo=X\u0026color=%23f5f5f5)](https://twitter.com/intent/follow?screen_name=emdashsh)\n\n\u003cbr /\u003e\n\n  \u003ca href=\"https://github.com/generalaction/emdash/releases\" style=\"display:inline-block; margin-right:8px; text-decoration:none; outline:none; border:none;\"\u003e\n    \u003cimg src=\"./docs/public/media/downloadforwindows.png\" alt=\"Download for Windows\" height=\"40\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/generalaction/emdash/releases\" style=\"display:inline-block; margin-right:8px; text-decoration:none; outline:none; border:none;\"\u003e\n    \u003cimg src=\"./docs/public/media/downloadformacos.png\" alt=\"Download for macOS\" height=\"40\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/generalaction/emdash/releases\" style=\"display:inline-block; text-decoration:none; outline:none; border:none;\"\u003e\n    \u003cimg src=\"./docs/public/media/downloadforlinux.png\" alt=\"Download for Linux\" height=\"40\"\u003e\n  \u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\nEmdash is a provider-agnostic desktop app that lets you run multiple coding agents in parallel, each isolated in its own git worktree, either locally or over SSH on a remote machine. We call it an Agentic Development Environment (ADE).\n\nEmdash supports 23 CLI agents, including Claude Code, Qwen Code, Hermes Agent, Amp, and Codex. Users can directly pass Linear, GitHub, or Jira tickets to an agent, review diffs, test changes, create PRs, see CI/CD checks, and merge. \n\n**Develop on remote servers via SSH**\n\nConnect to remote machines via SSH/SFTP to work with remote codebases. Emdash supports SSH agent and key authentication, with secure credential storage in your OS keychain. Run agents on remote projects using the same parallel workflow as local development. [Learn more](https://www.emdash.sh/cloud)\n\n\u003cdiv align=\"center\" style=\"margin:24px 0;\"\u003e\n\n[Installation](#installation) • [Providers](#providers) • [Contributing](#contributing) • [FAQ](#faq)\n\n\u003c/div\u003e\n\n\u003cimg alt=\"Emdash product\" src=\"./docs/public/media/product.jpeg\" /\u003e\n\n# Installation\n\n### macOS\n- Apple Silicon: https://github.com/generalaction/emdash/releases/latest/download/emdash-arm64.dmg\n- Intel x64: https://github.com/generalaction/emdash/releases/latest/download/emdash-x64.dmg\n\n[![Homebrew](https://img.shields.io/badge/-Homebrew-000000?style=for-the-badge\u0026logo=homebrew\u0026logoColor=FBB040)](https://formulae.brew.sh/cask/emdash)\n\u003e macOS users can also: `brew install --cask emdash`\n\n### Windows\n- Installer (x64): https://github.com/generalaction/emdash/releases/latest/download/emdash-x64.msi\n- Portable (x64): https://github.com/generalaction/emdash/releases/latest/download/emdash-x64.exe\n\n### Linux\n- AppImage (x64): https://github.com/generalaction/emdash/releases/latest/download/emdash-x86_64.AppImage\n- Debian package (x64): https://github.com/generalaction/emdash/releases/latest/download/emdash-amd64.deb\n\n### Release Overview\n\n**[Latest Releases (macOS • Windows • Linux)](https://github.com/generalaction/emdash/releases/latest)**\n\n# Providers\n\n\u003cimg alt=\"Providers banner\" src=\"https://github.com/user-attachments/assets/c7b32a3e-452c-4209-91ef-71bcd895e2df\" /\u003e\n\n### Supported CLI Providers\n\nEmdash currently supports 23 CLI providers, and we are adding new ones regularly. If you miss one, let us know or create a PR.\n\n| CLI Provider | Status | Install |\n| ----------- | ------ | ----------- |\n| [Amp](https://ampcode.com/manual#install) | ✅ Supported | \u003ccode\u003enpm install -g @sourcegraph/amp@latest\u003c/code\u003e |\n| [Auggie](https://docs.augmentcode.com/cli/overview) | ✅ Supported | \u003ccode\u003enpm install -g @augmentcode/auggie\u003c/code\u003e |\n| [Autohand Code](https://autohand.ai/code/) | ✅ Supported | \u003ccode\u003enpm install -g autohand-cli\u003c/code\u003e |\n| [Charm](https://github.com/charmbracelet/crush) | ✅ Supported | \u003ccode\u003enpm install -g @charmland/crush\u003c/code\u003e |\n| [Claude Code](https://docs.anthropic.com/claude/docs/claude-code) | ✅ Supported | \u003ccode\u003ecurl -fsSL https://claude.ai/install.sh \u0026#124; bash\u003c/code\u003e |\n| [Cline](https://docs.cline.bot/cline-cli/overview) | ✅ Supported | \u003ccode\u003enpm install -g cline\u003c/code\u003e |\n| [Codebuff](https://www.codebuff.com/docs/help/quick-start) | ✅ Supported | \u003ccode\u003enpm install -g codebuff\u003c/code\u003e |\n| [Codex](https://github.com/openai/codex) | ✅ Supported | \u003ccode\u003enpm install -g @openai/codex\u003c/code\u003e |\n| [Continue](https://docs.continue.dev/guides/cli) | ✅ Supported | \u003ccode\u003enpm i -g @continuedev/cli\u003c/code\u003e |\n| [Cursor](https://cursor.com/cli) | ✅ Supported | \u003ccode\u003ecurl https://cursor.com/install -fsS \u0026#124; bash\u003c/code\u003e |\n| [Droid](https://docs.factory.ai/cli/getting-started/quickstart) | ✅ Supported | \u003ccode\u003ecurl -fsSL https://app.factory.ai/cli \u0026#124; sh\u003c/code\u003e |\n| [Gemini](https://github.com/google-gemini/gemini-cli) | ✅ Supported | \u003ccode\u003enpm install -g @google/gemini-cli\u003c/code\u003e |\n| [GitHub Copilot](https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli) | ✅ Supported | \u003ccode\u003enpm install -g @github/copilot\u003c/code\u003e |\n| [Goose](https://block.github.io/goose/docs/quickstart/) | ✅ Supported | \u003ccode\u003ecurl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh \u0026#124; bash\u003c/code\u003e |\n| [Hermes Agent](https://hermes-agent.nousresearch.com/docs/) | ✅ Supported | \u003ccode\u003ecurl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh \u0026#124; bash\u003c/code\u003e |\n| [Kilocode](https://kilo.ai/docs/cli) | ✅ Supported | \u003ccode\u003enpm install -g @kilocode/cli\u003c/code\u003e |\n| [Kimi](https://www.kimi.com/code/docs/en/kimi-cli/guides/getting-started.html) | ✅ Supported | \u003ccode\u003euv tool install kimi-cli\u003c/code\u003e |\n| [Kiro (AWS)](https://kiro.dev/docs/cli/) | ✅ Supported | \u003ccode\u003ecurl -fsSL https://cli.kiro.dev/install \u0026#124; bash\u003c/code\u003e |\n| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) | ✅ Supported | \u003ccode\u003ecurl -LsSf https://mistral.ai/vibe/install.sh \u0026#124; bash\u003c/code\u003e |\n| [OpenCode](https://opencode.ai/docs/cli/) | ✅ Supported | \u003ccode\u003enpm install -g opencode-ai\u003c/code\u003e |\n| [Pi](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent) | ✅ Supported | \u003ccode\u003enpm install -g @mariozechner/pi-coding-agent\u003c/code\u003e |\n| [Qwen Code](https://github.com/QwenLM/qwen-code) | ✅ Supported | \u003ccode\u003enpm install -g @qwen-code/qwen-code\u003c/code\u003e |\n| [Rovo Dev](https://support.atlassian.com/rovo/docs/install-and-run-rovo-dev-cli-on-your-device/) | ✅ Supported | \u003ccode\u003eacli rovodev auth login\u003c/code\u003e |\n\n### Issues\n\nEmdash allows you to pass tickets straight from Linear, GitHub, or Jira to your coding agent. \n\n| Tool | Status | Authentication |\n| ----------- | ------ | ----------- |\n| [Linear](https://linear.app) | ✅ Supported | Connect with a Linear API key. |\n| [Jira](https://www.atlassian.com/software/jira) | ✅ Supported | Provide your site URL, email, and Atlassian API token. |\n| [GitHub Issues](https://docs.github.com/en/issues) | ✅ Supported | Authenticate via GitHub CLI (`gh auth login`). |\n\n# Contributing\n\nContributions welcome! See the [Contributing Guide](CONTRIBUTING.md) to get started, and join our [Discord](https://discord.gg/f2fv7YxuR2) to discuss.\n\n# FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eWhat telemetry do you collect and can I disable it?\u003c/b\u003e\u003c/summary\u003e\n\n\u003e We send **anonymous, allow‑listed events** (app start/close, feature usage names, app/platform versions) to PostHog.  \n\u003e We **do not** send code, file paths, repo names, prompts, or PII.\n\u003e\n\u003e **Disable telemetry:**\n\u003e\n\u003e - In the app: **Settings → General → Privacy \u0026 Telemetry** (toggle off)\n\u003e - Or via env var before launch:\n\u003e\n\u003e ```bash\n\u003e TELEMETRY_ENABLED=false\n\u003e ```\n\u003e\n\u003e Full details: see `docs/telemetry.md`.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eWhere is my data stored?\u003c/b\u003e\u003c/summary\u003e\n\n\u003e **App data is local‑first**. We store app state in a local **SQLite** database:\n\u003e\n\u003e ```\n\u003e macOS:   ~/Library/Application Support/emdash/emdash.db\n\u003e Windows: %APPDATA%\\emdash\\emdash.db\n\u003e Linux:   ~/.config/emdash/emdash.db\n\u003e ```\n\u003e\n\u003e **Privacy Note:** While Emdash itself stores data locally, **when you use any coding agent (Claude Code, Codex, Qwen, etc.), your code and prompts are sent to that provider's cloud API servers** for processing. Each provider has their own data handling and retention policies.\n\u003e\n\u003e You can reset the local DB by deleting it (quit the app first). The file is recreated on next launch.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eDo I need GitHub CLI?\u003c/b\u003e\u003c/summary\u003e\n\n\u003e **Only if you want GitHub features** (open PRs from Emdash, fetch repo info, GitHub Issues integration).  \n\u003e Install \u0026 sign in:\n\u003e\n\u003e ```bash\n\u003e gh auth login\n\u003e ```\n\u003e\n\u003e If you don’t use GitHub features, you can skip installing `gh`.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eHow do I add a new provider?\u003c/b\u003e\u003c/summary\u003e\n\n\u003e Emdash is **provider‑agnostic** and built to add CLIs quickly.\n\u003e\n\u003e - Open a PR following the **Contributing Guide** (`CONTRIBUTING.md`).\n\u003e - Include: provider name, how it’s invoked (CLI command), auth notes, and minimal setup steps.\n\u003e - We’ll add it to the **Integrations** matrix and wire up provider selection in the UI.\n\u003e\n\u003e If you’re unsure where to start, open an issue with the CLI’s link and typical commands.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eI hit a native‑module crash (sqlite3 / node‑pty / keytar). What’s the fast fix?\u003c/b\u003e\u003c/summary\u003e\n\n\u003e This usually happens after switching Node/Electron versions.\n\u003e\n\u003e 1) Rebuild native modules:\n\u003e\n\u003e ```bash\n\u003e npm run rebuild\n\u003e ```\n\u003e\n\u003e 2) If that fails, clean and reinstall:\n\u003e\n\u003e ```bash\n\u003e npm run reset\n\u003e ```\n\u003e\n\u003e (Resets `node_modules`, reinstalls, and re‑builds Electron native deps.)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eWhat permissions does Emdash need?\u003c/b\u003e\u003c/summary\u003e\n\n\u003e - **Filesystem/Git:** to read/write your repo and create **Git worktrees** for isolation.  \n\u003e - **Network:** only for provider CLIs you choose to use (e.g., Codex, Claude) and optional GitHub actions.  \n\u003e - **Local DB:** to store your app state in SQLite on your machine.\n\u003e\n\u003e Emdash itself does **not** send your code or chats to any servers. Third‑party CLIs may transmit data per their policies.\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCan I work with remote projects over SSH?\u003c/b\u003e\u003c/summary\u003e\n\n\u003e **Yes!** Emdash supports remote development via SSH.\n\u003e\n\u003e **Setup:**\n\u003e 1. Go to **Settings → SSH Connections** and add your server details\n\u003e 2. Choose authentication: SSH agent (recommended), private key, or password\n\u003e 3. Add a remote project and specify the path on the server\n\u003e\n\u003e **Requirements:**\n\u003e - SSH access to the remote server\n\u003e - Git installed on the remote server\n\u003e - For agent auth: SSH agent running with your key loaded (`ssh-add -l`)\n\u003e\n\u003e See [docs/ssh-setup.md](./docs/ssh-setup.md) for detailed setup instructions and [docs/ssh-architecture.md](./docs/ssh-architecture.md) for technical details.\n\u003c/details\u003e\n\n[![Follow @emdashsh](https://img.shields.io/twitter/follow/emdashsh?style=social\u0026label=Follow%20%40emdashsh)](https://x.com/emdashsh)\n[![Follow @rabanspiegel](https://img.shields.io/twitter/follow/rabanspiegel?style=social\u0026label=Follow%20%40rabanspiegel)](https://x.com/rabanspiegel)\n[![Follow @arnestrickmann](https://img.shields.io/twitter/follow/arnestrickmann?style=social\u0026label=Follow%20%40arnestrickmann)](https://x.com/arnestrickmann)\n","funding_links":[],"categories":["TypeScript","CLIs","GUI \u0026 IDE","🚀 AI Tools for Vim, Neovim, and Terminal"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeneralaction%2Femdash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeneralaction%2Femdash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeneralaction%2Femdash/lists"}