Zed Editor Integration
View SourceRagex provides first-class integration with the Zed editor through three mechanisms:
- MCP Context Server -- Ragex's ~50 tools are available in Zed's Agent Panel
- Task Runner -- All Ragex mix tasks are accessible via
task: spawn - Keybindings -- Common operations bound to keyboard shortcuts
Quick Start
Prerequisites
- Zed editor installed (
https://zed.dev/) - Elixir 1.19+ and Erlang/OTP 27+
- Ragex project compiled (
mix deps.get && mix compile) - Elixir extension installed in Zed (search "Elixir" in Extensions)
1. Open the Project
zed /path/to/ragex
Zed will automatically pick up the .zed/settings.json, .zed/tasks.json, and .zed/keymap.json from the project root.
2. Verify MCP Server
Open the Agent Panel (default: Ctrl+Shift+? or from Command Palette: agent: open agent panel).
Click the settings gear icon (top-right) and check that ragex shows a green status dot. If it shows red, check the troubleshooting section below.
3. Start Using
- Agent Panel: Ask the AI questions about your codebase -- it will use Ragex tools automatically
- Task Runner: Press
Ctrl+Shift+P, typetask: spawn, and pick any task - Keybindings: Use the shortcuts listed below for quick access
MCP Integration
How It Works
Zed launches bin/ragex-mcp as a child process and communicates with it over stdin/stdout using the MCP protocol (JSON-RPC 2.0). Ragex exposes:
- ~50 Tools: Code analysis, semantic search, RAG queries, refactoring, security scanning, etc.
- 6 Prompts: Pre-built workflows for architecture analysis, impact analysis, code flow explanation, etc.
- 6 Resources: Read-only access to graph stats, cache status, model config, project index, etc.
Agent Profile: "Ragex RAG"
A dedicated agent profile is configured in .zed/settings.json that enables only Ragex-relevant tools. To use it:
- Open the Agent Panel
- Click the profile selector (top area)
- Choose "Ragex RAG"
This disables network-fetching tools and enables all Ragex MCP tools for focused codebase analysis.
Example Prompts
In the Agent Panel, try:
- "Using ragex, analyze the architecture of the lib/ directory"
- "Find all dead code in this project using ragex"
- "What functions call
Ragex.Graph.Store.add_node?" - "Search for code similar to 'validate user authentication'"
- "Run a security scan on lib/ragex/mcp/"
- "Show me the coupling report for this project"
System-Wide Availability
The global Zed config (~/.config/zed/settings.json) includes Ragex as a system-wide MCP server pointing to the absolute path of bin/ragex-mcp. This means Ragex tools are available in the Agent Panel even when working on other projects. Pass --project /path/to/code to auto-analyze a specific codebase:
"context_servers": {
"ragex": {
"command": {
"path": "/home/am/Proyectos/Oeditus/ragex/bin/ragex-mcp",
"args": ["--project", "/path/to/other/project"],
"env": {}
}
}
}Task Runner
Available Tasks
All tasks are defined in .zed/tasks.json. Access them via Ctrl+Shift+P > task: spawn.
Testing
| Task | Description |
|---|---|
mix test | Run all tests |
mix test (current file) | Test current file |
mix test (current line) | Test at current cursor line |
mix test --cover | Tests with coverage |
mix test --failed | Re-run failed tests |
Code Quality
| Task | Description |
|---|---|
mix format | Format all code |
mix format (check) | Check formatting without changes |
mix credo --strict | Static analysis |
mix quality (format + credo) | Combined quality check |
mix dialyzer | Type checking |
Ragex Analysis
| Task | Description |
|---|---|
ragex: analyze current file | Analyze the open file |
ragex: analyze project | Analyze entire project |
ragex: audit | AI-powered code audit |
ragex: audit (current file) | Audit the open file |
Ragex Cache
| Task | Description |
|---|---|
ragex: cache stats | Show cache statistics |
ragex: cache refresh | Incremental refresh |
ragex: cache refresh (full) | Full re-index |
ragex: cache clear | Clear all caches |
Ragex ML Models
| Task | Description |
|---|---|
ragex: download models | Pre-download Bumblebee models |
ragex: migrate embeddings | Migrate after model change |
Ragex Interactive
| Task | Description |
|---|---|
ragex: chat | Interactive codebase Q&A |
ragex: refactor | Interactive refactoring wizard |
ragex: configure | Configuration wizard |
ragex: dashboard | Live monitoring TUI |
Build
| Task | Description |
|---|---|
mix deps.get | Fetch dependencies |
mix compile | Compile project |
mix clean | Clean build artifacts |
mix docs | Generate documentation |
Keybindings
Defined in .zed/keymap.json. These are project-scoped.
Editor Context (requires open file)
| Shortcut | Action |
|---|---|
Ctrl+Shift+T | Test current file |
Ctrl+Shift+L | Test at current line |
Ctrl+Shift+Q | Run quality checks |
Ctrl+Shift+F | Format code |
Ctrl+Shift+A | Analyze current file with Ragex |
Ctrl+Shift+R | Open refactoring wizard |
Ctrl+Shift+D | Open Ragex dashboard |
Workspace Context (global)
| Shortcut | Action |
|---|---|
Ctrl+Alt+T | Run all tests |
Ctrl+Alt+A | Analyze entire project |
Ctrl+Alt+C | Open Ragex chat |
Ctrl+Alt+S | Show cache stats |
Configuration Files
| File | Purpose |
|---|---|
.zed/settings.json | MCP server, language config, agent profile |
.zed/tasks.json | All task definitions |
.zed/keymap.json | Keyboard shortcuts |
bin/ragex-mcp | MCP server launcher script |
~/.config/zed/settings.json | Global Zed config (system-wide Ragex) |
Launcher Script
bin/ragex-mcp is the entry point for the MCP server:
# Basic startup (inside project)
bin/ragex-mcp
# Auto-analyze a specific project
bin/ragex-mcp --project /path/to/code
# Override log level
bin/ragex-mcp --log-level debug
# Environment variable alternatives
RAGEX_PROJECT=/path/to/code bin/ragex-mcp
RAGEX_LOG_LEVEL=debug bin/ragex-mcp
The script:
- Sets
MIX_ENV=prodfor performance - Enables stdio server (
RAGEX_STDIO=1) - Compiles silently (output to stderr)
- Runs
mix run --no-haltfor persistent server
Troubleshooting
MCP Server Shows Red Dot
- Check Zed logs:
Ctrl+Shift+P>zed: open logs - Look for lines mentioning "ragex"
- Common causes:
bin/ragex-mcpnot executable:chmod +x bin/ragex-mcp- Dependencies not compiled: run
mix deps.get && mix compilefirst - Wrong path in global config: verify the absolute path in
~/.config/zed/settings.json
MCP Server Starts But No Tools Visible
- Switch to the "Ragex RAG" agent profile
- Mention "ragex" by name in your prompt to help the model find the tools
- Verify the server is green in Agent Panel settings
Tasks Not Showing Up
- Make sure you opened the project root (where
.zed/lives) in Zed - Try
Ctrl+Shift+P>zed: open project tasksto check if Zed found the tasks file - Zed requires the project to be opened as a workspace (not individual files)
Keybindings Not Working
- Project keybindings only apply when the Ragex workspace is active
- Check for conflicts:
Ctrl+Shift+P>zed: open keymap - Some bindings require Editor context (an open file with focus)
Slow Startup
First launch compiles the project and downloads ML models (~400MB). Subsequent starts are fast. To pre-warm:
mix deps.get && mix compile && mix ragex.models.download
Log Location
Ragex logs to ragex.log in the project root (configured in config/config.exs). Tail it for debugging:
tail -f ragex.log