Logo

Enkaidu

Get started Why Enkaidu?

Enkaidu is your transparent second-in-command(line) for coding and creativity. Using your preferred local AI large language models or trusted sovereign servers, Enkaidu is designed to assist you with writing & maintaining your code, documentation, or your next great novel.

Enkaidu 0.9.14 is available! This release grants network access inside the cordon per command (network_allowed_commands), adds host policies (allowed_hosts, denied_hosts, allow_private_hosts) to the Web tools, and gives the markdown fetch tool real HTML parsing with a truncated flag. See what’s new in 0.9.14 →

Here’s a quick demo that shows how Enkaidu reveals what’s happening under the hood as you work with the AI model.

Quick start in a container?
  • Configure

    This is for use with LM Studio. Find quick config for Ollama here, and Azure OpenAI here

    Create a file called enkaidu.yml in your working folder with the following content:

    session:
      model: qwen3                       # <---
    auto_load:
      toolsets:
        - DateAndTime
    llms:
      my_lmstudio:
        provider: openai
        env:
          OPENAI_ENDPOINT: 'http://<HOSTNAME>.local:1234'
          OPENAI_API_KEY: n/a
        models:
          - name: qwen3                 # <---
            model: qwen/qwen3-4b        # <---

    ⚠️ Replace <HOSTNAME> with your host name. Dont use localhost as that refers to the container itself.

  • Run Enkaidu

    The commands below use podman; however you can use docker as easily.

    From your terminal

    Enabling host networking so you can access your local models, run the following to get the terminal UX:

    podman run --rm -it --add-host=<HOSTNAME>.local:host-gateway \
      -v $(pwd):/workspace -w /workspace nogginly/enkaidu
    For the web UX

    Run the following for the built-in web UI experience:

    podman run --rm -it --add-host=<HOSTNAME>.local:host-gateway \
      -p 8765:8765/tcp -v $(pwd):/workspace -w /workspace \
      nogginly/enkaidu --webui

    Launch http://localhost:8765 from your browser.

  • Self-sovereign

    Enkaidu works with your locally-hosted AI models (or secure soverein servers of your choice), keeping all your inference under your control.

  • Enforced system configuration

    Enkaidu lets you define a central, locked-down system configuration that, if present, is enforced for all users.

  • Read-only mode

    Enkaidu can be put into read-only mode where only tools that cannot make local changes are available for use by the LLMs.

  • Cordon for shell commands

    Enkaidu supports running shell commands within a “cordon” using platform-specific sandboxing tools for macOS (sandbox-exec) and Linux (bubblewrap).

  • Network access controls

    Inside the cordon, network access is granted per shell command , and the Web tools take host policies deciding exactly which servers they can reach.

  • Macros

    Enkaidu lets you define named, parameterized macros in your config and invoke them right from the prompt. With arguments substituted on invocation and macros that can call other macros, your most-repeated workflows are one macro call away.

  • Conditional commands

    Enkaidu supports conditional continuation commands that can be used by macros to exit when certain conditions are met, including checking global state keys.

  • Global in-memory state

    Enkaidu supports an in-memory global name-spaced key/value state that can be accessed by the models via tool calling to set and get properties.

  • Customizable

    Enkaidu lets you define your own system prompts, parameterized custom prompts, and macros to suit your workflow.

  • Transparent

    Enkaidu doesn’t hide any of the interaction between you and your AI model, show when tools are used or MCP server calls are made, and more.

  • Terminal first, GUI included

    Enkaidu is first and foremost a terminal app, letting you work in your console. Enkaidu also supports a built-in Web UI for when you want a graphical content experience.

  • Tool-calling

    Enkaidu includes system tools and built-in tools that the AI models can call, and lets you choose when you make them available to the AI model.

  • MCP Client

    Enkaidu supports calling MCP servers (over HTTP) for tools and prompts, letting you connect to them when you need them.

  • Compatibility

    Enkaidu works with any AI inference server that supports the Open AI “chat completion” API. We’ve used it with local models via LM Studio, Llama CPP, Ollama, and cloud models via Azure Open AI.

Questions?
  • Why did you make it?

    AI “feels like” magic and I wanted to figure out how using LLMs to build applications work by using the various protocols from scratch.

  • Who is it for?

    Enkaidu is for anyone who is curious about using an AI assistant and engaging with the AI models in a deeper way than just typing prompts and “vibing.”

  • Where can I use it?

    Enkaidu is a command-line app that runs in the terminal, and can be run locally or remotely as long as you can connect to your AI model.

  • What does it cost?

    Enkaidu is free and open source under the Mozilla Public License Version 2.0. The code is currently in a private repo until I’m ready to start getting the inevitable “feedback.”

  • Can I use it with [NAME YOUR] SaaS AI provider?

    Enkaidu uses the Open AI chat completion protocol, so it can be used with Chat GPT. It “should” work with any SaaS AI providers who support the protocol, and it “should” work via any Open AI protocol proxies.