~12 MB static binary · Zero frameworks.
Think, therefore act.
go install github.com/BackendStack21/odek/cmd/odek@latest
Get Started →
The biggest release since Extended Memory: the agent now anticipates, and cleans up after itself. Full notes in the v1.15.0 release.
The agent ends answers with follow-up suggestions it already predicted, tracks your open loops (unanswered questions, stated goals), and can send opt-in proactive nudges — with hard anti-annoyance caps so it never becomes noise. Scheduled jobs are memory-wired, so a cron task can analyze your memory and sessions. docs ↗
A janitor goroutine keeps long-lived agents (Telegram bot, serve) clean forever: session/audit/log/plan/media retention driven by an operator-only maintenance config. odek cleanup --dry-run previews exactly what would be deleted before anything is touched. docs ↗
Semantic dedup of stored atoms, relevance-preserving recall ranking, atom consolidation, index staleness detection, and odek memory extended stats for operators. Guard-rejected memories go to quarantine for human review instead of vanishing.
The prompt-injection sidecar got its score semantics fixed (confident-benign memories no longer rejected), a JSON-faithful HTTP gateway, NDJSON socket transport, and Apple-Silicon-safe builds. Skill auto-learn is hardened against project-repo injection.
Docker images ship the multilingual ggml-small whisper model — usable German, English, and Spanish voice transcription out of the box (was effectively English-only).
DeepSeek's native cache fields are parsed, and providers that report nothing show cache: n/a instead of misleading zeros.
go test. odek installs in 5 seconds with a single go install command — no Docker, no venv, no npm, no sagas.
Real terminal output from real runs. Click through the examples.
odek run --sandbox — every session spawns an isolated Docker container. No network, no host mounts beyond the working directory, zero capabilities, destroyed on exit.
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.
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.
Semantic, atomic memory: facts, preferences, goals extracted per turn, deduplicated by meaning, ranked by relevance and recency. Quarantine for untrusted content, associations between atoms, and a stats surface for operators. Legacy three-tier facts/buffer/episodes included too.
The agent anticipates: follow-up suggestions after answers, open-loop tracking of your questions and goals, and opt-in proactive nudges with anti-annoyance caps. Scheduled jobs are memory-wired, so cron tasks can analyze memory and sessions.
Long-lived agents stay clean forever: a janitor handles session, audit-log, log, plan, and media retention on an operator-only config. odek cleanup --dry-run shows exactly what would be removed, first.
Optional ML prompt-injection guard (ONNX, local) as a semantic second opinion on top of the rule-based scan — guarding memory writes, skill bodies, system prompts, and MCP descriptions. Docker Compose sidecar included.
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.
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 — 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.
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.
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.
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.
Four modes: engaging (emoji-rich LLM narration), enhance (narration persists after response), verbose (raw tool traces), and off (clean, machine-friendly). Per-tool trace messages with LLM reasoning content. Works across CLI, Telegram, and Web UI.
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.
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 | Python agents | |
|---|---|---|
| Direct dependencies | Minimal — stdlib + a handful of focused pkgs | 200+ packages |
| Binary size | Small static binary | 50–200 MB (venv) |
| Startup | Instant | 2–10 seconds |
| Sandbox | --sandbox flag | Manual Docker setup |
| Tool interface | One interface, one method | Class hierarchies + decorators |
| Parallel tools | Built-in bounded concurrency | Sequential only |
| Telegram bot | Full bot with keyboard, files, --deliver | Third-party adapters |
| MCP | Bidirectional (server + client) | Client-only or adapter needed |
| Language | Go — native binary | Python — interpreter required |
brew install go or download.
go install github.com/BackendStack21/odek/cmd/odek@latest
export ODEK_API_KEY=sk-... (or DEEPSEEK_API_KEY / OPENAI_API_KEY)
odek run "How many lines in go.mod?"
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
# 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"
Deep-dive docs for every subsystem. Real detail, no fluff.
One binary. One loop. Zero frameworks.
Go install and go.
go install github.com/BackendStack21/odek/cmd/odek@latest
GitHub →