Emigo intends to be an intelligent, agentic Emacs-native AI assistant that understands and interacts with your codebase. Brought to you by the creators of Emacs Application Framework and lsp-bridge, built on the shoulders of giants like Cursor, Aider and Cline, Emigo is the spiritual successor to Aidermacs, reimagined from the ground up for Emacs.
The project is at its early-stage. Expect frequent breaking changes and unstable features. Please use only for testing, try it out and report issues - your feedback helps shape Emigo!
Prerequisites:
Install Python Dependencies:
pip install -r requirements.txt
Install with straight.el: Add to your Emacs config:
(use-package emigo
:straight (:host github :repo "MatthewZMD/emigo" :files (:defaults "*.py" "*.el"))
:config
(emigo-enable) ;; Starts the background process automatically
:custom
;; Encourage using OpenRouter with Deepseek
(emigo-model "openrouter/deepseek/deepseek-chat-v3-0324")
(emigo-base-url "https://openrouter.ai/api/v1")
(emigo-api-key (getenv "OPENROUTER_API_KEY")))
M-x emigo.C-c C-c or C-m to send it to Emigo.@ (e.g., Refactor @src/utils.py)C-c f to interactively add filesC-c lC-c jC-c HC-c h (shows in Org mode buffer)C-c C-c / C-m - Send current promptC-c r - Restart Emigo processC-c k - Cancel current interactionNote: Emigo manages sessions based on the directory where you invoke M-x emigo. If invoked within a Git repository, the repository root is typically used as the session path. Use C-u M-x emigo to force the session path to be the current default-directory.
The core of Emigo's power lies in its agentic tool use. Instead of just providing code suggestions, the LLM analyzes your request and decides which actions (tools) are necessary to accomplish the task.
read_file, write_to_file, replace_in_file, execute_command, list_files, list_repomap, or ask_followup_question.This iterative process allows Emigo to tackle more complex tasks that involve multiple steps and interactions with your project files and system. The LLM uses an XML format to specify the tool and its parameters.
Python
69.6%
Emacs Lisp
23.8%
Tree-sitter Query
6.6%
Emigo intends to be an intelligent, agentic Emacs-native AI assistant that understands and interacts with your codebase. Brought to you by the creators of Emacs Application Framework and lsp-bridge, built on the shoulders of giants like Cursor, Aider and Cline, Emigo is the spiritual successor to Aidermacs, reimagined from the ground up for Emacs.
The project is at its early-stage. Expect frequent breaking changes and unstable features. Please use only for testing, try it out and report issues - your feedback helps shape Emigo!
Prerequisites:
Install Python Dependencies:
pip install -r requirements.txt
Install with straight.el: Add to your Emacs config:
(use-package emigo
:straight (:host github :repo "MatthewZMD/emigo" :files (:defaults "*.py" "*.el"))
:config
(emigo-enable) ;; Starts the background process automatically
:custom
;; Encourage using OpenRouter with Deepseek
(emigo-model "openrouter/deepseek/deepseek-chat-v3-0324")
(emigo-base-url "https://openrouter.ai/api/v1")
(emigo-api-key (getenv "OPENROUTER_API_KEY")))
M-x emigo.C-c C-c or C-m to send it to Emigo.@ (e.g., Refactor @src/utils.py)C-c f to interactively add filesC-c lC-c jC-c HC-c h (shows in Org mode buffer)C-c C-c / C-m - Send current promptC-c r - Restart Emigo processC-c k - Cancel current interactionNote: Emigo manages sessions based on the directory where you invoke M-x emigo. If invoked within a Git repository, the repository root is typically used as the session path. Use C-u M-x emigo to force the session path to be the current default-directory.
The core of Emigo's power lies in its agentic tool use. Instead of just providing code suggestions, the LLM analyzes your request and decides which actions (tools) are necessary to accomplish the task.
read_file, write_to_file, replace_in_file, execute_command, list_files, list_repomap, or ask_followup_question.This iterative process allows Emigo to tackle more complex tasks that involve multiple steps and interactions with your project files and system. The LLM uses an XML format to specify the tool and its parameters.
Python
69.6%
Emacs Lisp
23.8%
Tree-sitter Query
6.6%