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+
ripgreprecommended 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_API_KEY |
.env Priority
- Project
.env(current directory) - User
.env(~/.ieum/.env) - 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
- header
VS Code Extension
VS Code supports local, remote, and auto modes.
Key settings:
ieum.serverMode:local|remote|autoieum.remoteServerUrlieum.authTokenieum.serverPortieum.pythonPath
See the documentation for setup and troubleshooting (coming soon).
Production Checklist (WEB)
Before exposing the server:
- Set explicit
IEUM_CORS_ORIGINS(no*) - Enable
IEUM_TLS_REQUIRED=true - Set token TTL (
IEUM_AUTH_TOKEN_TTL_SECONDS) - Keep rate limit enabled
- Set
IEUM_SANDBOX_ROOT - Enable
IEUM_REQUIRE_USER_ID=truefor 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6e9b0fa72731eb229a090cc4b1b98fcad31fc8582b7da74c0470d45b2c57c27
|
|
| MD5 |
62f2dfa033e43907d4bdb5b98c2d157a
|
|
| BLAKE2b-256 |
b0462dfe8a69cc0d433a7d5b11e88b1e80aeecafadeb24be07db18a51213ea84
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6a595e34c1144ff8fb97625945781a6d6979d3d92ae58f34a84b897a430f2a6
|
|
| MD5 |
5f9b89a993e122af306749336d657096
|
|
| BLAKE2b-256 |
50cc4d9f2cddf3dc7ee1af5c31dc717ee792fbae96dd4f5237a2bd2c3b62af21
|