emdash-ai
Graph-based coding intelligence system - The 'Senior Engineer' Context Engine
Quick Install (macOS)
brew install uv cmake
uv tool install emdash-ai
Quick Install (Linux)
# Install dependencies
sudo apt-get install cmake # Debian/Ubuntu
# or: sudo dnf install cmake # Fedora
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Add uv to PATH (add to ~/.bashrc or ~/.zshrc)
export PATH="$HOME/.cargo/bin:$PATH"
uv tool install emdash-ai
Note: After installation, you may need to reload your shell config:
source ~/.zshrc # or ~/.bashrc
Update
uv tool upgrade emdash-ai
Requirements
- Python 3.10+ (3.10-3.13 recommended)
- cmake (for building the graph database)
Usage
em # Start the AI coding agent
emdash index # Index your codebase
emdash agent # Start the AI agent (alternative)
Slash Commands
Once inside the agent REPL, use these slash commands:
Mode Switching
| Command | Description |
|---|---|
/plan |
Switch to plan mode (explore codebase, create plans) |
/code |
Switch to code mode (execute file changes) |
/mode |
Show current operating mode |
Generation & Research
| Command | Description |
|---|---|
/projectmd |
Generate PROJECT.md describing your codebase architecture |
/pr [url] |
Review a pull request (e.g., /pr 123 or /pr https://github.com/org/repo/pull/123) |
/research [goal] |
Deep research on a topic (e.g., /research How does auth work?) |
Status & Context
| Command | Description |
|---|---|
/status |
Show index and PROJECT.md status |
/context |
Show current context frame (tokens, reranked items) |
/compact |
Compact message history using LLM summarization |
/spec |
Show current specification from plan mode |
Todo Management
| Command | Description |
|---|---|
/todos |
Show current agent todo list |
/todo-add [title] |
Add a todo item for the agent |
Session Management
| Command | Description |
|---|---|
/session |
Interactive session menu |
/session save [name] |
Save current session |
/session load [name] |
Load a saved session |
/session list |
List all saved sessions |
/session delete [name] |
Delete a session |
/reset |
Reset session state |
Configuration
| Command | Description |
|---|---|
/agents |
Manage agents (create, show, edit, delete) |
/rules |
Manage rules that guide agent behavior |
/skills |
Manage reusable skills |
/hooks |
Manage event hooks (triggers on tool_start, session_end, etc.) |
/mcp |
Manage MCP servers |
/registry |
Browse and install community plugins, skills, rules, agents, and verifiers |
/setup |
Interactive setup wizard |
Verification
| Command | Description |
|---|---|
/verify |
Run verification checks on current work |
/verify-loop [task] |
Run task in loop until all verifications pass |
Authentication & Diagnostics
| Command | Description |
|---|---|
/auth |
GitHub authentication (login, logout, status) |
/doctor |
Check environment and diagnose issues |
Help & Exit
| Command | Description |
|---|---|
/help |
Show available commands |
/quit |
Exit the agent (also /exit, /q) |
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Space |
Auto-complete commands |
Alt+Enter |
Multi-line input |
Ctrl+V |
Paste image from clipboard |
@filename |
Reference a file in your prompt |
Features
- Graph-based code analysis
- Semantic code search
- AI-powered code exploration
- MCP server integration
- Session persistence
- Custom agents, rules, and skills
- Event hooks for automation
- Verification loops
- Plugin system for bundled workflows
Configuration
Configuration files are stored in .emdash/ in your project root:
.emdash/
├── agents/ # Custom agent definitions
├── rules/ # Coding rules and guidelines
├── skills/ # Reusable skills
├── plugins/ # Installed plugin manifests
├── sessions/ # Saved sessions
├── hooks.json # Event hooks configuration
├── plugins.json # Installed plugins tracking
└── verifiers.json # Verification configurations
Global config at ~/.config/emdash/:
~/.config/emdash/
├── mcp.json # MCP server configuration
└── config.json # Global settings
Troubleshooting
Build fails with "cmake: command not found"
If you see Failed to build kuzu with cmake errors:
# macOS
brew install cmake
# Linux (Debian/Ubuntu)
sudo apt-get install cmake
# Then retry
uv tool install emdash-ai
"permission denied: em"
If you get zsh: permission denied: em or similar:
# Check if uv tool installed it
uv tool list
# Reinstall
uv tool uninstall emdash-ai && uv tool install emdash-ai
Command not found
If em or emdash is not found, add ~/.local/bin to your PATH:
# For zsh (add to ~/.zshrc)
export PATH="$HOME/.local/bin:$PATH"
# For bash (add to ~/.bashrc or ~/.bash_profile)
export PATH="$HOME/.local/bin:$PATH"
# Then reload
source ~/.zshrc # or ~/.bashrc
Debug installation
# Check which em is being found
which em
type em
# Check permissions
ls -la ~/.local/bin/em
# Check installed version
uv tool list
Uninstall
uv tool uninstall emdash-ai
Running Terminal-Bench
Run the terminal-bench benchmark to evaluate agent performance.
Prerequisites
- Docker running (Colima or Rancher Desktop)
- Harbor installed:
pip install harbor
Setup
cd benchmarks
uv venv .venv
uv pip install -r requirements.txt
Run
./benchmarks/scripts/run.sh
With custom settings:
MODEL="qwen3-vl-235b" PARALLEL=2 ./benchmarks/scripts/run.sh
| Variable | Default | Description |
|---|---|---|
MODEL |
claude-haiku-4-5 | Model to benchmark |
PARALLEL |
4 | Concurrent tasks |
DATASET |
terminal-bench@2.0 | Dataset to run |
Metadata
Release files for emdash-ai 0.1.176
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| emdash_ai-0.1.176.tar.gz | 12.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| emdash_ai-0.1.176-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.7 kB
Release files / emdash_ai-0.1.176.tar.gz
| Download URL | emdash_ai-0.1.176.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b6b7c5375f3c0e3adf1025176d4e3a90e5ef5babb158e8dc3aa7c42334e5731
|
|
BLAKE2b-256 checksum How to use checksums |
15c96340484062ed80f665246e71aaa722042e886ff091fe5ab1d138fab97693
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / emdash_ai-0.1.176-py3-none-any.whl
| Download URL | emdash_ai-0.1.176-py3-none-any.whl |
|---|---|
| Size | 4.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
071d4cc627e9d89aa199811557098aa89777c10ed315af86b994965ae5c4e698
|
|
BLAKE2b-256 checksum How to use checksums |
d39bd55eba33af244153b1d5fd961b620a3dc3c17487ce8b6ae77df84e7f59a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|