Skip to content

glemsom/eitri

Repository files navigation

Eitri

Eitri

Self-hosted, single-binary AI coding agent for Linux.

Named after the Norse blacksmith who forged Mjölnir. Eitri is an AI agent that runs on your own machine — it reads, writes, and runs code in your workspace, guided by natural language conversations.

CI


Features

  • Single binary — no runtime dependencies, no Docker, no Kubernetes. Just eitri on your $PATH.
  • Agent loop with built-in toolsbash, glob, grep, read, write, edit, web_fetch, render_mermaid_diagram, and more.
  • Multi-provider LLM support — works with OpenCode Go, GitHub Copilot, and Custom OpenAI providers. Configurable per session.
  • Agent Skills — modular skill packs that extend the agent's capabilities per-project (like Agent Skills for GitHub Copilot).
  • Sub-agents — the agent can delegate sub-tasks to subordinate agents via delegate/collect tools for parallel exploration.
  • Chat UI — HTMX-based browser UI with SSE streaming, Mermaid diagram rendering, file diffs, and a live context panel.
  • Headless batch modeeitri -b "your prompt" runs the agent from the terminal without a browser, streaming output to stdout.
  • Self-hosted — your data stays on your machine. No third-party cloud.

Quick start

1. Install

Linux (amd64 or arm64):

curl -sSf https://raw.githubusercontent.com/glemsom/eitri/main/scripts/install.sh | bash

This downloads the latest release tarball, verifies its SHA256 checksum, and installs the eitri binary to ~/.local/bin.

Make sure ~/.local/bin is on your $PATH. The installer will remind you if it isn't.

Alternative — download manually:

Download the tarball for your platform from the releases page, then:

tar -xzf eitri-linux-amd64.tar.gz
sudo install -m 755 eitri /usr/local/bin/eitri

2. Configure

Create ~/.eitri/config.json with your LLM provider settings:

{
  "provider": "opencode_go",
  "model": "claude-sonnet-4-20250514",
  "api_key": "sk-..."
}

Supported providers:

  • opencode_go — OpenCode Go (Anthropic-compatible and OpenAI-compatible models)
  • github_copilot — GitHub Copilot (uses device-flow OAuth, no API key needed)
  • custom_openai — Custom OpenAI provider (generic OpenAI-compatible endpoint)

3. Run

cd /your/project
eitri

Open http://127.0.0.1:8080 in a browser on Linux and start a conversation.

Eitri works from the workspace you launch it in. It can read, write, and execute commands in that directory via the agent loop.

4. Headless mode (optional)

eitri -b "Refactor the database connection pool to use context cancellation"

This runs the agent once and streams text output to stdout — no browser needed.


Configuration

Eitri is configured via ~/.eitri/config.json. Key settings:

Setting Description Default
provider LLM provider: opencode_go, github_copilot, or custom_openai opencode_go
model Model name (provider-specific, discoverable via settings) claude-sonnet-4-20250514 (example)
api_key API key (not needed for GitHub Copilot) ""
command_timeout Max execution time per bash tool call (seconds) 120
max_history Max chat turns kept in context 100
disabled_skills List of skill names to disable []

Environment variables

Variable Purpose
EITRI_ADDR Listen address (default 127.0.0.1:8080)
EITRI_CONFIG Path to config file (default ~/.eitri/config.json)
EITRI_WORKSPACE Workspace directory (default current working directory)
EITRI_OPEN_BROWSER 1 to force open browser, 0 to disable, unset for auto-detect
EITRI_GITHUB_CLIENT_ID Override the built-in GitHub Copilot OAuth client ID

For developers

See CONTEXT.md for the architecture guide, domain glossary, and development & release flow. Key commands:

make build    # Compile the binary
make test     # Run all tests
make run      # Build and start the server

Security

  • Eitri executes shell commands on your host machine via the agent loop. Do not bind to a non-loopback address unless you understand the risk — the UI has no authentication.
  • Batch mode (-b) runs with confirmation requests automatically denied, which prevents the agent from performing risky operations.
  • By default, Eitri listens on 127.0.0.1:8080 (loopback only).

License

GNU General Public License v3.0

About

Eitri AI coding agent for Linux. Named after the Norse blacksmith who forged Mjölnir

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors