A lightweight AI agent that flies on any model — Claude, GPT, Gemini, DeepSeek, Kimi, Qwen — with no API key. Fork it, bend it, run it offline. No build step. No gatekeeping. Just talons.
27 built-in tools. 14 features. No build step. No gatekeeping.
Anthropic · OpenAI · Gemini · DeepSeek · Kimi · Qwen · Zhipu · MiniMax · Ollama · LM Studio · custom. /model to switch mid-session.
Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, NotebookEdit, GetDiagnostics, Memory, Tasks, Agents, Skills — everything the agent needs.
Drop a .mcp.json. Any MCP server registers instantly as mcp__server__tool. stdio, SSE, HTTP. Manage with /mcp.
Point it at any Python repo — it becomes a live tool with zero manifest. Hot-reload in-session. No restart. Tools appear immediately.
Spawn typed agents — coder, reviewer, researcher, tester — each in its own git worktree. Agents communicate via message passing. True parallel.
Offline STT via Whisper. No API key. No cloud. /voice lang zh · /voice device. Hint domain terms with voice_keyterms.txt.
Multi-persona AI debate. Dulus generates expert roles and has them argue — Skeptic PM, Staff Eng 2037, Hot-take Intern. /brainstorm.
Token counts, stream latency, tool inspector, prompt viewer. Nothing hidden. When you need to see everything. /ssj.
Run Dulus from your phone. Slash commands, vision, file sharing, and streaming responses from Telegram. Poke a long-running agent from the bus.
Auto-snapshot conversation + files every turn. Break something? /checkpoint 042 and files + context rewind together instantly.
Dual-scope (user + project). Ranked by confidence × recency. Mark memories gold to pin forever. /memory consolidate.
Read-only analysis phase before touching anything. Only plan.md is writable. Think first, break things later. /plan.
Always-on, always-offline. Say "hey dulus" or "oye dulus" — the agent leans in. No cloud. No hot mic logs. /wake set.
A full OS surface for the agent — boot sequence, desktop, app launcher. The CLI becomes a workstation. Try it live →
Swap models mid-session with /model <name>. Auto-detection handles provider prefix.
NVIDIA NIM hosts frontier models at 40 RPM each, free. Sign up at build.nvidia.com and Dulus routes to them automatically — with fallback when limits hit.
Get free NVIDIA key ↗CUSTOM_BASE_URL at it. Same Dulus, zero changes.ollama/qwen2.5-coder:32bollama/qwqollama/phi4-mini
Full offline voice pipeline. Whisper in, Kokoro out. No cloud. No subscription. Your machine, your voice.
/voice device/voice lang zhvoice_keyterms.txt"hey dulus" · "oye dulus"Full Dulus in Telegram. Slash commands, model switching, file sharing, streaming responses. Poke a long-running agent from the bus.
TELEGRAM_BOT_TOKEN — that's the whole config. Auto-starts next launch./telegram <token> <chat_id>Like git commits for your conversations. Persistent memory survives sessions. Checkpoints let you rewind files and context together.
Facts, preferences, project context — remembered across sessions. Ranked by confidence × recency. Mark memories gold to pin forever.
Auto-snapshot conversation + files every turn. Break something? Rewind. Files and context restored together. No git stash drama.
Capture a free browser session (Gemini, Claude.ai, Kimi) and drive frontier models like an API — or grab a NVIDIA NIM key for 14 top models at 40 req/min each. Or run fully offline on Ollama.
▲ NVIDIA NIM · 14 models free · auto-fallback chainOne command, any OS. Or grab the Windows installer — no Python needed.
Double-click and fly. Embedded Python, every library, and the desktop GUI come bundled inside the installer. Nothing to install, nothing to configure, no terminal. #DulusNoPy
Detects your OS, package manager, Python version — then asks which profile to install.
curl -fsSL https://raw.githubusercontent.com/KevRojo/Dulus/main/install.sh | bashirm https://raw.githubusercontent.com/KevRojo/Dulus/main/install.ps1 | iexpip install dulus. For servers, CI runners, minimal sandboxes.qwen2.5-coder, llama3.3, mistral, phi4. Base models without tool-use fine-tuning won't dispatch tools reliably./config custom_base_url=http://your-server:8000/v1 then /model custom/your-model-name. Any OpenAI-compatible server works.--accept-all auto-approves every write and shell command. On prod: don't. Use /plan mode (read-only, only plan.md writable) or default auto mode that prompts before writes..dulus/voice_keyterms.txt, one per line. Whisper respects the hint list. Works great for obscure package names, internal project names, acronyms./cost in the REPL. Dulus tracks token usage and estimates USD cost for every turn. Session totals persist across /save//load.dulus/spinners.py, add your line, PR it. Current record holder: "☕ If I'm taking so long, don't worry, I'm just talking to your mom."We went the other way. Here's what the code actually does — compared to what the alternatives actually do.
pip install dulus. The source is ~12K lines of readable Python — fork it, read it, bend it. If a provider goes down, swap the model and keep going. You own the agent.Your machine. Your data. Your model. In 30 seconds.