Skip to main content

IEUM (이음) - Integrated Execution & Unified Mediation

Project description

IEUM

IEUM is an open-source coding agent you can use in three places:

  • terminal (TUI)
  • browser (WEB)
  • VS Code (Extension)

It shares one agent core across all three, so your workflow stays consistent.


At A Glance

Platform Recommended Use Runtime
TUI Local development on your machine Local
WEB Centralized team server Remote
VS Code Both local and remote workflows Local / Remote

What You Get

  • One agent core across TUI, WEB, and VS Code
  • Tool use with approval flow (HITL)
  • Session history and resume support
  • Multi-provider LLM support (OpenAI, Anthropic, Ollama, OpenRouter, and more)
  • Skill system (built-in + user/project skills)
  • MCP integration (including GitHub MCP)
  • English and Korean UI

Quick Start

1) Install

pip install ieum

Or with uv:

uv pip install ieum

2) Run TUI (local)

ieum

3) Run WEB

ieum --web --host 127.0.0.1 --port 8765

Open http://127.0.0.1:8765 and log in with the token printed in the server console.


Installation

Prerequisites

  • Python 3.11+
  • ripgrep recommended for fast code search

From Source

git clone https://github.com/DDOK-AI/ieum.git
cd ieum
pip install -e .

Install WEB dependencies:

pip install -e ".[server]"

Install test/dev dependencies:

uv sync --group test

Configuration

Core Environment Variables

Variable Default Purpose
IEUM_LANG en UI language (en / ko)
IEUM_AUTH_DISABLED false Disable auth (local dev only)
IEUM_AUTH_TOKEN_TTL_SECONDS 3600 Auth token TTL (min 60s)
IEUM_CORS_ORIGINS localhost-only list Allowed browser origins
IEUM_REMOTE_ONLY false Block loopback-only bind in remote deployments
IEUM_TLS_REQUIRED false Require HTTPS/WSS
IEUM_TRUST_PROXY_TLS false Trust X-Forwarded-Proto=https from proxy
IEUM_SSL_CERTFILE unset TLS cert path (direct TLS termination)
IEUM_SSL_KEYFILE unset TLS key path (direct TLS termination)
IEUM_RATE_LIMIT_ENABLED true Enable per-IP rate limiting
IEUM_RATE_LIMIT_MAX_REQUESTS 120 Max requests per window
IEUM_RATE_LIMIT_WINDOW_SECONDS 60 Rate limit window
IEUM_SANDBOX_ROOT unset Root for <user>/<workspace> sandboxing
IEUM_REQUIRE_USER_ID false Require user identity header/query
IEUM_SAFE_MODE false Extra command restrictions

LLM Variables (Common)

Provider Variables
OpenAI OPENAI_API_KEY, OPENAI_MODEL
Anthropic ANTHROPIC_API_KEY, ANTHROPIC_MODEL
Ollama OLLAMA_BASE_URL, OLLAMA_MODEL
OpenRouter OPENROUTER_API_KEY, OPENROUTER_MODEL
Google GOOGLE_API_KEY

.env Priority

  1. Project .env (current directory)
  2. User .env (~/.ieum/.env)
  3. System environment

Config Directory

~/.ieum/
  .env
  auth_token
  <agent>/
    AGENTS.md
    skills/

Usage

TUI (Local)

# interactive
ieum

# use a specific model
ieum --model anthropic/claude-sonnet-4-5-20250929

# resume latest thread
ieum -r

# auto-approve tool calls
ieum --auto-approve

Useful commands in chat:

  • /help
  • /env
  • /model <provider/model>
  • /skills
  • /threads
  • /tokens

WEB (Remote-first)

Local check:

ieum --web --host 127.0.0.1 --port 8765

Remote deployment baseline:

export IEUM_REMOTE_ONLY=true
export IEUM_TLS_REQUIRED=true
export IEUM_TRUST_PROXY_TLS=true
export IEUM_CORS_ORIGINS="https://ieum.example.com"
export IEUM_AUTH_TOKEN_TTL_SECONDS=3600
export IEUM_RATE_LIMIT_ENABLED=true
export IEUM_RATE_LIMIT_MAX_REQUESTS=120
export IEUM_RATE_LIMIT_WINDOW_SECONDS=60
export IEUM_SANDBOX_ROOT="/srv/ieum/sandboxes"
export IEUM_REQUIRE_USER_ID=true

ieum --web --host 0.0.0.0 --port 8765

Notes:

  • Wildcard CORS (*) is rejected.
  • In required-user mode, send one of:
    • header x-ieum-user-id
    • header x-ieum-user
    • query user_id

VS Code Extension

VS Code supports local, remote, and auto modes.

Key settings:

  • ieum.serverMode: local | remote | auto
  • ieum.remoteServerUrl
  • ieum.authToken
  • ieum.serverPort
  • ieum.pythonPath

See the documentation for setup and troubleshooting (coming soon).


Production Checklist (WEB)

Before exposing the server:

  1. Set explicit IEUM_CORS_ORIGINS (no *)
  2. Enable IEUM_TLS_REQUIRED=true
  3. Set token TTL (IEUM_AUTH_TOKEN_TTL_SECONDS)
  4. Keep rate limit enabled
  5. Set IEUM_SANDBOX_ROOT
  6. Enable IEUM_REQUIRE_USER_ID=true for multi-user use

Architecture

TUI (Textual)     WEB (FastAPI/WS)     VS Code (Extension/WebView)
         \             |                        /
          \            |                       /
                 LangGraph Agent Core
                       |
            Tools (file/shell/search/MCP/skills)

Main code locations:

Area Path
Agent core ieum/agent.py
TUI app ieum/app.py
WEB server ieum/server/
Sessions/persistence ieum/sessions.py
Skills ieum/skills/
VS Code extension vscode-ieum/

Development

# tests
python -m pytest -q

# extension build
cd vscode-ieum
npm run compile

Documentation

Documentation is being prepared. Stay tuned.


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ieum-0.0.3.tar.gz (9.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ieum-0.0.3-py3-none-any.whl (9.6 MB view details)

Uploaded Python 3

File details

Details for the file ieum-0.0.3.tar.gz.

File metadata

  • Download URL: ieum-0.0.3.tar.gz
  • Upload date:
  • Size: 9.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for ieum-0.0.3.tar.gz
Algorithm Hash digest
SHA256 e6e9b0fa72731eb229a090cc4b1b98fcad31fc8582b7da74c0470d45b2c57c27
MD5 62f2dfa033e43907d4bdb5b98c2d157a
BLAKE2b-256 b0462dfe8a69cc0d433a7d5b11e88b1e80aeecafadeb24be07db18a51213ea84

See more details on using hashes here.

File details

Details for the file ieum-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: ieum-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 9.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for ieum-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d6a595e34c1144ff8fb97625945781a6d6979d3d92ae58f34a84b897a430f2a6
MD5 5f9b89a993e122af306749336d657096
BLAKE2b-256 50cc4d9f2cddf3dc7ee1af5c31dc717ee792fbae96dd4f5237a2bd2c3b62af21

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page