emdash
무엇인가
Emdash는 AI 코딩 에이전트 CLI를 여러 개 동시에 굴리기 위한 데스크톱 애플리케이션이다. 터미널 에뮬레이터나 IDE 플러그인 대신 에이전트의 실행·격리·검토를 한 창에 묶는 오케스트레이션 계층에 해당한다. 로컬 프로젝트와 SSH로 접속한 원격 머신을 같은 흐름으로 다룬다.
어떻게 동작하나
작업을 시작하면 해당 저장소에 Git worktree와 브랜치를 새로 만들고 그 안에서 에이전트 CLI를 실행한다. worktree마다 작업 디렉터리가 분리되므로 동시 실행 중에도 파일이 서로 충돌하지 않는다. 설치된 provider CLI는 자동으로 감지된다. 라이프사이클 훅을 지원하는 에이전트에는 사용자 수준 설정 파일에 marker 태그가 붙은 훅 항목을 심어 상태·알림·세션 재개를 추적하며, 이 훅은 Emdash 세션 밖에서 실행될 때 아무 동작도 하지 않는다. 앱 상태는 로컬 SQLite 데이터베이스에 저장된다.
무엇과 다른가
여러 터미널 탭을 열어 에이전트를 돌리는 방식과 달리 작업 단위가 Git worktree로 분리되어 있어 어느 변경이 어느 브랜치에 속하는지 섞이지 않는다. diff 검토, 풀 리퀘스트 생성, CI 검사 확인, 머지가 같은 화면에서 이어진다. Linear, GitHub, Jira, GitLab, Asana, Featurebase, Monday.com, Forgejo, Plain의 이슈와 티켓을 에이전트 입력으로 직접 넘긴다.
어떻게 쓰나
설치 파일은 릴리스 페이지에서 데스크톱 빌드로 받는다. 실행하면 이미 설치된 provider CLI를 자동으로 찾아 쓰므로 Claude Code, Codex, Cursor, OpenCode, Amp, Devin, Qwen Code, Droid, GitHub Copilot 같은 도구를 그대로 연결한다. 원격 프로젝트는 SSH/SFTP로 접속하고 SSH agent, 키, 비밀번호 인증을 쓰며 자격 증명은 OS 키체인에 보관한다.
전제와 한계
에이전트 CLI 자체는 포함되지 않으므로 각 provider를 별도로 설치해야 한다. 원격 작업에는 SSH/SFTP 접속 정보가 필요하다. Emdash는 로컬 우선으로 동작하고 코드와 채팅을 Emdash 서버로 보내지 않지만, 에이전트 CLI는 선택한 provider에 코드·프롬프트·컨텍스트를 전송할 수 있고 그 처리 방식은 provider에 달려 있다. 텔레메트리는 선택 사항이며 설정에서 끄거나 실행 시 플래그로 비활성화한다. 라이선스는 Apache-2.0이다.
관련 논문 1
유사 도구
- supersetCLI 코딩 에이전트를 작업별 git worktree에 격리해 병렬 실행하고, 터미널·diff 뷰어·원격 접속으로 관리하는 데스크톱 IDE다.
- orca여러 코딩 에이전트를 각자의 git worktree에서 병렬로 실행하고 한 화면에서 추적·비교·병합하는 데스크톱·모바일 ADE다.
- agent-of-empires여러 AI 코딩 에이전트를 tmux 세션에 격리해 병렬 실행하고 TUI·웹·CLI에서 관리하는 Rust 세션 매니저다.
- OpenHands여러 코딩 에이전트를 로컬·원격·클라우드 백엔드에 연결해 한 화면에서 실행하고 자동화하는 셀프호스팅 제어 센터다.
- context-modeMCP 서버로 AI 코딩 에이전트의 도구 출력을 샌드박스에 격리해 컨텍스트 사용량을 98% 줄이고, 세션 기억을 SQLite에 남긴다.
- claude-code터미널에 상주하며 자연어 명령으로 코드베이스를 읽고 파일 편집·명령 실행·git 워크플로를 처리하는 에이전트형 코딩 CLI다.