Documentation Index
Fetch the complete documentation index at: https://docs.nanoclaw.dev/llms.txt
Use this file to discover all available pages before exploring further.
Phase A of the v2 documentation sprint — bringing the pages every new user lands on into alignment with the v2 rewrite. All claims verified directly against upstream source (
src/db/schema.ts, src/types.ts, src/config.ts, container/Dockerfile, src/delivery.ts) rather than upstream docs/ (which includes a stale architecture.md draft and a db-session.md that omits the container_state table).Rewritten
introduction.mdx: v2 positioning — two-DB session IO, entity model, Node + Bun runtime split, OneCLI-only credentials. Token count updated to ~127k (~64% of context window). Source file table aligned withsrc/as of v2.0.1.quickstart.mdx: one-commandbash nanoclaw.shflow replaces the v1 fork-and-clone + Claude Code +/setupdance. Documents the three-level setup log contract (terminal,logs/setup.log, per-step raw logs) and the Anthropic OAuth exception.installation.mdx: simplified to system requirements + platform prerequisites +bash nanoclaw.sh. Service management retained (launchd / systemd / WSL wrapper). File-structure tree updated fordata/v2-sessions/,store/v2.db, and the per-sessioninbound.db+outbound.dblayout.integrations/overview.mdx: reframed around channels (13+) and providers (4), both living on dedicated branches (channels,providers). Expanded channel list to cover Teams, iMessage, Matrix, Google Chat, Webex, Linear, GitHub, WeChat, Resend, and the local/clawCLI.features/customization.mdx: full v2 rewrite — verified trigger pattern code againstsrc/config.ts, replaced nonexistentPOLL_INTERVAL/SCHEDULER_POLL_INTERVALwith actualACTIVE_POLL_MS/SWEEP_POLL_MSfromsrc/delivery.ts, documented per-wiring engage config (engage_mode,sender_scope,ignored_message_policy,session_mode), kept OneCLI / legacy credential proxy as version tabs.
v2 update banners
Added<Warning> banners to pages pending a v2 rewrite (channel adapters moved to a single channels branch in v2, not per-channel skill/* branches):integrations/whatsapp.mdx,telegram.mdx,discord.mdx,slack.mdx,gmail.mdx,x-twitter.mdx,skills-system.mdxintegrations/ollama.mdx(Ollama now lives on theprovidersbranch —/add-ollama-provideror/add-ollama-tool)
Token count sync
integrations/skills-system.mdx: 43.8k → 127kCLAUDE.md: maintenance note updated to reflect the v1.2.53 → v2.0.0 jump
Merged PR #187 — comprehensive rewrite of concepts, advanced, api, and features pages for the v2.0.0 ground-up architectural rewrite (qwibitai/nanoclaw#1919). Closed PRs #184, #185, #186 as superseded.
Updated
- Two-database session model:
inbound.db(host writes) +outbound.db(container writes) replace stdin/stdout piping and filesystem IPC — documented acrossconcepts/architecture,advanced/ipc-system,advanced/container-runtime - Entity model: agent groups, messaging groups, wirings (many-to-many), users, and roles replace the v1 group/channel model — new
concepts/groupsandapi/group-management - Bun-based agent runner: runs TypeScript directly (no compilation), shared source via read-only bind mount,
tinias PID 1 —concepts/containers,advanced/container-runtime - Permissions system: engage modes (pattern/mention/mention-sticky), sender scope (all/known), unknown sender policies (strict/request_approval/public), approval flows —
concepts/security,advanced/security-model - Delivery system: two-poll architecture (active 1s, sweep 60s) with delivery action registry —
features/messaging - Task model: tasks as
messages_inrows with cron recurrence and series tracking —concepts/tasks,features/scheduled-tasks,api/task-scheduling - OneCLI Agent Vault is the sole credential path; legacy credential proxy removed —
advanced/security-model,api/configuration - Changelog: v2.0.0 release entry
Archived
- v1 docs frozen at branch
v1-docs(public-facing, docs only) and tagv1-docs-final(full repo snapshot)
Updated
- Token count: Updated from 43.7k to 43.8k in introduction and skills-system pages
- Configuration: Added
ONECLI_API_KEYenv var to OneCLI Agent Vault tab - Container SDK config: Documented
allowDangerouslySkipPermissions: trueflag in containers page - Changelog: Added v1.2.53 product release entry
Updated
- Token count: Updated from 43.4k to 43.7k in introduction and skills-system pages
- Changelog: Added v1.2.48–v1.2.52 product release entries
- Skills system: Added
/add-karpathy-llm-wikito upstream skills listing; added/migrate-nanoclawand/migrate-from-openclawto operational skills - Troubleshooting: Added session artifact auto-pruning section with retention policy table
- Architecture: Documented auto-compact threshold at 165k tokens
Triaged 3 automated Mintlify PRs (#175–#177). Merged #177 (most comprehensive), closed #175 and #176 (superseded). Cherry-picked unique content from closed PRs.
Updated
- Store mount (rw): Documented
store/read-write mount for main agent across containers, container-runtime, security, security-model, groups, customization pages requiresTriggerparameter: Added toregister_groupMCP tool description in containers and messaging pages- Reply context: Updated architecture database section with
reply_to_message_id,reply_to_message_content,reply_to_sender_namecolumns isMainpreservation: Updated register_group handler snippet in messaging pageCONTAINER_MAX_OUTPUT_SIZE: Added truncation behavior note to configuration reference- Token count: Updated from 43.3k to 43.4k in introduction and skills-system pages
- Changelog: Added v1.2.46 and v1.2.47 product release entries
quickstart: Added breaking change changelog scan to/update-nanoclawstep listintegrations/skills-system: Added “Breaking change detection” subsection documenting the[BREAKING]entry scan and migration skill prompts
Fixed
concepts/containers: Removed incorrect “15-second exec timeout” claim fromstopContainer— the source usesexecSyncwith no timeout, falling back toSIGKILLon failure
Updated
integrations/skills-system: Added/add-macos-statusbarutility skill to upstream skills listingchangelog/index: Added v1.2.45 release entry with new contributors and skill
Reviewed and triaged 8 automated Mintlify PRs (#161–#168). Merged 4, closed 4 (superseded or stale token counts). Validated all changes against upstream source code at v1.2.46. Deleted 11 stale branches (4 PR + 7 orphan).
Updated
- OneCLI version labels: Corrected Agent Vault version from v1.2.22+ to v1.2.35+ across 8 pages, added tabbed 401 troubleshooting
- Ollama integration: Added 4 admin tools (
ollama_pull_model,ollama_delete_model,ollama_show_model,ollama_list_running) gated byOLLAMA_ADMIN_TOOLS=true, noted Ollama removal from core - Stale session recovery: Added auto-recovery docs to troubleshooting and container-runtime lifecycle, plus manual sqlite3 fallback
- Container runtime: Documented
hostGatewayArgs(),--add-hostflag,curl/gitin container image - SDK options: Added
settingSourcesandsenderparameter docs - Reply context: Documented reply/quoted message support —
reply_toattribute,<quoted_message>element, 4 newNewMessagefields, DB migration - Token count: Updated from ~42.4k to ~43.3k (22%)
- v1.2.43 changelog: Added npm audit dependency fixes bullet
Merged automated health check PR #158 (4 of 5 fixes verified against upstream). Corrected the remaining inaccurate claim in a follow-up (#159).
Fixed
api/message-routing: Removed phantomchannel?: ChannelTypeparam fromformatOutboundsignaturefeatures/scheduled-tasks: Updated TIMEZONE snippet to currentresolveConfigTimezone()with IANA validation and UTC fallbackadvanced/container-runtime: FixedstopContainercode from asyncexec()callback to actual sync try/catch patternapi/configuration: Addedtraceas validLOG_LEVELvalue (used by container runner for verbose output)features/messaging: Corrected stalesrc/session-commands.tsreference tosrc/index.ts, and fixed misleading description of whatindex.tsdoes
Updated
advanced/remote-control: Fixed inaccurate security section — the remote control URL requires Anthropic sign-in, not just URL secrecy. Based on feedback from Gavriel Cohen.
Reviewed and triaged 27 automated Mintlify PRs (#92–#151). Merged 6, consolidated 7 into a single verified PR (#153), closed 15 (superseded, fabricated, or conflicting). Validated all changes against upstream source code at v1.2.42. Deleted 41 stale
mintlify/* branches.Updated
- OneCLI rebrand: Renamed “OneCLI Gateway” to “OneCLI Agent Vault” across 15 pages, updated URL to
github.com/onecli/onecli. Code snippets preserved as-is (upstream source still uses “gateway” in code). - Message limits: Corrected 200-message cap to
MAX_MESSAGES_PER_PROMPT(default 10) across messaging, architecture, and configuration pages - Dependencies: Removed phantom deps (
pino,pino-pretty,yaml,zod), updatedbetter-sqlite3to11.10.0andcron-parserto5.5.0 - Token count: Updated from ~41.3k to ~42.4k
- Mount property: Fixed
containerConfig.mounts→additionalMountswithhostPath - SQL column: Fixed
trigger→trigger_patternin troubleshooting query - Product changelog: Added entries for v1.2.35 through v1.2.42
New sections
- Telegram forum topics (
integrations/telegram) —message_thread_idtracking and automatic topic routing - Task scripts cost guidance (
concepts/tasks,features/scheduled-tasks,api/task-scheduling) — API credit awareness, testing guidance, when-not-to-use advice - Auth 401 troubleshooting (
advanced/troubleshooting) — short-lived vs long-lived OAuth tokens,claude setup-tokenfix - K8s image GC (
advanced/troubleshooting) — Rancher Desktop kubelet garbage collection known issue - Text-style formatting (
features/messaging) — corrected WhatsApp link rendering and Telegram Markdown v1 preservation - Security fixes (
advanced/container-runtime,advanced/security-model,concepts/security) —stopContainername validation, mount path colon rejection,isMainpreservation, allowlist caching behavior - Configuration: Added
MAX_MESSAGES_PER_PROMPTandLOG_LEVELenvironment variables - Skills: Added
/init-onecli(operational) and/add-emacs(upstream)
Closed as invalid
- #150: Fabricated runtime-based credential routing — no such feature exists in upstream
- #149: Wrong
context_modedefault (groupinstead of actualisolated) - #134: Promoted skill-only
OLLAMA_ADMIN_TOOLSenv var to core config
Reviewed and triaged 43 automated Mintlify PRs (#86–#128). Merged 8, closed 30 (superseded or inaccurate), kept 5 pending v1.2.35 release. Validated all changes against upstream source code at v1.2.34.
New sections
- Task scripts (
concepts/tasks,features/scheduled-tasks,api/task-scheduling) — pre-execution bash scripts withwakeAgentJSON contract,ScriptResulttype, execution flow - Per-group trigger patterns (
features/messaging,concepts/groups,api/configuration) — custom trigger words per group instead of global@{ASSISTANT_NAME} - CLAUDE.md template system (
concepts/groups,api/group-management) — automatic template copy during registration withisMain-based selection - Channel-formatting skill (
features/messaging,api/message-routing,integrations/slack,integrations/skills-system) — per-channel text transformation table - WhatsApp pairing code auth (
integrations/whatsapp) — tabbed QR code vs pairing code with phone number formatting rules - loginctl linger (
installation,quickstart,advanced/troubleshooting) — systemd user service persistence after SSH logout - Mount-allowlist preservation (
quickstart,advanced/troubleshooting) —/setupskips overwrite of existing config
Updated
- Container base image: Fixed
node:24-slim→node:22-slimacross 6 pages (v1.2.22 changelog never upgraded to Node 24) - Timezone configuration: Added
resolveConfigTimezone()with IANA validation and UTC fallback across 4 pages - Token count: Updated from ~39.8k to ~41.3k in introduction and skills system pages
- Agent-runner cache: Documented mtime-based refresh instead of one-time copy
- Customization: Removed phantom
MAIN_GROUP_FOLDERconstant - Product changelog: Added entries for v1.2.24 through v1.2.34
Closed as invalid
- #125: Fabricated upstream PR #1346 as “stdin secrets / remove OneCLI” — actual PR is macOS menu bar status indicator
- #119: Destructively removed credential proxy legacy tabs that are intentionally maintained
- #88: Incorrectly documented
senderas IPCsend_messageparameter (it’s aNewMessagefield) - #89: Falsely claimed Telegram is a core channel on main (it lives in
nanoclaw-telegramfork)
Merged 3 automated PRs syncing docs with v1.2.23 upstream changes (#82, #84, #85). Closed #83 (would have removed legacy credential proxy tabs).
Updated
- Legacy credential proxy tabs: Updated to reference
/use-native-credential-proxyskill instead of deletedsrc/credential-proxy.tsfile path - Skills system: Added
/use-native-credential-proxyto upstream skills list - Architecture: Fixed startup sequence order (OneCLI agent sync before Remote Control restore), enriched database schema descriptions
- IPC system: Documented in-container poll interval (500ms), removed undocumented
senderfield - Containers: Fixed
.envshadow mount to note conditional existence check, clarified container stop timeout cascade - Configuration and installation: Added
onecli --helpreferences - Introduction and skills system: Updated token count from ~41k to ~39.8k
- Product changelog: Updated v1.2.23 entry with credential proxy skill and dead code cleanup
Added tabbed documentation for OneCLI Agent Vault secret injection (v1.2.22+) alongside legacy credential proxy across 9 pages. Added OneCLI as installation prerequisite.
Pages updated
- Security overview and deep dive: Credential handling sections now use tabs for OneCLI Agent Vault vs Credential Proxy (legacy)
- Configuration: Environment variables, example
.env, and security notes updated with tabs - Container runtime: Container arguments code and key flags documented for both methods
- Architecture: Startup sequence and container image updated
- Installation: OneCLI added as prerequisite #5,
@onecli-sh/sdkdependency - Containers, Ollama, Skills examples: Passing references updated to version-neutral language
- Customization: Mount allowlist format updated (
allowedPaths→allowedRootswith per-root read/write control) - Product changelog: Added v1.2.22 release entry and v1.2.0 scheduled task fix
Audited documentation in the upstream NanoClaw repo against the docs portal and submitted fixes via qwibitai/nanoclaw#1388.
Updated
- Installation, introduction, creating-skills: Added Windows (WSL2) to all platform references — NanoClaw supports macOS, Linux, and Windows via WSL2
- Introduction: Fixed token count from 34.9k to ~41k (matches auto-generated
repo-tokens/badge.svg) - CLAUDE.md: Added guidance for automated PR triage, changelogs, upstream PR workflow, and token count source of truth
Upstream PR (#1388)
- Added
docs.nanoclaw.devlink to README header - Populated CHANGELOG.md with all releases from v1.1.0 through v1.2.21
- Updated
docs/REQUIREMENTS.md— multi-channel support, current RFS, WSL2 deployment - Updated
docs/SECURITY.md— channel-neutral language - Updated
docs/DEBUG_CHECKLIST.md— Docker (default) commands, channel-neutral - Added
docs/README.md— index pointing to docs portal as authoritative source
Reviewed, triaged, and consolidated 10 automated Mintlify PRs (#60–#69). Verified all changes against NanoClaw source code, excluded 6 incorrect changes, and resolved the final 2 open issues.
New pages
- Claw CLI (
features/cli) — documents the/clawPython CLI for running agents from the command line (#64)
New sections
- Apple Container vs Docker (
advanced/container-runtime) — when to use each runtime, key differences table, switching instructions (closes #50) - Container internals (
concepts/containers) — allowed tools table, conversation archival, global memory injection, additional directory auto-discovery - Slack message formatting (
integrations/slack) — mrkdwn syntax differences and/slack-formattingskill - 200-message history cap (
features/messaging) — documents the default query limit on message retrieval (closes #49) - Opt-in diagnostics (
concepts/security,quickstart) — PostHog telemetry, consent flow, permanent opt-out (#68)
Updated pages
- Skill system — updated from 3 to 4 skill types (feature, utility, operational, container) across 6 pages
- Skills documentation — added utility skill structure, creation steps, and
/clawas example - Architecture — fixed database table names (
scheduled_tasks,task_run_logs),isScheduledTaskflag, stdin description, startup sequence expansion - Message routing — added
syncGroupsto Channel interface - Configuration — fixed DATA_DIR description (runtime data, not legacy)
- Skills system — added missing skills (
/get-qodo-rules,/qodo-pr-resolver,/x-integration,/add-compact,/add-parallel,/slack-formatting) - Contributing — removed
/clearfrom RFS (exists as/add-compact), updated to 4 skill types - SEO descriptions — improved frontmatter across 10 pages for better search discoverability
Fixed
- 13-page factual error sweep against source code (#67) — credential proxy terminology, IPC operations, container mount behavior, removed phantom MCP tool
- Consolidated overlapping fixes from 6 PRs into 2 clean PRs (#70, #71), closing 7 automated PRs as superseded
- Excluded incorrect automated changes: Channel Factory rename, fabricated commit reference, speculative formatting table, unverified frontmatter claims
Housekeeping
- Product changelog: added v1.2.20 (ESLint) and v1.2.21 (diagnostics) entries, fixed version ordering
- Resolved all open issues — 0 issues remaining
- Token count updated from “under 35k” to “~41k”
Ran a full docs-gap analysis against the upstream codebase and resolved 13 of 15 content-gap issues. Two low-priority items remain open (#49, #50).
New pages
- Ollama integration (
integrations/ollama) — MCP server architecture, local model setup, third-party endpoints - Voice transcription (
features/voice-transcription) — Whisper API (cloud) and whisper.cpp (local) with comparison table - Image vision (
features/image-vision) — Multimodal image understanding for WhatsApp - PDF reader (
features/pdf-reader) — Text extraction via poppler-utils - X (Twitter) integration (
integrations/x-twitter) — Host+agent architecture, OAuth setup - Parallel AI (
integrations/parallel-ai) — Web research MCP servers (quick search + deep research)
Updated pages
- Skills system — Documented channel fork architecture (5 fork repos), updated merge workflows, separated upstream vs fork skills
- Installation — Added Windows (WSL) support across all sections: prerequisites, Docker Desktop WSL 2 backend, troubleshooting
- Security — Documented sender allowlist: trigger/drop modes, per-chat overrides, file format
- Messaging — Added
/compactsession command and authorization rules - Telegram — Expanded agent swarm section with installation and per-bot config
- WhatsApp — Added skills summary table and emoji reactions section
- API reference — Fixed
formatMessagessignature (addedtimezoneparam and<context>header) - Configuration — Added
OLLAMA_HOST, expandedANTHROPIC_BASE_URLandSENDER_ALLOWLIST_PATHdocs
Housekeeping
- Deleted 6 stale
mintlify/*branches - Created tracking issues for 3 remaining low-priority gaps (#49, #50)
Corrected 30+ inaccuracies across 12 documentation pages by auditing against the NanoClaw source code.
- Fixed credential proxy documentation — removed incorrect claims about hot-swapping and auto-refresh
- Corrected container runtime detection, base image references, and stdin secrets pattern
- Updated task scheduling docs with correct table names and interfaces
- Added missing
.envshadow mount andCREDENTIAL_PROXY_HOSTdocumentation - Fixed
syncGroupMetadata→syncGroupsacross IPC docs
- Updated error log examples to show prompt redaction — input metadata only, no full prompt content
- Added log privacy section to security docs
- Corrected
docker stopgrace period from 15s to 1 second across all references
- Fixed remote-control commands documentation
- Deduplicated IPC docs
- Added
update_taskto auth tables in API reference
- Added automatic sidebar tag management via Mintlify workflows (
UPDATEDandNEWtags) - Replaced all ASCII directory trees with Mintlify
<Tree>component across the site - Tags auto-clean after 2 weeks via weekly audit workflow
Fixed rendering issues and remaining WhatsApp-as-default framing reported in issues #14–#18.
- Documented
/capabilitiesand/statuscontainer-agent skills as new pages - Synced docs with source code v1.2.17 — corrected mount allowlist format, interval drift handling, credential proxy behavior, and IPC config
- Documented IPC task snapshot refresh and
update_taskoperation
Fixed stale documentation for credential proxy, database path, mount allowlist, and task lifecycle to match current source code.
- Added Mintlify workflow to sync docs automatically on upstream code changes
- Added weekly docs audit and skill branch documentation workflows
- Applied NanoClaw branding with custom theme colors, fonts, and SEO metadata
- Switched theme from Aspen to Mint for better sidebar typography
- Cleaned up introduction page, footer, and removed callout CSS override
Launched docs.nanoclaw.dev — the NanoClaw documentation site built with Mintlify.
- Audited all content against v1.2.14 codebase
- Added Remote Control and Docker Sandboxes pages
- Made quickstart channel-agnostic (removed WhatsApp-as-default bias)
- Updated skills documentation to reflect git-branch architecture
- Fixed navigation structure with logical page ordering
- Added Mintlify skill for consistent docs development