package

github.com/enkaidu-dev/enkaidu

0.9.10 / published Jul 10, 2026 / repository

Command line tool that can use local and remote AI models to assist with local editing and refinement tasks.

Enkaidu

Enkaidu

Enkaidu is your second-in-command(-line) for coding and creativity. Inspired by Enkidu, the loyal and dynamic companion from Mesopotamian mythology, Enkaidu embodies collaboration, adaptability, and a touch of chaos to spark innovation.

Out of the box, with the use of your preferred AI large language models, Enkaidu is designed to assist you with writing & maintaining code (and other text-based content).

Additionally, by integrating with MCP servers of your choice, Enkaidu can help you do even more.

Getting started

Please go to https://enkaidu.dev.

The documentation there is the best source of how to get started as well as what Enkaidu does and how it works.

Run as a container

If you have docker or podman on your system where you want to run Enkaidu, check out:

Install

Using Homebrew

On macOS and Linux, using brew:

brew tap enkaidu-dev/tap
brew install enkaidu

Other ways and means

COMING SOON

From source

See DEVELOPMENT for how to build and run enkaidu.

Following sections assume you have installed Enkaidu and that it is available to run from anywhere using the enkaidu command.

Contributions, by invitation!

With apologies, at this time contributions are by invitation only and limited to people I know and see often.

These are early days for Enkaidu and I am busy with family and work.

At this time I want to work on this at a manageable pace.

API

  • ACPA

    The ACPA module provides a supporting implementation based on ACP, or Agent Connection Protocol, which defines a (hopeful) standard interface for an editor or IDE to communicate with AI agents.

  • CommandParser

    The command parser is used to parse a command with parameters as follows: - All arguments are separated by spaces - Command can start with non-named arguments (positional) separated by spaces - First named argument means no more positional args - Names args are always K=V without spaces - Arguments can be quoted within '' or "" - Arguments can be arrays of values, within square brackets and separated by spaces.

  • Enkaidu
  • HtmlToMarkdown
  • JsonRpc
  • KeyValueStore
  • KeyValueStores
  • LLM
  • MCP

    The MCP module defined the MCP protocol data types

  • MCPC

    MCPC provides an MCP client API for tool-calling

  • SensitiveData(T)

    SensitiveData is a generic class to handle and encapsulate sensitive data securely.

  • TS

    All data structures in this module provide thread-safety and concurrency safety.

  • Tools

    Local tools live under the Tools module in sub-modules which can register as tool-sets

  • WebServer