emigo  by MatthewZMD

Emacs-native AI assistant for agentic development

created 4 months ago
352 stars

Top 80.3% on sourcepulse

GitHubView on GitHub
Project Summary

Emigo is an Emacs-native AI assistant designed for agentic development, enabling intelligent interaction with codebases. Targeting Emacs users who want to leverage LLMs for complex coding tasks, it provides tool-use capabilities for code manipulation and execution directly within the editor.

How It Works

Emigo operates as an agent that utilizes LLM reasoning to select and execute tools for interacting with the Emacs environment and project files. It supports flexible LLM providers via LiteLLM, allowing users to choose their preferred models. The core loop involves the LLM analyzing prompts, selecting tools (like file reading/writing, command execution), executing them, and feeding results back for iterative task completion.

Quick Start & Requirements

  • Install with 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")))
    
  • Prerequisites: Emacs 28+, Python 3.x. Install Python dependencies with pip install -r requirements.txt.
  • Usage: Start with M-x emigo. Interact in the dedicated buffer.
  • Documentation: Emacs Application Framework, lsp-bridge

Highlighted Details

  • Agentic tool use for code refactoring, file manipulation, and command execution.
  • Native Emacs integration with familiar keybindings and workflows.
  • Flexible LLM support via LiteLLM.
  • Context management for files and chat history.

Maintenance & Community

  • Created by the developers of Emacs Application Framework and lsp-bridge.
  • Project is under active, rapid development; expect breaking changes.

Licensing & Compatibility

  • License: Not explicitly stated in the README.
  • Compatibility: Requires Emacs 28+ and Python 3.x.

Limitations & Caveats

Emigo is in an early stage of development, characterized by active experimentation and rapid prototyping, which means frequent breaking changes and unstable features are expected.

Health Check
Last commit

2 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
105 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.