Flynn vs OpenClaw — Feature Gap Analysis
Date: 2026-02-06
Last updated: 2026-02-14 (synthetic model provider implemented)
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 |
| WhatsApp |
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 |
| Zhipu AI (GLM) |
Supported |
Full (OpenAI-compatible client, GLM models) |
MATCH |
| MiniMax / Moonshot |
Supported |
-- |
MISSING |
| xAI (Grok) |
Supported (v2026.2.6) |
Full (OpenAI-compatible client, xai provider) |
MATCH |
| Vercel AI Gateway |
Supported |
-- |
MISSING |
| Voyage AI embeddings |
Supported (v2026.2.6) |
Full (Voyage AI provider, configurable dimensions) |
MATCH |
| Synthetic provider |
Supported |
Full (provider: synthetic, deterministic echo/fixed/error) |
MATCH |
| 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 |
Full (file.patch — multi-file, multi-hunk, bottom-up) |
MATCH |
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 |
| Lane Queue (serial exec) |
Concurrency control for sessions |
Full (per-session FIFO queue in gateway) |
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. |
Full (group:fs, group:runtime, group:web, group:memory) |
MATCH |
| Tool allow/deny lists |
Global + per-agent + per-provider |
Full (global + per-agent + per-provider allow/deny) |
MATCH |
| System context / date awareness |
-- |
system.info tool + automatic date/time injection in system prompt |
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) |
TTL-based auto-cleanup (configurable sessions.ttl) |
MATCH |
/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 |
Full (OpenAI, Gemini, Ollama, LlamaCpp providers) |
MATCH |
| Hybrid search (BM25 + vector) |
Full |
Full (keyword + vector with configurable hybrid weight) |
MATCH |
| QMD backend |
Experimental |
Full (experimental markdown-native backend configurable via memory.qmd) |
MATCH |
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) |
Full (PairingManager with TTL codes, SQLite persistence, channel adapter integration, gateway handlers, TUI /pair command) |
MATCH |
| Credential redaction |
Config responses redacted (v2026.2.6) |
Full (18+ secret fields redacted from config API) |
MATCH |
| Skill/plugin code safety scanner |
Static analysis (v2026.2.6) |
-- |
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) |
Full (HTTP POST /webhooks/:name, HMAC auth, template rendering) |
MATCH |
| Gmail Pub/Sub |
Full |
Full (OAuth2, Pub/Sub push + polling fallback, template rendering) |
MATCH |
| Heartbeat |
Full |
Full (5 checks, configurable interval, failure threshold, notifications) |
MATCH |
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 |
Full (auto-start/stop tailscale serve, availability check, daemon lifecycle) |
MATCH |
| Remote gateway access |
SSH tunnels + tailnet |
Tailscale-only binding + Tailscale Serve |
MATCH |
| Health checks / doctor |
10+ checks |
10 checks |
MATCH |
onboard wizard |
Full guided setup |
Full (flynn setup + first-run auto-trigger) |
MATCH |
| Docker deployment |
Full |
Full (multi-stage Dockerfile, docker-compose.yml) |
MATCH |
| Nix deployment |
Full |
Full (flake + package + optional NixOS module) |
MATCH |
| Shell completion |
Auto-detect + cached (v2026.2.3) |
Full (bash/zsh/fish generation + --install flag) |
MATCH |
| Announce delivery mode |
Isolated job delivery (v2026.2.3) |
-- |
MISSING |
| Fly.io / Railway / Render |
Supported |
Full (docs + templates + PORT override support) |
MATCH |
| Bonjour/mDNS discovery |
Full |
-- |
MISSING |
| Gateway lock |
Full |
Full (single-client mode, code 4003, UI detection) |
MATCH |
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) |
!!think prefix (per-message, multi-provider) |
MATCH |
/verbose |
Full |
Full (toggle raw streaming + tool output) |
MATCH |
/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, Discord, WhatsApp (per-adapter) |
MATCH |
| Presence tracking |
Full |
Full (system.presence with online/offline inference from recent sender activity) |
MATCH |
| Web UI token dashboard |
Usage visualization (v2026.2.6) |
Full (Usage page with summary cards, per-session table, auto-refresh) |
MATCH |
| 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 |
18 |
14 |
0 |
4 |
| Agent & Tools |
22 |
21 |
0 |
1 |
| Sessions |
7 |
7 |
0 |
0 |
| Context/Compaction |
4 |
4 |
0 |
0 |
| Memory |
7 |
6 |
0 |
1 |
| MCP |
3 |
3 |
0 |
0 |
| Security |
10 |
8 |
0 |
2 |
| Automation |
4 |
4 |
0 |
0 |
| Companion Apps |
6 |
0 |
0 |
6 |
| Skills/Plugins |
5 |
4 |
0 |
1 |
| Gateway/Infra |
13 |
8 |
0 |
5 |
| Chat Commands |
6 |
6 |
0 |
0 |
| Misc |
10 |
10 |
0 |
0 |
| TOTAL |
128 |
101 (79%) |
0 (0%) |
27 (21%) |
Note: Match rate improved from 77% to 78% after implementing setup wizard (flynn setup + first-run auto-trigger).
Remaining True Gaps (prioritized)
Tier 1 — Quick Wins (DONE — implemented 2026-02-07)
All five Tier 1 items implemented: !!think prefix, /verbose command, typing indicators (Discord/WhatsApp), session pruning (TTL), tool groups. See docs/plans/2026-02-07-tier1-quick-wins-design.md.
Tier 2 — Meaningful New Features (DONE — implemented 2026-02-07)
All four Tier 2 items implemented: inbound webhooks (HTTP POST /webhooks/:name with HMAC auth), vector memory search (hybrid keyword+vector with OpenAI/Gemini/Ollama/LlamaCpp embeddings), Dockerfile (multi-stage build), heartbeat monitor (5 checks with notification). See docs/plans/2026-02-07-tier2-implementation-plan.md.
Tier 3 — Practical Improvements (DONE — implemented 2026-02-09)
All five Tier 3 items implemented: Lane Queue (per-session FIFO in gateway), credential redaction (18+ secret fields), Web UI token dashboard (usage page with summary cards), xAI Grok provider (OpenAI-compatible), Voyage AI embeddings (configurable dimensions). +33 new tests.
Tier 4 — Additional Channels (if desired) → Tier 4 — Implemented Features + Remaining Channels
Implemented (2026-02-09):
- Gateway lock (single-client mode with code 4003)
- Shell completion (bash/zsh/fish with --install flag)
- Tailscale Serve/Funnel (auto-start/stop with daemon lifecycle)
- DM pairing codes (PairingManager with TTL codes, all 4 channel adapters, gateway handlers, TUI /pair command)
Remaining channels (if desired):
6. Signal (signal-cli bridge)
7. Matrix (matrix-js-sdk)
8. Microsoft Teams (Bot Framework)
9. Google Chat (Chat API)
Tier 5 — Deferred / Niche
- Companion apps (macOS/iOS/Android) — massive scope
- LINE, Feishu, Mattermost — niche audience
- iMessage/BlueBubbles — Apple ecosystem only
- Canvas/A2UI — experimental visual workspace
- Voice Wake / Talk Mode — ElevenLabs TTS integration
- Nix/Fly.io/Railway deployment — platform-specific
- OAuth subscription auth — complex
- Skill/plugin safety scanner — static analysis
- Announce delivery mode — isolated job delivery
- Bonjour/mDNS discovery — LAN-only use case
- MiniMax/Moonshot — regional providers
- Synthetic provider — testing/mock
- Elevated mode — sandbox escape hatch
Onboard wizard — guided setup (DONE — flynn setup + first-run auto-trigger, 2026-02-10)
- ClawHub/skill registry — community marketplace
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)
- 10 model providers (Anthropic, OpenAI, Gemini, Ollama, Llama.cpp, OpenRouter, Bedrock, GitHub, Zhipu, xAI)
- 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
- Per-message extended thinking via
!!think prefix (multi-provider: Anthropic, OpenAI, Gemini, GitHub)
- Tool groups for policy config (
group:fs, group:runtime, group:web, group:memory)