Repository navigation
Flagship Features
Canonical source:
docs/02-business-product/flagship-features.md— this page is rendered from it on every publish; edit the source.
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.
| 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 |
| 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
|
— |
| 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.
| 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
|
| 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.
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 |
| 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 |
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.
| 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.
| 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.
| 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.
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.
| 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.
| 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.
| 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 |
— |
| 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.
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.
-
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 (migration20260929100000_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.
ClawAI Wiki · source-controlled under wiki/ · generated/mirrored from the current repository knowledge layer.
ClawAI Wiki
Product
- Product-Vision
- Flagship-Features
- Business-Overview
- Requirements-Register
- Drift-Log
- Runtime-Managed-Connector-Providers
- Threads
- ADR-Index
Architecture
- System-at-a-Glance
- Architecture-Map
- System-Architecture
- Message-Flow
- End-to-End-Data-Flow
- Routing-Engine
- Event-Bus
- Security-Architecture
Platform
- Backend-Services
- Frontend-Architecture
- Shared-Packages
- Database-Reference
- API-Reference
- Provider-Catalog
- Memory-and-Context-Architecture
- File-Support-Architecture
- Research-and-Web-Crawling
Runtime & Ops
- Docker-Guide
- Nginx-Reference
- CI-CD-Pipeline
- Logging-and-Observability
- Operational-Runbooks
- Troubleshooting
Quality
Engineering OS
- AI-Native-Engineering-OS
- Generated-Manifests
- Rules-Catalog
- Skills-Catalog
- Context-Layer
- Engineering-Memory
- Tooling-and-Automation
- Scripts-and-Operations
- ESLint-and-Architecture-Enforcement
- Extended-Work-Skills
Agents
Reference