Graph-based coding intelligence system - The 'Senior Engineer' Context Engine
Project description
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 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file emdash_ai-0.1.176.tar.gz.
File metadata
- Download URL: emdash_ai-0.1.176.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b6b7c5375f3c0e3adf1025176d4e3a90e5ef5babb158e8dc3aa7c42334e5731
|
|
| MD5 |
36bb9bc08be8e255ad6b15815385383a
|
|
| BLAKE2b-256 |
15c96340484062ed80f665246e71aaa722042e886ff091fe5ab1d138fab97693
|
File details
Details for the file emdash_ai-0.1.176-py3-none-any.whl.
File metadata
- Download URL: emdash_ai-0.1.176-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
071d4cc627e9d89aa199811557098aa89777c10ed315af86b994965ae5c4e698
|
|
| MD5 |
0d1a54e8297864ded1d8aaeda3e3426f
|
|
| BLAKE2b-256 |
d39bd55eba33af244153b1d5fd961b620a3dc3c17487ce8b6ae77df84e7f59a4
|