Emigo is an intelligent, agentic Emacs-native AI assistant that understands and interacts with your codebase. It's designed to run as a Python backend that communicates with Emacs via EPC (Emacs Process Communication).
Key Features:
- Agentic tool use - interacts with your environment based on LLM reasoning
- Native Emacs integration
- Flexible LLM support via LiteLLM (OpenRouter, Deepseek, etc.)
- Context-aware interactions with chat history and project context
This is NOT a web application - it's an Emacs plugin with a Python backend. The Python code (emigo.py) runs as an EPC server that Emacs connects to for AI-powered coding assistance.
- emigo.el - Emacs Lisp frontend
- emigo.py - Python EPC orchestrator (main backend)
- llm_worker.py - LLM interaction subprocess
- session.py - Session management
- tools.py - Tool implementations (read_file, write_file, execute_command, etc.)
- repomapper.py - Repository mapping for context
- Emacs starts the Python backend (
emigo.py) as a subprocess - Python starts an EPC server on a random port
- Emacs connects to the EPC server
- User interacts via Emacs buffers
- LLM worker handles AI interactions and tool execution
✅ Python 3.11 installed ✅ All Python dependencies installed (litellm, epc, networkx, etc.) ✅ Project is ready to use
This project is designed to be used from within Emacs:
- Install in Emacs using straight.el:
(use-package emigo
:straight (:host github :repo "MatthewZMD/emigo" :files (:defaults "*.py" "*.el"))
:config
(emigo-enable)
:custom
(emigo-model "openrouter/deepseek/deepseek-chat-v3-0324")
(emigo-base-url "https://openrouter.ai/api/v1")
(emigo-api-key (getenv "OPENROUTER_API_KEY")))- Basic Usage:
M-x emigo- Start Emigo in your project- Type prompts and press
C-c C-cto send - Use
@filenameto add files to context C-c f- Add files interactivelyC-c l- List files in contextC-c H- Clear chat history
Since this is an Emacs plugin and Replit doesn't have Emacs pre-installed, you can:
-
Validate Python Setup:
python3 --version # Check Python pip list | grep -E "(litellm|epc)" # Verify dependencies
-
Check Code Structure:
python3 -m py_compile emigo.py # Syntax check -
Install Emacs (optional): If you want to actually run Emigo in Replit, you would need to install Emacs first.
- Written in Python 3.x (tested with 3.11)
- Uses EPC for Emacs-Python communication
- LLM interactions via LiteLLM (supports multiple providers)
- Active development - expect breaking changes
- 2025-10-13: Imported to Replit, installed Python 3.11 and all dependencies