Dulus – Open-Source CLI AI Agent with Multi-Model Tool Calling

Executive Summary:
Dulus is an open-source command-line AI Agent framework of roughly 12K lines of Python, supporting 40+ mainstream language models including Claude, GPT, Gemini, DeepSeek, Kimi, and Qwen. Its core inno...
1. What Is Dulus
Dulus is an open-source command-line AI Agent framework of roughly 12K lines of Python, supporting 40+ mainstream language models including Claude, GPT, Gemini, DeepSeek, Kimi, and Qwen. Its core innovation is capturing guest sessions from browser-based AI chat pages and turning them into local agents with 27 tools—file read/write, code editing, Bash execution, web search, and more. Dulus also supports MCP (Model Context Protocol), hot-loadable plugins, sub-agent collaboration, offline voice, persistent memory, and automatic snapshots. It offers four interfaces: PyQt6 desktop GUI, Flask WebChat, Telegram Bot, and terminal REPL—covering zero-key startup through full offline workflows in the tool-calling agent space.

Technical positioning and domain: Dulus sits at the intersection of AI agents and tool-calling frameworks, focused on multi-model scheduling and local tool automation in the CLI. Unlike IDE plugins or single-vendor bindings, it differentiates through model neutrality, hot-swappable plugins, and browser session capture—for personal coding assistants, zero-budget AI experiments, and offline secure automation.
Development background: Created and maintained by independent developer KevRojo with community contributions. Motivation: existing agents often require paid API keys, vendor lock-in, and closed plugin ecosystems. Dulus uses browser guest-session capture for zero-cost startup, a unified abstraction layer for live model switching, and Auto-Adapter for zero-config Python repo plugins—lowering barriers in the tool-calling agent space.
Core value: Dulus addresses high deployment cost, limited model choice, and weak extensibility. Zero-key mode gets full tool calling in ~30 seconds without credit cards or API keys; model-neutral architecture allows /model switching among Claude, DeepSeek, Kimi, etc. in one session with automatic fallback chains; hot plugin loading makes any Python repo or MCP server instant agent capability.
Technical characteristics: Three core innovations: a browser session capture engine for Gemini, Claude.ai, etc.; Auto-Adapter runtime analysis of repo entry points and parameters for zero-config hot loading; unified core across terminal, web, desktop GUI, and Telegram sharing agent state and memory. Full offline stack (Whisper-cpp input, Kokoro TTS output, Ollama local models) works fully air-gapped.
2. Key Features
Zero-key web session capture: Automatically hijacks guest sessions from Gemini, Claude.ai, Kimi.com, DeepSeek, and similar tabs, turning web chat into local agents with full tool calling—no signup or API key; follow the wizard on first run.
27 built-in tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Jupyter Notebook editing, system diagnostics, memory, task boards, sub-agent invocation, and more—unified interface with dynamic chaining.
Multi-provider model switching: Anthropic, OpenAI, Google, DeepSeek, Kimi, Qwen, Zhipu, MiniMax, Ollama, LM Studio, custom endpoints—40+ models.
/modelswitches live without restart; automatic fallback when primary models fail.MCP and plugin ecosystem: Place
.mcp.jsonin the project to register MCP servers. Auto-Adapter hot-loads any Python repo as a plugin by analyzing entry functions and signatures. Composio integration adds 800+ prebuilt skills.Sub-agents and task management: Spawn coder, reviewer, researcher sub-agents in isolated git worktrees with message-passing collaboration. Built-in task boards track progress—suited to large modular development.
Offline voice and wake word: Whisper-cpp offline STT; Kokoro TTS with multiple voices; custom wake words (e.g., "hey dulus") for hands-free interaction in secure or outdoor settings.
Persistent memory and snapshots: Dual-scope memory (user + project) ranked by confidence and recency. Automatic checkpoints per turn for one-click rollback.
Multimodal interfaces: REPL, Flask WebChat (LAN), PyQt6 GUI, Telegram Bot—shared core and memory; start on desktop, monitor via Telegram.
3. How to Use
| Environment and install: Linux, macOS, Windows (WSL recommended). Python 3.10+. Run pip install dulus or one-line install: `curl -fsSL https://raw.githubusercontent.com/KevRojo/Dulus/main/install.sh |
Configure keys and models: For API-key models, set env vars like
export ANTHROPIC_API_KEY=sk-ant-.... For Ollama, install and pull models. Zero-key mode needs no keys.Start REPL and switch models: Run
dulus. First run prompts model selection; use/model nvidia-web/deepseek-r1or/model ollama/qwen2.5-coder, etc. Switch anytime without restart.Enable zero-key mode: On first run, open Gemini or Claude.ai guest pages per wizard; Dulus captures session cookies/tokens. Keep browser logged in; re-capture when sessions expire.
Run tasks and extend: Natural language like "refactor the auth module" triggers Read/Edit/Bash workflows. Extend with
/plugin install repo@URLor/mcpfor MCP servers—no restart required.
Best practices: Run from project root for context; use sub-agents for large tasks; /checkpoint regularly to avoid irreversible edits.
4. Pros and Cons
| Pros |
|---|
| Zero-key startup: No API key, card, or login—browser guest capture delivers full tool calling; ideal for students and budget-limited developers. |
Model-neutral live switching: 40+ models via /model with fallback chains—no single-vendor lock-in. |
| Full offline stack: Whisper-cpp, Kokoro TTS, Ollama—works fully offline for secure intranets. |
| Unified multi-interface core: Terminal, web, GUI, Telegram share state—seamless cross-device use. |
5. Comparison with Similar Tools
| Dimension | Dulus | Claude Code | Aider |
|---|---|---|---|
| Vendor lock-in | Multi-provider neutral, /model live switch |
Anthropic Claude only | Multi-model, manual config |
| API key | Optional zero-key (browser capture) | Required | Required |
| Local/offline | Full (Ollama + offline voice) | No | Local models, no offline voice |
| Plugins | Auto-Adapter + MCP + Composio 800+ | None | Custom tools, smaller ecosystem |
| Sub-agents | coder, reviewer, researcher + messaging | None native | Multi-file edit, no sub-agents |
| Voice | Offline Whisper + Kokoro TTS + wake word | No | No |
| Interfaces | Terminal, Web, PyQt6, Telegram | Terminal only | Terminal only |
| Memory/snapshots | Persistent memory + checkpoints | Session memory | No native snapshots |
Selection advice: For zero-cost startup, multi-model flexibility, and offline use, Dulus offers the strongest overall package—especially students, indie devs, and secure environments. Browser capture has stability risks but often worth it for budget experiments. Anthropic-bound teams may prefer Claude Code for code quality but lose customization. Aider suits lightweight coding with mature Git integration but lacks multi-interface and voice. Open Interpreter is flexible for Python tool use but weaker on plugins and sub-agents than Dulus.
6. Editor's Review
Dulus shows strong innovation in tool-calling agents. Browser session capture bypasses traditional API auth—a novel approach. Auto-Adapter reduces plugin friction via runtime repo analysis. Model-neutral live switching lets users chain Claude for code, DeepSeek for reasoning, Gemini for long context—impossible with single-vendor lock-in.
Practically, it balances "works out of the box" and deep extensibility. Zero-key mode delivers full agent tooling in ~30 seconds; MCP and sub-agents serve advanced users. Full offline support is critical for government and military intranets. Four unified interfaces reflect real workflows—desktop for complex tasks, Telegram for mobile monitoring.
Best for: budget-conscious students and AI enthusiasts; developers needing multi-model collaboration and failover; ops in offline/secure environments with local models and voice.
Future potential is high as MCP standardizes—Dulus could become CLI agent "infrastructure." Stability, docs, and performance improvements would strengthen competitiveness further.
Basis: Strong innovation (browser capture, Auto-Adapter), high practical value (zero-cost, offline), flexible ecosystem (MCP + Python repos). Deductions for browser capture stability and incomplete advanced docs.
7. Use Cases
Personal coding assistant: Natural-language driven read/edit/test/Git workflows; multi-model review (Claude writes, DeepSeek reviews).
Zero-budget AI experiments: Free Gemini guest mode for advanced tool calling without paid APIs—prototypes, teaching, research.
Offline/secure automation: Ollama + offline voice for fully private agent workflows—file processing, log analysis, reports without network.
Telegram remote ops: Manage files, logs, services on home servers via Telegram when away from a desk.
Multi-agent R&D: Parallel coder/reviewer/researcher sub-agents with message passing; main agent integrates results.
8. FAQ
Q: Does Dulus support Chinese prompts and models?
A: Yes. Natural-language input works in Chinese. DeepSeek, Kimi, Qwen, Zhipu, etc. via /model. File tool I/O is fully compatible.
Q: Is browser capture safe? Will it leak sessions?
A: Cookies are captured locally only; nothing uploaded remotely. Guest mode may limit rate/features; re-capture on expiry. Use only in trusted local environments.
Q: How to add custom MCP servers?
A: Create .mcp.json in the run directory per MCP spec. Example: {"mcpServers": {"my-server": {"command": "node", "args": ["server.js"]}}}. Reload with /mcp reload.
Q: How do sub-agents work? Can I define custom types?
A: Sub-agents run in isolated git worktrees with separate context and tools. Built-in: coder, reviewer, researcher. Define new types via Python plugins with roles, tools, and protocols.
Q: What hardware for offline voice?
A: Whisper-cpp runs on CPU—4GB+ RAM recommended; Kokoro TTS also CPU-capable. Wake word needs a mic; configure ALSA/PulseAudio on Linux, drivers on Windows. AVX2 CPU or NVIDIA GPU for low latency.
Q: Where is persistent memory stored? How to backup?
A: Default ~/.dulus/memory/—user-level by user ID, project-level by project hash. Export JSON via /memory export. Checkpoints in ~/.dulus/checkpoints/ with timestamp rollback.
9. Project Links
- GitHub: https://github.com/KevRojo/Dulus
- Website: https://dulus.ai/
- PyPI: https://pypi.org/project/dulus/
© All Rights Reserved. Some content on this site is partially generated by AI with human review.



