6bb424cddc
Add 8 new agent-callable tools (sessions.list/history/create/delete,
agents.list, message.send, cron.list/trigger) and sanitize tool names
at the API boundary (dots → underscores) to comply with Anthropic's
`^[a-zA-Z0-9_-]{1,128}` requirement. Reverse-maps sanitized names
back to internal names for hook callbacks and tool execution.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
14 KiB
14 KiB
Flynn vs OpenClaw — Feature Gap Analysis
Date: 2026-02-06 Last updated: 2026-02-07 Purpose: Comprehensive comparison of Flynn's current implementation against OpenClaw's feature set, to guide prioritisation of future work.
Legend
- MATCH — Flynn has equivalent functionality
- PARTIAL — Flynn has some implementation but incomplete
- MISSING — Not implemented in Flynn
1. Channels / Frontends
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Telegram | grammY bot | grammY bot (allowlists, mention gating, group support) | MATCH |
| Baileys (WhatsApp Web) | whatsapp-web.js (allowlists, mention gating, groups) | MATCH | |
| Discord | discord.js | discord.js (guild/channel allowlists, mention gating) | MATCH |
| Slack | Bolt SDK | Bolt SDK Socket Mode (channel allowlists, mention gating) | MATCH |
| Signal | signal-cli | -- | MISSING |
| iMessage / BlueBubbles | imsg + BlueBubbles | -- | MISSING |
| Google Chat | Chat API | -- | MISSING |
| Microsoft Teams | Bot Framework | -- | MISSING |
| Matrix | Extension | -- | MISSING |
| Zalo / Zalo Personal | Extension | -- | MISSING |
| WebChat | Gateway-served | Full WebSocket + SPA dashboard | MATCH |
| TUI (terminal) | openclaw tui |
Minimal + Fullscreen (React/Ink) | MATCH |
| LINE / Feishu / Mattermost | Extensions/plugins | -- | MISSING |
Flynn has 6 of ~15 channels (Telegram, WhatsApp, Discord, Slack, WebChat, TUI).
2. Model Providers
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Anthropic (Claude) | Full + OAuth | Full (API key + auth token) | MATCH |
| OpenAI | Full + OAuth + Codex | Full (OpenAI SDK) | MATCH |
| Ollama (local) | Supported | Full (host, num_gpu config) | MATCH |
| Llama.cpp (local) | Supported | Full (endpoint, auth_token, context_window) | MATCH |
| Gemini / Google | Full provider | Full (Gemini SDK, vision support) | MATCH |
| OpenRouter | Supported | Full (via OpenAI-compatible client, custom baseURL) | MATCH |
| Amazon Bedrock | Supported | Full (Bedrock SDK, region/credentials) | MATCH |
| GitHub Models | Supported | Full (device flow auth, Codex models) | MATCH |
| GLM / MiniMax / Moonshot | Supported | -- | MISSING |
| Vercel AI Gateway | Supported | -- | MISSING |
| Z.AI | Supported | -- | MISSING |
| Synthetic provider | Supported | -- | MISSING |
| OAuth subscription auth | Anthropic + OpenAI | API keys only | MISSING |
| Model failover chains | Full (fallback + rotation) | Full (configurable fallback chain + retry) | MATCH |
| Model tier routing | Per-agent, per-provider | default/fast/complex/local with per-agent override | MATCH |
| Provider-specific tool policy | Per-provider tool filtering | Full (per-provider allow/deny in tools config) | MATCH |
3. Agent Runtime & Tools
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Tool loop with streaming | RPC mode + block streaming | Tool loop (max iterations, streaming) | MATCH |
exec / shell |
Full (background, pty, timeout, elevated) | Full (bash -c, configurable timeout, background via process tools) | MATCH |
read / file read |
Full (line ranges) | Full (line offset/limit) | MATCH |
write / file write |
Full | Full (auto-mkdir) | MATCH |
edit / file edit |
Full | Full (exact match, replace_all) | MATCH |
apply_patch |
Multi-hunk structured patches | -- | MISSING |
file.list / glob |
-- | Full (glob filtering) | MATCH |
web_fetch |
Full (markdown/text extract, caching) | Full (HTML-to-markdown, readability, caching) | MATCH |
web.search |
Brave Search API | Full (Brave + SearXNG providers) | MATCH |
| Browser control | Full CDP (Chromium profiles, snapshots, actions) | Full CDP (Puppeteer, navigate/click/type/screenshot/evaluate) | MATCH |
| Canvas / A2UI | Agent-driven visual workspace | -- | MISSING |
process.* tools |
Background exec management (poll/log/write/kill) | Full (start/output/status/kill/list) | MATCH |
image.analyze tool |
Image analysis with configurable model | Full (multi-provider vision analysis) | MATCH |
message.send tool |
Cross-channel messaging + actions | Full (send to any registered channel) | MATCH |
cron.* tools |
Runtime cron management | Full (list/trigger) | MATCH |
sessions.* tools |
List/history/send/spawn across sessions | Full (list/history/create/delete) | MATCH |
agents.list tool |
Sub-agent discovery | Full (list configs with tiers/profiles) | MATCH |
| Tool profiles | minimal/coding/messaging/full | Full (4 profiles + per-agent + per-provider) | MATCH |
| Tool groups | group:fs, group:runtime, etc. |
-- | MISSING |
| Tool allow/deny lists | Global + per-agent + per-provider | Full (global + per-agent + per-provider allow/deny) | MATCH |
4. Session Management
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Session persistence | JSONL files | SQLite | MATCH (different storage) |
| Session isolation | Per-sender + group isolation | {frontend}:{userId} with agent config key |
MATCH |
| Session transfer | Between channels | Between frontends | MATCH |
| Multi-agent routing | Isolated workspaces per agent | Full (AgentRouter + per-agent config/sandbox/tools) | MATCH |
| Session pruning | Tool result trimming (in-memory) | -- | MISSING |
/new / /reset |
Full | Full | MATCH |
/status |
Full (model + tokens + cost) | Full (model + tokens + cost) | MATCH |
5. Context Window & Compaction
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Auto-compaction | Full (summarise older history) | Full (threshold-based, delegated to fast tier) | MATCH |
Manual /compact |
Full (with instructions) | Full (via command metadata) | MATCH |
| Pre-compaction memory flush | Silent agentic turn | Full (auto-extract memory before compaction) | MATCH |
| Token tracking | Full (per-response, cost) | Full (per-tier, per-call, estimated cost) | MATCH |
6. Memory System
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Markdown memory files | MEMORY.md + daily logs |
Namespace-based flat files (user/global/session) | MATCH |
memory.search tool |
Semantic vector search | Full (keyword search across namespaces) | MATCH |
memory.read tool |
Read memory files | Full (read by namespace) | MATCH |
memory.write tool |
Write memory files | Full (write/append to namespace) | MATCH |
| Vector embeddings | OpenAI/Gemini/local | -- | MISSING |
| Hybrid search (BM25 + vector) | Full | -- | MISSING |
| QMD backend | Experimental | -- | MISSING |
7. MCP (Model Context Protocol)
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| MCP tool servers | Not emphasised | Full (stdio transport) | MATCH |
| MCP tool bridging | Not emphasised | Full (mcp:{server}:{tool}) |
MATCH |
| MCP server lifecycle | Not emphasised | Full (start/stop/restart) | MATCH |
Flynn actually has MCP support that OpenClaw doesn't emphasise — OpenClaw relies on its own native tool system and plugins instead.
8. Security & Safety
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Tool confirmation hooks | Full | Full (confirm/log/silent patterns) | MATCH |
| Chat ID allowlists | Per-channel | Full (Telegram, Discord, Slack, WhatsApp all have allowlists) | MATCH |
| DM pairing (unknown senders) | Full (pairing codes) | -- | MISSING |
| Docker sandboxing | Full (per-session/agent/shared) | Full (per-agent sandbox via SandboxManager + Docker) | MATCH |
| Elevated mode | Host exec escape hatch | -- | MISSING |
| Tool execution timeouts | Full (configurable) | Full (configurable per-process + shell) | MATCH |
| Output truncation | Full | 51KB | MATCH |
| Gateway auth (token/password) | Full | Full (bearer token + Tailscale identity + HTTP auth) | MATCH |
9. Automation & Scheduling
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Cron jobs | Full (runtime + config) | Full (YAML config + runtime trigger via tools) | MATCH |
| Webhooks | Full (inbound triggers) | -- | MISSING |
| Gmail Pub/Sub | Full | -- | MISSING |
| Heartbeat | Full | -- | MISSING |
10. Apps & Companion Devices
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| macOS menu bar app | Full | -- | MISSING |
| iOS node | Full (Canvas, Voice, Camera) | -- | MISSING |
| Android node | Full (Canvas, Talk, Camera) | -- | MISSING |
| Voice Wake / Talk Mode | Full (ElevenLabs) | -- | MISSING |
| Camera / screen capture | Via nodes | -- | MISSING |
| Location access | Via nodes | -- | MISSING |
11. Skills & Plugins
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Skills system | Bundled/managed/workspace | Full (bundled/managed/workspace tiers) | MATCH |
| Skill manifest | Full | Full (requirements, versioning, manifest.json) | MATCH |
| Skill installer | Registry install/upgrade/uninstall | Full (directory-based install/upgrade/uninstall) | MATCH |
| ClawHub registry | Community skill registry | -- | MISSING |
| Workspace prompt injection | AGENTS.md, SOUL.md, TOOLS.md | Full (SOUL.md, AGENTS.md via prompt template system) | MATCH |
12. Gateway & Infrastructure
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| WebSocket control plane | Full | Full (JSON-RPC protocol, session bridge, handlers) | MATCH |
| Control UI (web dashboard) | Full | Full SPA (dashboard, chat, sessions, settings) | MATCH |
| Tailscale Serve/Funnel | Full integration | -- | MISSING |
| Remote gateway access | SSH tunnels + tailnet | Tailscale-only binding option | PARTIAL |
| Health checks / doctor | 10+ checks | 10 checks | MATCH |
onboard wizard |
Full guided setup | -- | MISSING |
| Docker deployment | Full | -- | MISSING |
| Nix deployment | Full | -- | MISSING |
| Fly.io / Railway / Render | Supported | -- | MISSING |
| Bonjour/mDNS discovery | Full | -- | MISSING |
| Gateway lock | Full | -- | MISSING |
13. Chat Commands
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
/status |
Full | Full | MATCH |
/new / /reset |
Full | Full | MATCH |
/compact |
Full | Full (manual via command) | MATCH |
/think <level> |
Full (off to xhigh) | -- | MISSING |
/verbose |
Full | -- | MISSING |
/usage |
Full (off/tokens/full) | Full (per-tier breakdown + cost) | MATCH |
/local / /cloud |
-- | Full | Flynn-unique |
/model |
-- | Full (tier switching) | Flynn-unique |
14. Miscellaneous
| Feature | OpenClaw | Flynn | Status |
|---|---|---|---|
| Streaming & chunking | Full (per-channel limits) | Full (streaming + per-channel chunking) | MATCH |
| Typing indicators | Full | Telegram (built-in grammY) | PARTIAL |
| Presence tracking | Full | -- | MISSING |
| Usage tracking / cost | Full | Full (per-tier tokens, estimated cost via MODEL_COSTS) | MATCH |
| Markdown rendering | Per-channel formatting | Full (TUI markdown renderer + channel-specific) | MATCH |
| Media pipeline | Images/audio/video/transcription | Full (image analysis, audio transcription, media.send) | MATCH |
| Group chat support | Full (mention gating, routing) | Full (all channels support mention gating + group filtering) | MATCH |
| Retry policy | Full (configurable) | Full (configurable retries, backoff, delay caps) | MATCH |
| System prompt templating | AGENTS.md, SOUL.md, IDENTITY.md, USER.md | Full (SOUL.md, AGENTS.md, configurable search dirs + extra sections) | MATCH |
Summary Scorecard
| Category | Items | Match | Partial | Missing |
|---|---|---|---|---|
| Channels | 13 | 6 | 0 | 7 |
| Model Providers | 14 | 10 | 0 | 4 |
| Agent & Tools | 17 | 15 | 0 | 2 |
| Sessions | 7 | 6 | 0 | 1 |
| Context/Compaction | 4 | 4 | 0 | 0 |
| Memory | 7 | 4 | 0 | 3 |
| MCP | 3 | 3 | 0 | 0 |
| Security | 8 | 6 | 0 | 2 |
| Automation | 4 | 1 | 0 | 3 |
| Companion Apps | 6 | 0 | 0 | 6 |
| Skills/Plugins | 5 | 4 | 0 | 1 |
| Gateway/Infra | 11 | 3 | 1 | 7 |
| Chat Commands | 8 | 5 | 0 | 2 |
| Misc | 9 | 8 | 1 | 0 |
| TOTAL | 116 | 75 (65%) | 2 (2%) | 38 (33%) |
Remaining True Gaps (prioritized)
Tier 1 — Quick Wins
/thinkcommand — Toggle extended thinking/reasoning mode/verbosecommand — Toggle verbose tool output display- Typing indicators — Discord, Slack, WhatsApp adapters could send typing indicators
- Session pruning — Auto-cleanup old sessions by TTL
- Tool groups — Syntactic sugar:
group:fs→[file.read, file.write, file.edit, file.list]
Tier 2 — Meaningful New Features
- Inbound webhooks — HTTP endpoint that triggers agent processing
- Vector memory search — Embed memory chunks, enable semantic retrieval
- Dockerfile — Production container deployment
- Heartbeat — Periodic self-check with optional notification
Tier 3 — Additional Channels (if desired)
- Signal (signal-cli bridge)
- Matrix (matrix-js-sdk)
- Microsoft Teams (Bot Framework)
- Google Chat (Chat API)
Tier 4 — Deferred / Niche
- Companion apps (macOS/iOS/Android) — massive scope
- LINE, Feishu, Mattermost — niche audience
- iMessage/BlueBubbles — Apple ecosystem only
- Canvas/A2UI — experimental
- Nix/Fly.io/Railway deployment — platform-specific
- OAuth subscription auth — complex
- DM pairing codes — niche security feature
- Bonjour/mDNS discovery — LAN-only use case
- GLM/MiniMax/Moonshot/Z.AI — regional providers
What Flynn Has That OpenClaw Doesn't Emphasise
- Full MCP protocol support with stdio transport, tool bridging, and server lifecycle management
- Model tier switching via chat commands (
/local,/cloud,/model) - 8 model providers (Anthropic, OpenAI, Gemini, Ollama, Llama.cpp, OpenRouter, Bedrock, GitHub)
- SQLite session storage (vs OpenClaw's JSONL files)
- Configurable retry policy with exponential backoff
- Skill installer with managed directory + upgrade support
- Audio transcription pipeline for voice messages