docs: Add mintlify docs#2189
Conversation
Updated the README to reflect the new project name and removed references to the Mintlify Starter Kit.
feat: added more channels
feat: add Chinese (zh) internationalization for documentation
* feat: add comprehensive IronClaw documentation site - Full Mintlify docs site covering agents, channels, tools, security, install, and UI reference - Screenshot pipeline with Playwright tests for all major web UI pages - Architecture diagrams (Excalidraw + PNG/SVG) for security, secrets, sandbox, and system overview - Provider docs for Anthropic, OpenAI, Ollama, NearAI, Moonshot, and Tinfoil - Platform guides for Linux, macOS, Windows (native + WSL2), Raspberry Pi, VPS, and Docker - Operations reference for API, logging, orchestrator, and WebSocket/SSE - Help section with FAQ and troubleshooting Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add building a tool extension guide * chore: first round removing files * chore: slowly merging * migrated routines, memory, jobs, skills, and more * chore: remove files * chore: remove tests * feat: added new tools * chore: removed agents file as we have skills --------- Co-authored-by: Corey Osman <corey@logicminds.biz> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Matias Benary <matiasbenary@gmail.com> Co-authored-by: Guillermo Alejandro Gallardo Diez <gagdiez@iR2.local>
Co-authored-by: Guillermo Alejandro Gallardo Diez <gagdiez@iR2.local>
* feat: add tutorials for Google APIs (Docs,Drive,Sheet,Slides) * feat: add tutorials for Gmail * chore: clean google sheets * chore: add zh translations --------- Co-authored-by: Matias Benary <matiasbenary@gmail.com> Co-authored-by: Guillermo Alejandro Gallardo Diez <gagdiez@iR2.local>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR migrates user-facing documentation from the external ironclaw-docs repo into this monorepo and sets it up to be served via Mintlify.
Changes:
- Adds a Mintlify
docs.jsonnavigation/config and supporting ignore files. - Introduces a large set of new docs pages (install, platforms, capabilities, channels, ops, agents) under
docs/(anddocs/drafts/). - Updates README files and CONTRIBUTING to point contributors/users at the new docs structure and removes older standalone docs markdown files.
Reviewed changes
Copilot reviewed 63 out of 187 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/drafts/providers/index.mdx | Provider overview + comparison content (draft). |
| docs/drafts/providers/anthropic.mdx | Anthropic provider setup content (draft). |
| docs/drafts/platforms/windows-wsl2.mdx | Windows WSL2 platform guide (draft). |
| docs/drafts/platforms/windows-native.mdx | Native Windows platform guide (draft). |
| docs/drafts/platforms/vps.mdx | VPS hardening guide (draft). |
| docs/drafts/platforms/raspberry-pi.mdx | Raspberry Pi deployment guide (draft). |
| docs/drafts/platforms/macos.mdx | macOS install + launchd guide (draft). |
| docs/drafts/platforms/linux.mdx | Linux install + systemd/security guide (draft). |
| docs/drafts/platforms/docker-compose.mdx | Docker Compose production deployment guide (draft). |
| docs/drafts/ops/websocket-sse.mdx | WebSocket/SSE streaming reference (draft). |
| docs/drafts/ops/orchestrator.mdx | Orchestrator internal API reference (draft). |
| docs/drafts/ops/logging.mdx | Logging/monitoring + SSE logs reference (draft). |
| docs/drafts/install/vps.mdx | VPS installation walkthrough (draft). |
| docs/drafts/install/updating.mdx | Upgrade / rollback procedures (draft). |
| docs/drafts/install/uninstalling.mdx | Uninstall instructions (draft). |
| docs/drafts/install/nearai-cloud.mdx | Managed hosting overview (draft). |
| docs/drafts/install/local.mdx | Local install steps across OSes (draft). |
| docs/drafts/install/index.mdx | Install landing page (draft). |
| docs/drafts/install/docker.mdx | Docker-based install walkthrough (draft). |
| docs/drafts/help/troubleshooting.mdx | Troubleshooting guide (draft). |
| docs/drafts/help/faq.mdx | FAQ content (draft). |
| docs/drafts/agents/skills-format.mdx | SKILL.md schema + examples (draft). |
| docs/drafts/agents/routines.mdx | Routines overview (draft). |
| docs/drafts/agents/memory-search.mdx | Hybrid search explanation (draft). |
| docs/drafts/agents/index.mdx | Agent architecture overview (draft). |
| docs/drafts/agents/clawhub.mdx | ClawHub registry usage (draft). |
| docs/docs.json | Mintlify site config + navigation. |
| docs/channels/webhook.mdx | HTTP webhook channel docs. |
| docs/channels/telegram.mdx | Telegram channel docs. |
| docs/channels/signal.mdx | Signal channel docs stub. |
| docs/channels/overview.mdx | Channels landing page. |
| docs/channels/local.md | Local channel (TUI + Web Gateway) docs. |
| docs/channels/discord.mdx | Discord channel docs. |
| docs/capabilities/skills.mdx | Skills capability docs. |
| docs/capabilities/sandboxed-tools.mdx | WASM sandboxed tools capability docs. |
| docs/capabilities/routines/reactive.mdx | Reactive routines docs. |
| docs/capabilities/routines/heartbeat.mdx | Heartbeat docs. |
| docs/capabilities/routines/cron.mdx | Cron routines docs. |
| docs/capabilities/overview.mdx | Capabilities landing page. |
| docs/capabilities/memory/memory.mdx | Persistent memory docs. |
| docs/capabilities/memory/identity.mdx | Identity files docs. |
| docs/capabilities/jobs/self-repair.mdx | Self-repair/stuck jobs docs. |
| docs/capabilities/jobs/jobs.mdx | Jobs + parallel execution docs. |
| docs/TELEGRAM_SETUP.md | Removes legacy Telegram setup doc (superseded). |
| docs/LLM_PROVIDERS.md | Removes legacy LLM providers doc (superseded). |
| docs/.mintignore | Excludes drafts/internal/plans from Mintlify build. |
| docs/.gitignore | Ignores node_modules and env screenshot artifacts. |
| README.zh-CN.md | Updates doc links to new structure. |
| README.ru.md | Updates doc links to new structure. |
| README.md | Updates doc links to new structure. |
| README.ko.md | Updates doc links to new structure. |
| README.ja.md | Updates doc links to new structure. |
| CONTRIBUTING.md | Adds guidance for documenting changes + Mintlify commands. |
| .claude/skills/mintlify-docs | Adds Claude skill link for Mintlify docs guidance. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Allow Web Gateway | ||
| sudo ufw allow 3000/tcp | ||
|
|
||
| # Allow HTTP Webhook (if using) | ||
| sudo ufw allow 8080/tcp |
There was a problem hiding this comment.
This firewall guidance contradicts other docs in this PR that warn against exposing the Web Gateway/HTTP Webhook directly to the internet (and recommend a TLS-terminating reverse proxy). Exposing 3000/8080 publicly increases attack surface and risks accidental unauthenticated access if tokens/secrets are weak or misconfigured. Prefer binding services to localhost and opening only 80/443 (reverse proxy), or at minimum restrict 3000/8080 to trusted source IPs/VPN interfaces.
| # Allow Web Gateway | |
| sudo ufw allow 3000/tcp | |
| # Allow HTTP Webhook (if using) | |
| sudo ufw allow 8080/tcp | |
| # Allow reverse proxy only | |
| sudo ufw allow 80/tcp | |
| sudo ufw allow 443/tcp | |
| # Do NOT expose the Web Gateway (3000) or HTTP Webhook (8080) directly to the internet. | |
| # Keep them bound to localhost and route traffic through the TLS-terminating reverse proxy. |
| launchctl unload ~/Library/LaunchAgents/ai.ironclaw.service.plist | ||
| launchctl load ~/Library/LaunchAgents/ai.ironclaw.service.plist |
There was a problem hiding this comment.
The LaunchAgent filename here doesn't match the macOS setup doc in this PR, which instructs creating ~/Library/LaunchAgents/ai.ironclaw.plist. This would cause the update instructions to fail if users followed the macOS guide. Align the filename across macOS install/update/uninstall docs (either consistently use ai.ironclaw.plist or consistently use ai.ironclaw.service.plist).
| launchctl unload ~/Library/LaunchAgents/ai.ironclaw.service.plist | |
| launchctl load ~/Library/LaunchAgents/ai.ironclaw.service.plist | |
| launchctl unload ~/Library/LaunchAgents/ai.ironclaw.plist | |
| launchctl load ~/Library/LaunchAgents/ai.ironclaw.plist |
| docker run -d \ | ||
| --name ironclaw \ | ||
| -v ~/.ironclaw:/home/ironclaw/.ironclaw \ | ||
| # enabling this mount will allow the container to control the docker daemon, use at own risk | ||
| # -v /var/run/docker.sock:/var/run/docker.sock \ | ||
| -p 3000:3000 \ | ||
| -p 8080:8080 \ | ||
| # Pin to a specific IronClaw version for reproducible, rollback-friendly deployments. | ||
| nearai/ironclaw:latest |
There was a problem hiding this comment.
This example publishes ports 3000/8080 on all interfaces and also says to 'pin to a specific version' while using :latest. For safer defaults and to match other docs in this PR, bind to localhost (e.g., 127.0.0.1:3000:3000) and either use a concrete version tag or remove the pinning comment. This reduces accidental public exposure and improves reproducibility.
| # Reference it in your .env | ||
| IRONCLAW_MASTER_KEY=$(cat ~/.ironclaw/master.key) |
There was a problem hiding this comment.
This suggests using command substitution inside an .env file. If IronClaw loads .env via a dotenv parser (common), $(...) will not be evaluated and the literal string may be used, breaking secrets decryption. Recommend instructing users to paste the actual key value into .env (as a plain IRONCLAW_MASTER_KEY=...), or explicitly indicate they must source the file in a shell if command substitution is intended.
| # Reference it in your .env | |
| IRONCLAW_MASTER_KEY=$(cat ~/.ironclaw/master.key) | |
| # Print the key, then copy the output into your .env as a literal value: | |
| cat ~/.ironclaw/master.key | |
| # In .env, paste the actual printed key value: | |
| # IRONCLAW_MASTER_KEY=PASTE_THE_OUTPUT_HERE |
| sudo apt install gnome-keyring | ||
|
|
||
| # Or use environment variable mode | ||
| export SECRETS_MASTER_KEY="your-key" |
There was a problem hiding this comment.
The environment variable name here conflicts with the rest of the docs in this PR, which consistently reference IRONCLAW_MASTER_KEY. If SECRETS_MASTER_KEY is not recognized by the app, users will be unable to decrypt stored secrets. Switch this to the correct env var name (or document both if both are supported).
| export SECRETS_MASTER_KEY="your-key" | |
| export IRONCLAW_MASTER_KEY="your-key" |
| | Provider | Backend | Local | Privacy | Cost | Best For | | ||
| |----------|---------|-------|---------|------|----------| | ||
| | **NEAR AI** | `nearai` | ✗ | ★★★ | $ | Default, easy setup | | ||
| | **Anthropic** | `anthropic` | ✗ | ★★★ | $$ | Claude models | | ||
| | **OpenAI** | `openai` | ✗ | ★★ | $$ | GPT models | | ||
| | **Ollama** | `ollama` | ✓ | ★★★★★ | Free | Local inference | |
There was a problem hiding this comment.
These tables use a leading ||, which typically renders as an extra empty first column in standard Markdown. If this is intended for Mintlify, it would help to confirm; otherwise, switch to standard table syntax (single leading | or no leading pipe) to avoid a blank column and improve rendering consistency.
| ``` | ||
|
|
||
| See [docs/LLM_PROVIDERS.md](docs/LLM_PROVIDERS.md) for a full provider guide. | ||
| See [docs/capabilities/llm-providers.md](docs/capabilities/llm-providers.md) for a full provider guide. |
There was a problem hiding this comment.
This link targets docs/capabilities/llm-providers.md, but the Mintlify docs in this PR predominantly use .mdx files and Mintlify routes (e.g., capabilities/llm-providers). Ensure the linked file path exists in-repo as written (including extension), or update the README to point to the correct file/route to avoid a broken link on GitHub.
| See [docs/capabilities/llm-providers.md](docs/capabilities/llm-providers.md) for a full provider guide. | |
| See [docs/capabilities/llm-providers.mdx](docs/capabilities/llm-providers.mdx) for a full provider guide. |
|
Warning Gemini is experiencing higher than usual traffic and was unable to create the review. Please try again in a few hours by commenting |
Code reviewFound 5 issues:
The mintlify skill has no activation criteria (patterns, keywords, exclude_keywords, tags, max_context_tokens). Without this, the skill scoring pipeline won't select it—the system has no way to determine when it's relevant to a user query. Every SKILL.md must define activation thresholds.
Fields
Multiple files use relative paths (
The SKILL.md notes Node.js and Git requirements in the compatibility text, but has no |
Summary
So far we kept our user-facing documentation on a [separate repo](, this PR merges those docs (https://github.com/nearai/ironclaw-docs) into this mono-repo
Change Type
Linked Issue
Closes #1174 #2188
Validation
cargo fmt --all -- --checkcargo clippy --all --benches --tests --examples --all-features -- -D warningscargo buildcargo test --features integrationif database-backed or integration behavior changedmint devreview-prorpr-shepherd --fixwas run before requesting reviewSecurity Impact
None
Database Impact
None
Blast Radius
None
Review Follow-Through
Moved existing telegram docs to
/docs/channels/telegram, movedllm-providersto/docs/capabilities, left/docs/plansthere, moved all other docs to/docs/internal(development-history, engine-v2-architecture, self-improvement, smart-routing-spec, user-managment-api)Review track: A