odek

~12 MB static binary · Zero frameworks.
Think, therefore act.

go install github.com/BackendStack21/odek/cmd/odek@latest Get Started →

The Five Whys

See it in action

Real terminal output from real runs. Click through the examples.

What you get

🔒

Sandboxed Execution

odek run --sandbox — every session spawns an isolated Docker container. No network, no host mounts beyond the working directory, zero capabilities, destroyed on exit.

🧩

Sub-Agent Delegation

Parallel OS-process sub-agents via delegate_tasks. True isolation — each sub-agent is a fresh process with its own config, tools, and timeout. Up to 3 concurrent workers.

🧠

Self-Learning Skills

Detects multi-step procedures, error recoveries, and corrections during your sessions. Saves them as reusable SKILL.md files. On by default — --no-learn to disable.

💾

Persistent Memory

Three tiers: facts (markdown on disk), session buffer, and searchable episodes. Merge-on-write via go-vector cosine similarity saves ~80% LLM calls. go-vector RP is ephemeral — rebuilt from text on every write, no embedding state to persist.

🔗

MCP Two-Way

Server: odek mcp exposes native tools to Claude Code, Cursor, any MCP client. Client: odek connects to external MCP servers and makes their tools available to the agent.

🌐

Web UI

odek serve — browser-based agent with @ resource completion, WebSocket streaming, token economics, inline loading, drag-and-drop file attachments, and a full IDE-style console. Built from Go's embed — zero npm.

🔍

Session Search

session_search — full-text and fuzzy search across your entire agent history. Use --deep for LLM-powered semantic search. Never lose a past finding, decision, or code review.

🎤

Audio Transcription

transcribe — local whisper-based audio transcription. Drop an OGG, MP3, or WAV file, get text back. Runs entirely offline, no cloud API. Private by design.

🛠️

Native Tools

read_file, write_file, search_files, patch, shell, browser — all compiled into a single static Go binary. Zero subprocess overhead, instant startup, thread-safe concurrent execution. Gated by a unified security layer.

Parallel Tool Execution

Tools run concurrently with bounded concurrency. read_file, search_files, and shell calls execute in parallel — cutting iteration time by 40–60%. Batch approval gate shows all risky operations at once.

💬

Interaction Modes

Three modes: engaging (emoji-rich LLM narration), enhance (narration persists after response), and verbose (raw tool traces). Per-tool trace messages with LLM reasoning content. Works across CLI, Telegram, and Web UI.

🤖

Telegram Bot

Full-featured Telegram bot with odek telegram. MarkdownV2 messages, inline keyboards, file attachments, send_message tool, and --deliver flag for cron integration. Interaction mode-aware with per-tool progress traces.

Scheduled Tasks

Native, in-process cron with odek schedule — no external cron daemon. Runs inside odek telegram or a standalone odek schedule daemon, so a scheduled task sees the same resolved config an interactive run does. Stdlib cron parser with Vixie day-of-month/day-of-week semantics, per-job timezones, missed-run catchup, and a singleton lock so jobs never double-fire.

odek vs the rest

odekPython agents
Direct dependenciesMinimal — stdlib + a handful of focused pkgs200+ packages
Binary sizeSmall static binary50–200 MB (venv)
StartupInstant2–10 seconds
Sandbox--sandbox flagManual Docker setup
Tool interfaceOne interface, one methodClass hierarchies + decorators
Parallel toolsBuilt-in bounded concurrencySequential only
Telegram botFull bot with keyboard, files, --deliverThird-party adapters
MCPBidirectional (server + client)Client-only or adapter needed
LanguageGo — native binaryPython — interpreter required

Install in 5 seconds

One-line binary install

No Go toolchain? Auto-detects your OS and architecture:

# Download to /usr/local/bin (may need sudo)
curl -sfLo /usr/local/bin/odek https://github.com/BackendStack21/odek/releases/latest/download/odek-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') && chmod +x /usr/local/bin/odek

# Or to current directory
curl -sfLO https://github.com/BackendStack21/odek/releases/latest/download/odek-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') && chmod +x odek-* && ./odek-* version

auto-detect OS/arch static binary no runtime deps works offline
# Results instantly
$ odek run "How many lines in go.mod?"
3 lines

# With session persistence
$ odek run --session "Refactor the auth module"
$ odek continue "Now add error handling"

# Different provider, same binary
$ odek run --model gpt-4o --base-url https://api.openai.com/v1 "Explain this"

# Attach files for context
$ odek run --ctx data.csv "analyze trends"
$ odek run "@README.md summarize this project"

Cheatsheet

Commands

  • odek run <task>Single-shot task
  • odek run --sandbox <task>Run in Docker sandbox
  • odek replInteractive multi-turn REPL
  • odek repl --id <uuid>Resume a saved session
  • odek serveStart Web UI (http://127.0.0.1:8080)
  • odek serve --sandboxWeb UI with Docker sandbox
  • odek subagent --goal <s>Run a focused sub-task
  • odek mcpStart MCP server (stdio)
  • odek mcp --sse-addr :8081Start MCP server (SSE)
  • odek telegramStart Telegram bot
  • odek run --deliver Run task, deliver to Telegram
  • odek init [--global]Create config file
  • odek versionShow version

Key Flags

  • --model <name>LLM model (deepseek-v4-flash, gpt-4o, etc.)
  • --base-url <url>API endpoint URL
  • --sandboxRun in Docker sandbox
  • --thinking <level>Reasoning depth (enabled/disabled/low/medium/high)
  • --learnEnable skill learning (on by default)
  • --no-learnDisable skill learning
  • --max-iter <n>Max think→act cycles (default 90)
  • --ctx <files> / -cAttach files as context blocks (comma-separated)
  • --system <prompt>Override system prompt
  • --no-colorDisable colored output
  • --deliverDeliver result to Telegram default chat
  • --interaction-mode engaging | verbose | enhance

Everything else is documented

Deep-dive docs for every subsystem. Real detail, no fluff.

Ship it

One binary. One loop. Zero frameworks.
Go install and go.

go install github.com/BackendStack21/odek/cmd/odek@latest GitHub →