Skip to content

Flagship Features

github-actions[bot] edited this page Oct 14, 2026 · 8 revisions

Canonical source: docs/02-business-product/flagship-features.md — this page is rendered from it on every publish; edit the source.

Flagship Features

Canonical home for the flagship list. The positioning these flagships serve — "Every AI, one workspace" — is canonical in product-vision.md; why it changed is ADR-126. The README, the wiki and the marketing site link here rather than keeping their own list.

Audited against the code on 2026-09-26 (main at 0dd790060, release v1.141.0). Every row names the wired code that runs it. Status: Shipped — wired end to end, with a caller; Partial — shipped with a limit the copy must respect; Gap — not built, never claimed. Commit subjects were used only as leads.

Prices, allowances and plan limits are not restated here; they live in docs/business/ and the plan catalog.

The older, broader list is the feature catalog (last reviewed 2026-04-11) and the per-feature feature inventory.


The four pillars

Pillar What it means Flagships
One workspace Every model, and everything around a model — it sees, hears, researches and builds 1–8, 10
Pay as you go Credit metered per use, shown in the visitor's currency 9
Bring your team Admin-managed users, roles, plan grants, usage, and governed coding agents 11, 12 (with the gaps below)
Local-first and private Run the whole stack on your own hardware, with local models and retention controls 13, 14, 15

1. Multimodal AI — Shipped

Capability Evidence Limits the copy must respect
Voice and video notes recorded in chat, with a consent step apps/claw-frontend/src/components/chat/voice-video-recorder.tsx, media-recording-consent-dialog.tsx —
Resumable chunked upload apps/claw-file-service/.../managers/chunked-upload.manager.ts Files over 4 MB go in chunks; a session lasts 24 h
Transcription through a queue, routed to a model that can listen apps/claw-file-service/.../managers/transcription.manager.ts (RabbitMQ FILE_TRANSCRIBE_*) OpenAI and Gemini adapters; audio capped at 12 MB
Helper vision: a vision model describes an image for a text-only model apps/claw-chat-service/.../managers/vision-helper.manager.ts Paid plans only
Per-model modality routing; AUTO ranks by modality fit apps/claw-routing-service/.../utilities/modality-fit.utility.ts, cloud-router-candidates.utility.ts —
Videos reach every model (probe, transcribe, key frames) apps/claw-file-service/.../managers/video-processing.manager.ts, apps/claw-chat-service/.../managers/video-delivery.manager.ts Video length is plan-gated
An attachment sent with no text is answered, in chat and every lab apps/claw-chat-service/.../utilities/attachment-only-turn.utility.ts —
Media features are plan-gated where they execute; transcription and vision are metered ADR-122; transcription-meter.manager.ts —

Decisions: ADR-120, ADR-122.

2. Files from chat — Shipped

Capability Evidence Limits
The AI writes PDF (typeset by Typst), Word, Excel, PowerPoint and Zip bundles — plus CSV, HTML, Markdown, text and JSON apps/claw-file-generation-service/src/modules/file-generation/adapters/ Spreadsheet cells never run as formulas
The AI names its files from its own title, in any language utilities/file-identity.utility.ts —
Daily AI-file allowance per plan, refused before the model writes chat-execution.manager.ts → auth features/reserve Numbers in docs/business/plan-allowances.md; exports never count
Download any answer as MD, TXT, HTML, DOCX, PDF, XLSX, PPTX or ZIP with no model call apps/claw-frontend/src/components/chat/answer-export-menu.tsx —

Decisions: ADR-105, ADR-107, ADR-108, ADR-109, ADR-110, ADR-111.

3. Smart attachments — Shipped

Capability Evidence Limits
Archives expand as a tree: ZIP, 7z, RAR/RAR5, TAR, GZIP, BZIP2, XZ apps/claw-file-service/src/common/utilities/seven-zip.utility.ts (7-Zip WASM; ZIP via node-stream-zip) —
Password-protected archive: retry the password in the chat file-archive.controller.ts POST :id/archive-password; archive-attachment-card.tsx 3 attempts
Drop files anywhere on the chat panel; send with no text apps/claw-frontend/src/components/chat/chat-panel-dropzone.tsx —
Owner-only downloads that expire after an hour FileGenerationOwnerGuard, FILE_ASSET_TTL_MS AI-generated files only, not uploads; an expired file can be rebuilt
Every upload is virus-scanned (ClamAV) and refused if the scanner is down FilesService.runSecurityChecks → ClamavClient.scan Operators can disable with CLAMAV_ENABLED

Decisions: ADR-104, ADR-114.

4. Narrated AI research and crawling — Shipped

Capability Evidence Limits
An AI plans each turn's web work and narrates every step; the log survives a refresh apps/claw-chat-service/.../services/research-gate.service.ts, research-orchestrator.manager.ts —
Every URL in a message is opened, not searched detectPromptUrls Up to 10 URLs per message
Site crawl apps/claw-research-service/.../site-crawl.manager.ts Hard ceiling 200 pages; default 20
Fetch escalation: official API → plain HTTP → TLS impersonation → headless browser → Crawl4AI → FlareSolverr → Firecrawl → reader proxy → archive snapshot apps/claw-research-service/src/modules/fetch/constants/fetch-strategy.constants.ts The three sidecars are off by default (compose profile + admin switch)
robots.txt is respected — a Disallow refuses the fetch RobotsPolicyService in fetch.service.ts —
Every configured search provider is queried and merged search-execution.service.ts Brave, Exa, Firecrawl, Ollama web, SearXNG, SerpAPI, Tavily — as configured

Decisions: ADR-091, ADR-092, ADR-098, ADR-121.

5. Orchestration labs — Shipped

Ten orchestration modes: Compare plus nine labs — Consensus, Escalation, Repair, Decompose, Best-of-N, Verify, Pipeline, Cost Ensemble, Role Pack.

Capability Evidence Limits
Compare 2–5 models; a judge ranks every lane in one comparative call compare-judge.manager.ts, parallel-execution.manager.ts —
Consensus, escalation and the other labs consensus-execution.manager.ts, escalation-chain.manager.ts Which labs a plan unlocks is in the plan catalog
Every lab takes attached files and research, with the same context a chat turn gets ChatContextGatewayManager; each lab calls the research enricher Labs read files; writing files is a routing-mode feature, not a lab one

Decisions: ADR-116, ADR-118.

6. Conversation power tools — Shipped

Capability Evidence Limits
Branch a conversation from any message, with lineage (source link + branches list) chat-threads.controller.ts POST :id/branch, GET :id/lineage; message-branch-action.tsx, thread-lineage-bar.tsx (ADR-130) No merge-back; lineage lists ≤50 direct branches; branches made before 2026-09-29 have no lineage
Quote a selection from any message into the next question quote-fields.dto.ts quotes on POST /chat-messages; selection-quote-button.tsx, composer-quote-chips.tsx (ADR-131) Messages only (not citations, files or reports yet); at most 3 quotes of 2,000 chars
Try an answer again with another model or AUTO; edit a question in a new branch regenerate-message.dto.ts, branch-thread.dto.ts cut; regenerate-with-model.tsx, use-edit-in-branch.ts (ADR-132) Edit-in-branch prefills the question and does not send; no send-to-lab or continue yet
Inline citations: [n] in a researched answer opens its source stored-citations.utility.ts; remark-citations.ts, citation-link.tsx (ADR-133) Main chat only; answers before 2026-09-30 stay plain; only http(s) sources open
"Remember this / add it to my context": a model decides memory, pack or both, asks which pack, shows a saved card context-save-orchestrator.manager.ts, context-save-choice.service.ts; memory-service context-pack-chat.service.ts; context-save-card.tsx (ADR-134) Keyword fallback when no planner answers; memory type is changed on the Memory page
Edit a prompt and rerun the thread from it chat-messages.controller.ts POST :id/edit Deletes the messages below, behind a warning
Find in a conversation and jump to the message; search across threads use-in-thread-search.ts, use-jump-to-message.ts, use-global-thread-search.ts —
Export a whole conversation use-export-thread.ts Markdown only; single answers export in 8 formats (flagship 2)
Cross-thread context, on by default, own threads only useCrossThreadContext @default(true) in the chat schema Off per thread; ADR-087 predates the default flip
Prompt history with up and down use-rich-prompt-textarea.ts recallHistory —
Threads named from their opening sentence; model reasoning kept after the stream derive-thread-title.utility.ts; message-reasoning-panel.tsx Title costs no tokens

7. Read aloud — Shipped

Metered, plan-gated text-to-speech that starts playing as the first segment is ready and can be cancelled without charge. message-speech.service.ts, speech-job.manager.ts, speech-segments.utility.ts. Providers: OpenAI and Gemini. ADR-122.

8. Image generation and shared conversations — Shipped

Capability Evidence Limits
Generate images in chat: OpenAI, Gemini, xAI Grok, local Stable Diffusion WebUI and ComfyUI apps/claw-image-service/src/modules/image-generation/adapters/ Metered and plan-gated; cancelable
Shared conversation pages publish their images chat-shares/adapters/share-asset.adapter.ts The share owns copies; an optional Cloud Vision scan decides ads and indexing, it never blocks publishing

Decision: ADR-075.

9. Pay-as-you-go credit and local-currency display — Shipped

Capability Evidence
Connector credit metered on 12 surfaces: chat, compare, judge, orchestration, image, file generation, coding agent, workspace action, routing, transcription, vision helper, text-to-speech packages/shared-types/src/enums/payg-surface.enum.ts; credit-reservation.manager.ts
Prices shown in the visitor's currency; the charge settles separately apps/claw-payment-service/src/modules/display-fx/; currency-switcher.tsx
Monthly, quarterly, semiannual and yearly terms packages/shared-types/src/enums/billing-interval.enum.ts

Numbers: docs/business/. Decisions: ADR-078, ADR-097.

10. Every provider, routed well — Shipped

Capability Evidence Limits
22 usable providers: OpenAI, Anthropic, Google Gemini, DeepSeek, xAI Grok, Ollama and llama.cpp, plus 15 OpenAI-compatible presets — OpenRouter, Groq, Cerebras, SambaNova, DeepInfra, Fireworks, Together, Mistral, Moonshot (Kimi), Z.ai (GLM), Alibaba Model Studio (Qwen), Cloudflare Workers AI, Vercel AI Gateway, Perplexity Sonar, Cohere packages/shared-types/src/enums/connector-provider.enum.ts; packages/shared-utilities/src/connector-presets/connector-presets.constants.ts AWS Bedrock is in the enum but is scaffolding — do not list it
The public model catalog is the real one public-model-catalog.controller.ts; apps/claw-frontend/src/lib/models/public-models-api.ts —
AUTO routing aware of modality and context window modality-fit.utility.ts; ADR-100 —
A provider whose account is out of credit is skipped fleet-wide (shared breaker), visible to admins on /connectors provider-breaker.store.ts, provider-breaker-admin.controller.ts Key-credit preflight is OpenRouter only

Decisions: ADR-100, ADR-117, ADR-124, ADR-125.

11. Coding Agent for VS Code — Shipped (client in a separate repository)

The extension lives in its own repository, mounted as the apps/claw-coding-agent submodule, and ships as a VSIX. Server side, verified here: browser-approved PKCE sign-in (vscode-authorization.controller.ts), agent conversations kept apart from the user's own, the shared context gateway, and an organisation policy that can only narrow what the agent may do (fleet.controller.ts GET agent/organizations/policy/effective). Organisation policy is API only — no admin UI. Client-side behaviour (for example run recovery after a restart) is documented in the extension repository, not verified from this one. See Coding Agent.

12. Teams and administration — Partial

Capability Status Evidence
Admins create, activate, deactivate and re-role users; temporary passwords Shipped apps/claw-auth-service/src/modules/users/controllers/users.controller.ts
Super-administrator with escalation guards Shipped ADR-073
Plan grants with a duration (1–60 months) and a required reason Shipped plans.controller.ts; plan-grant.constants.ts
Per-user usage and subscription statistics Shipped admin-user-statistics.controller.ts
Roles and a permission matrix; pages gated by permission Shipped roles.controller.ts; permission-matrix.tsx; system roles Administrator and User, plus custom roles
Share a conversation by public link; share context packs at workspace visibility Shipped ADR-075, ADR-036

Gaps — never claim these:

Not built What exists instead
SSO (SAML/OIDC sign-in to the web app) A SAML callback in the coding-agent fleet module that creates no session and has no UI
A multi-member team account — seats, shared billing, pooled usage Each user has their own plan and quota; the Team plan is a larger per-user tier
An admin UI for organisation policy The fleet API only

These are tracked as REQ-POS-005 and REQ-POS-006 in the requirements register.

13. Observability — Shipped (admin-facing)

Capability Evidence
Status page with component uptime and incidents, for admins status-page.controller.ts; apps/claw-frontend/src/app/(portal)/observability/page.tsx
Grafana behind the admin session; Prometheus keeps 30 days ADR-113, ADR-115
Every container's log in one store; read-only ops tokens (API only) ADR-101, ADR-102
Health fan-out covers ClamAV and the scraper sidecars health.constants.ts DEPENDENCY_PROBES

The status page is not public.

14. Local-first and privacy — Shipped

Capability Evidence Limits
Local models through Ollama and llama.cpp apps/claw-ollama-service, apps/claw-llamacpp-service llama.cpp keeps one model resident
Local image generation (Stable Diffusion WebUI, ComfyUI) stable-diffusion.adapter.ts, image-execution.manager.ts —
The whole stack on your own hardware, GPU overlay picked automatically scripts/claw.sh Local AI is off by default (--local-ai)
File retention sweeps; memory pause, retention and redaction controls; memory export and import file-retention-sweeper.manager.ts; MemoryPreference; ADR-034, ADR-053 —

15. Reliability — Shipped

Capability Evidence Limits
chat-service scales horizontally; any replica serves any stream (Redis pub/sub plus a replay buffer) chat-stream-bus.service.ts; ADR-077 Replicas default to 1
A dropped stream resumes from Last-Event-ID chat-stream.controller.ts Replay holds the last 100 frames; a full page refresh gets the finished answer by polling
Stop works across replicas stream-cancellation.service.ts —
Rolling one-replica-at-a-time deploys scripts/deploy-prod.sh rolling_recreate_service —

Decision: ADR-076.

16. ClawAI Threads — Planned

Research-backed publications and community workflows are specified in the Threads product spec and ADR-159. Implementation is in progress; do not describe Threads as shipped until its generation, publication, safety, discovery, and QA paths are verified. The ranked improvement backlog (release blockers first) is in Threads improvement backlog.

The Threads Board (signed-in browse and search at /board, no author names on cards, noindex, language filter defaults to the UI locale) and its public read-only twin for guests at /threads/board (same smart search, indexable, every action shows a sign-in prompt) are code in progress and not verified live; see the Threads product spec and ADR-178.


Known documentation drift found by this audit

  • ADR-087 says cross-thread context is off by default; it has been on by default since migration 20260917000000_cross_thread_context_on_by_default.
  • The Team plan's seeded description ("Shared workspaces and a large pooled allowance") promised pooling that does not exist — fixed 2026-09-29 (migration 20260929100000_team_plan_description_drops_pooling_claim, seed text now "A large monthly allowance for heavy daily use."); the feature itself is still REQ-POS-005.

Clone this wiki locally