Created
February 8, 2026 20:45
-
-
Save seqis/0cc7b9619366949ac6864b360940a3e1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # OpenClaw vs Nanobot: The 170x Reduction Explained | |
| **TL;DR**: Nanobot forked OpenClaw and stripped it from **587k lines to 3.4k lines** (99.4% reduction). OpenClaw is a production-ready multi-platform AI assistant for normies. Nanobot is a research framework for devs who want to actually understand and modify their agent code. Both are good - just for completely different people. | |
| --- | |
| ## The Numbers | |
| - **OpenClaw**: 587,341 lines across TypeScript, Swift, Kotlin | |
| - **Nanobot**: 3,448 core Python lines | |
| - **Reduction**: 583,893 lines removed (170x smaller) | |
| --- | |
| ## What Got Stripped | |
| ### 1. Native Mobile/Desktop Apps (139k lines, 24% of codebase) | |
| **What OpenClaw has:** | |
| - Full iOS app (78k lines Swift) | |
| - Android app (10k lines Kotlin) | |
| - macOS desktop app (296 Swift files) | |
| - Web UI dashboard (5k lines) | |
| **What Nanobot has:** | |
| - Terminal only | |
| - Chat via Telegram/Discord/WhatsApp | |
| **User Impact:** | |
| - **Pro**: If you live in the terminal anyway, you just saved 139k lines of UI code you'd never touch. Startup is <1 second vs several seconds. | |
| - **Con**: Your mom can't use this. No "download app, click button" UX. You need to be comfortable with CLI and chat interfaces. | |
| ### 2. Documentation (100k lines, 17% of codebase) | |
| **What OpenClaw has:** | |
| - 781 markdown documentation files | |
| - Full docs website (https://docs.openclaw.ai) | |
| - Internationalization (Japanese support) | |
| - Discord community | |
| **What Nanobot has:** | |
| - README.md | |
| - Inline code comments | |
| - "The code IS the documentation" | |
| **User Impact:** | |
| - **Pro**: For 3.4k lines, you don't need 781 docs files. You can literally read the entire codebase in an afternoon and understand what's happening. | |
| - **Con**: If you're new to AI agents or Python async, there's no tutorial holding your hand. You're reading source code or asking questions on GitHub Issues. | |
| ### 3. Messaging Channels: 34 → 5 (9k lines saved) | |
| **What OpenClaw has:** | |
| - 34 integrations: WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Teams, Matrix, Mattermost, Line, Nostr, Twitch, Zalo, Google Chat, BlueBubbles, and 19 more | |
| **What Nanobot kept:** | |
| - 5 channels: Telegram, Discord, WhatsApp, Feishu, DingTalk | |
| **User Impact:** | |
| - **Pro**: 5 channels cover 90% of academic/research users. Less integration code = less things that break when APIs change. | |
| - **Con**: If your team uses Slack or you want to integrate with your company's Teams, you're writing that integration yourself (or stuck with CLI). | |
| ### 4. Testing Infrastructure (50k lines, 9% of codebase) | |
| **What OpenClaw has:** | |
| - 1,055 test files | |
| - Vitest + Playwright end-to-end tests | |
| - Coverage reporting | |
| - Multi-platform CI/CD pipeline | |
| - Docker-based integration tests | |
| **What Nanobot has:** | |
| - Basic pytest suite (estimated ~500 lines) | |
| - Manual testing | |
| **User Impact:** | |
| - **Pro**: For research/prototyping, you don't need production-grade test coverage. Move fast, break things, fix them manually. | |
| - **Con**: If you're deploying this to production or building on it seriously, you're writing your own tests. No safety net when you refactor. | |
| ### 5. Enterprise Security Features (18k lines, 3% of codebase) | |
| **What OpenClaw has:** | |
| - Security audit system (1,511 lines) - logs every action | |
| - Exec approval controls (1,541 lines) - manual approval for dangerous commands | |
| - Cost tracking (1,092 lines) - monitors API spend | |
| - Model failover - auto-switches providers if one fails | |
| - Self-update mechanism (1,363 lines) | |
| **What Nanobot has:** | |
| - Basic shell command deny patterns | |
| - Workspace sandboxing (optional) | |
| - Manual `pip install -U` for updates | |
| **User Impact:** | |
| - **Pro**: If you're the only user and you trust yourself, security theater is just overhead. No permission prompts slowing you down. | |
| - **Con**: Don't give this to junior devs or run it on prod servers. No audit trail, no cost alerts when GPT-4 bills rack up, no automatic failover when Anthropic has an outage. | |
| ### 6. MCP Protocol → Direct Python Classes | |
| **What OpenClaw uses:** | |
| - Model Context Protocol (MCP) - formal server-client tool architecture | |
| - JSON schemas, RPC handlers, protocol validation | |
| - Cross-language tool support | |
| **What Nanobot uses:** | |
| - Direct Python classes inheriting from `Tool` base class | |
| - Just implement `execute()` method and you're done | |
| **User Impact:** | |
| - **Pro**: Want to add a new tool? Subclass `Tool`, write 50 lines, register it. Done in 10 minutes. No protocol specs to learn. | |
| - **Con**: Python-only. If you wanted to write tools in Rust or TypeScript and use them cross-language, too bad. MCP exists for a reason. | |
| ### 7. Database → Markdown Files | |
| **What OpenClaw uses:** | |
| - sqlite-vec for vector search | |
| - LanceDB extension for semantic memory | |
| - Complex memory manager (2,411 lines) | |
| - Session cost tracking in database | |
| **What Nanobot uses:** | |
| - `~/.nanobot/memory/MEMORY.md` (long-term memory) | |
| - `~/.nanobot/memory/YYYY-MM-DD.md` (daily notes) | |
| - Simple date-based file retrieval (110 lines) | |
| **User Impact:** | |
| - **Pro**: You can `cat ~/.nanobot/memory/MEMORY.md` and see what your agent remembers. Edit it in vim. Grep it. No SQL, no vector DB setup, no dependencies. | |
| - **Con**: No semantic search. If you have thousands of memory entries, file-based grep is slow. Doesn't scale beyond personal use. | |
| ### 8. Custom LLM Clients → LiteLLM | |
| **What OpenClaw built:** | |
| - Custom client implementations for each provider | |
| - OAuth flows, token refresh, error handling | |
| - Retry logic, streaming support per provider | |
| - Thousands of lines of provider-specific code | |
| **What Nanobot uses:** | |
| - LiteLLM library (unified interface to 10+ providers) | |
| - 340 lines total for provider registry | |
| - Add new provider: 2 lines of config | |
| **User Impact:** | |
| - **Pro**: LiteLLM handles the hard stuff. Want to try DeepSeek? Add API key, done. OpenClaw would need custom client code. | |
| - **Con**: You're at the mercy of LiteLLM's implementation. If they have a bug or don't support some edge case, you can't fix it without forking. | |
| ### 9. Skills: 52 → 6 (15k lines saved) | |
| **What OpenClaw has:** | |
| - 52 built-in skills (GitHub, 1Password, Apple Notes, Discord, coding agent, canvas rendering, etc.) | |
| - All loaded into prompt by default | |
| **What Nanobot has:** | |
| - 6 bundled skills | |
| - Progressive loading: summaries in prompt, full skill loaded on-demand when agent calls `read_file` | |
| **User Impact:** | |
| - **Pro**: Lower token costs (not sending 52 skills on every request). Faster startup. You probably only use 5-6 skills anyway. | |
| - **Con**: Want GitHub integration? Apple Reminders? Canvas rendering? Write it yourself or find a community skill (if that ecosystem exists). | |
| ### 10. Web UI Dashboard (9k lines) | |
| **What OpenClaw has:** | |
| - Live web dashboard (Lit web components) | |
| - Chat interface with markdown rendering | |
| - Agent management view | |
| - Usage tracking visualization | |
| **What Nanobot has:** | |
| - Terminal output | |
| - Chat via messaging apps | |
| **User Impact:** | |
| - **Pro**: No web server to run, no browser tab to keep open. Everything in your terminal where you already work. | |
| - **Con**: No pretty graphs, no click-to-copy chat history, no visual session management. It's 2026 and you're back to CLI-only. | |
| ### 11. Multi-Agent Orchestration → Simple Subagents | |
| **What OpenClaw has:** | |
| - Complex multi-agent framework | |
| - Task graphs, dependencies, coordination | |
| - Inter-agent communication protocol | |
| - Team workflows with role assignment | |
| **What Nanobot has:** | |
| - Simple `spawn` tool (244 lines) | |
| - Creates independent background agent | |
| - No coordination beyond message passing | |
| **User Impact:** | |
| - **Pro**: Easy to understand. Subagent is just "run another agent in the background." No frameworks to learn. | |
| - **Con**: Want multiple agents working together on a task? Building a research team of specialized agents? You're implementing coordination yourself. | |
| ### 12. Voice Features | |
| **What OpenClaw has:** | |
| - Full voice mode (iOS/Android/macOS) | |
| - TTS output (node-edge-tts) | |
| - Voice UI managers (1,842 lines iOS, 1,257 lines Android) | |
| **What Nanobot has:** | |
| - Groq Whisper transcription (speech-to-text only) | |
| - No TTS | |
| **User Impact:** | |
| - **Pro**: STT is the useful part anyway (talk to your agent). TTS is a nice-to-have that adds complexity. | |
| - **Con**: Agent can't read responses to you. No "Alexa-style" hands-free back-and-forth. | |
| ### 13. Miscellaneous Stripped Features | |
| **Also removed:** | |
| - Canvas system (live browser UI rendering) | |
| - Auto-reply system | |
| - Media understanding (image/PDF parsing) | |
| - OpenTelemetry monitoring | |
| - Gateway WebSocket protocol | |
| - mDNS device discovery | |
| - Model failover | |
| - Coverage reporting | |
| **User Impact:** | |
| - **Pro**: You're not maintaining code you don't use. Codebase is lean and focused on core agent loop. | |
| - **Con**: Each missing feature is something you might want later. No gradual feature discovery - if it's not in the 3.4k lines, you're building it. | |
| --- | |
| ## When to Choose Each | |
| ### Choose OpenClaw if: | |
| - You want a polished AI assistant you can ship to users | |
| - You need mobile apps (iOS/Android) | |
| - Enterprise features matter (security audits, cost tracking, compliance) | |
| - You have a team to maintain a large codebase | |
| - You want 52 skills out-of-box | |
| - "It just works" > "I understand how it works" | |
| ### Choose Nanobot if: | |
| - You're doing AI research or learning about agents | |
| - Smaller footprint for a small security concern (smaller surface area) | |
| - You want to fork and customize heavily | |
| - You live in the terminal anyway | |
| - You need to understand every line of code | |
| - Fast iteration > feature completeness | |
| - You're prototyping new agent architectures | |
| - You're teaching/learning agent systems | |
| --- | |
| ## The Bottom Line | |
| This isn't "Nanobot is better because smaller." It's two totally different design philosophies: | |
| ## Analogies: | |
| **OpenClaw** is VS Code. Feature-complete, polished, batteries included, works on every platform. You download it and it just works. But it's big, you don't understand all of it, and modifying core behavior is hard. | |
| **Nanobot** is vim. Minimal, fast, terminal-native, infinitely hackable. You read the source, you understand it, you bend it to your will. But you're building features yourself and there's no hand-holding. | |
| Both are excellent. Pick based on whether you want a product or a framework. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment