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 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:
- Enkaidu docs here, or
- Container image overview here on Docker Hub
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
MCPmodule defined the MCP protocol data types - MCPC
MCPC provides an MCP client API for tool-calling
- SensitiveData(T)
SensitiveDatais 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
Toolsmodule in sub-modules which can register as tool-sets - WebServer