332 lines
18 KiB
Markdown
332 lines
18 KiB
Markdown
# Flynn vs OpenClaw — Feature Gap Analysis
|
|
|
|
**Date:** 2026-02-06
|
|
**Last updated:** 2026-02-09 (refreshed against OpenClaw v2026.2.6)
|
|
**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 | -- | **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 | 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 | -- | **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) | Full (PairingManager with TTL codes, 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 | -- | **MISSING** |
|
|
| Docker deployment | Full | Full (multi-stage Dockerfile, docker-compose.yml) | **MATCH** |
|
|
| Nix deployment | Full | -- | **MISSING** |
|
|
| 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 | -- | **MISSING** |
|
|
| 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 | -- | **MISSING** |
|
|
| 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 | 7 | 0 | 6 |
|
|
| Chat Commands | 6 | 6 | 0 | 0 |
|
|
| Misc | 10 | 9 | 0 | 1 |
|
|
| **TOTAL** | **128** | **99 (77%)** | **0 (0%)** | **29 (23%)** |
|
|
|
|
*Note: Match rate improved from 74% to 77% after implementing Tier 4 features (Gateway lock, shell completion, Tailscale Serve, DM pairing codes).*
|
|
|
|
---
|
|
|
|
## 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
|
|
- ClawHub/skill registry — community marketplace
|
|
- QMD backend — experimental memory search
|
|
- Presence tracking — online/offline status
|
|
|
|
---
|
|
|
|
## 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`)
|