Skip to content

Instantly share code, notes, and snippets.

@seqis
Created February 8, 2026 20:45
Show Gist options
  • Select an option

  • Save seqis/0cc7b9619366949ac6864b360940a3e1 to your computer and use it in GitHub Desktop.

Select an option

Save seqis/0cc7b9619366949ac6864b360940a3e1 to your computer and use it in GitHub Desktop.
# 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