diff --git a/screenshots/output/init-existing-menu.png b/screenshots/output/init-existing-menu.png new file mode 100644 index 0000000..0c1ddde Binary files /dev/null and b/screenshots/output/init-existing-menu.png differ diff --git a/screenshots/output/init-start-over-scope.png b/screenshots/output/init-start-over-scope.png new file mode 100644 index 0000000..84c2b82 Binary files /dev/null and b/screenshots/output/init-start-over-scope.png differ diff --git a/src/content/docs/channels/discord.md b/src/content/docs/channels/discord.md index 54cb276..744fa40 100644 --- a/src/content/docs/channels/discord.md +++ b/src/content/docs/channels/discord.md @@ -81,7 +81,9 @@ If you want others to install via a link you control, use **Discord Provided Lin Easiest path: `netclaw config` → Channels — enter your bot token; Netclaw resolves and saves. - +![The Channels area in netclaw config](/screenshots/output/config-channels-menu.png) + +The Channels area in `netclaw config` — enable Discord and enter its bot token here (the adapter list also shows Slack and Mattermost). For manual setup, store the token with [`netclaw secrets`](/cli/secrets/): diff --git a/src/content/docs/channels/mattermost.md b/src/content/docs/channels/mattermost.md index bae089f..c630370 100644 --- a/src/content/docs/channels/mattermost.md +++ b/src/content/docs/channels/mattermost.md @@ -37,7 +37,9 @@ A bot only sees channels it belongs to. Add it to the target team, then invite i Easiest path: `netclaw config` → Channels — enter your server URL and bot token; Netclaw resolves and saves. The config UI now shows channel display names dynamically, so you no longer need to look up opaque IDs by hand (closes [#1324](https://github.com/netclaw-dev/netclaw/issues/1324)). - +![The Channels area in netclaw config](/screenshots/output/config-channels-menu.png) + +The Channels area in `netclaw config` — enable Mattermost and enter its server URL and token here (the adapter list also shows Slack and Discord). For manual setup, store the token with [`netclaw secrets`](/cli/secrets/): diff --git a/src/content/docs/channels/slack.md b/src/content/docs/channels/slack.md index 8a7c983..288023c 100644 --- a/src/content/docs/channels/slack.md +++ b/src/content/docs/channels/slack.md @@ -114,7 +114,9 @@ Then invite the bot to each channel where it should respond: `/invite @YourBotNa Easiest path: `netclaw config` → Channels — enter your tokens; Netclaw resolves and saves. - +![The Channels area in netclaw config](/screenshots/output/config-channels-menu.png) + +The Channels area — enable an adapter and manage its allow-list; here Slack is connected with 2 channels and 1 user. For manual setup, store tokens with [`netclaw secrets`](/cli/secrets/): diff --git a/src/content/docs/cli/init.md b/src/content/docs/cli/init.md index 3958773..e3214c2 100644 --- a/src/content/docs/cli/init.md +++ b/src/content/docs/cli/init.md @@ -108,7 +108,7 @@ If init fails partway through, the files it already wrote stay on disk. Rerun `n Running `netclaw init` when `~/.netclaw/config/netclaw.json` already exists opens an action menu instead of the bootstrap wizard. - +![Existing-install action menu](/screenshots/output/init-existing-menu.png) | Option | Effect | |--------|--------| @@ -129,7 +129,7 @@ Selecting "Start over from scratch" opens a scope chooser: Both destructive scopes require **two confirmations**. The default selection at each confirmation is Cancel — you have to move to the Yes option and confirm twice before anything is deleted. - +![Start-over scope chooser](/screenshots/output/init-start-over-scope.png) ## What init creates diff --git a/src/content/docs/configuration/webhooks.md b/src/content/docs/configuration/webhooks.md index 5ec8176..714a0ac 100644 --- a/src/content/docs/configuration/webhooks.md +++ b/src/content/docs/configuration/webhooks.md @@ -246,7 +246,9 @@ Route files contain plaintext secrets. Treat `~/.netclaw/config/webhooks/` the s 4. Construct your webhook URL from your external hostname (Tailscale or Cloudflare): `/api/webhooks/`. Paste it into your external service. 5. Send a test event and check [`netclaw stats`](/cli/stats/) for delivery counts - +![Inbound Webhooks editor](/screenshots/output/config-inbound-webhooks.png) + +The Inbound Webhooks editor in `netclaw config` — toggle the global endpoint and set the execution timeout; route authoring stays in [`netclaw webhooks`](/cli/webhooks/). You only need to restart when first enabling `Webhooks.Enabled`. After that, route changes are [hot-reloaded](#hot-reload) on each request. diff --git a/src/content/docs/deployment/exposure-modes.md b/src/content/docs/deployment/exposure-modes.md index da917c6..05b6867 100644 --- a/src/content/docs/deployment/exposure-modes.md +++ b/src/content/docs/deployment/exposure-modes.md @@ -24,7 +24,9 @@ Exposure mode controls how the daemon is reachable over the network. Most setups Configure the exposure mode via `netclaw config` — navigate to **Security & Access → Exposure Mode** — or set `Daemon.ExposureMode` directly in `netclaw.json`. - +![Exposure Mode selection](/screenshots/output/config-exposure.png) + +The Exposure Mode picker in `netclaw config → Security & Access` — Local, Reverse Proxy, Tailscale Serve/Funnel, or Cloudflare Tunnel. Options marked with a warning triangle expose the daemon to the public internet. Tailscale Serve is the recommended remote mode: tailnet-only access, no public exposure. diff --git a/src/content/docs/skills/external-skills.md b/src/content/docs/skills/external-skills.md index b06d64a..911f0b7 100644 --- a/src/content/docs/skills/external-skills.md +++ b/src/content/docs/skills/external-skills.md @@ -104,7 +104,9 @@ All `netclaw skill source` commands work without the daemon running. CLI changes Local folders are selected via a directory picker (Ctrl+N to create a new folder). After selection, you choose whether to allow symlinks in that folder, then confirm the source name. The source gets added and autosaved immediately. - +![Skill Sources editor](/screenshots/output/config-skills.png) + +The Skill Sources screen — **+ Add local folder** opens a directory picker; **+ Add skill server** connects a remote feed. Leave symlinks off unless your setup requires it (shared filesystems, monorepo layouts with linked skill directories). diff --git a/src/content/docs/skills/overview.md b/src/content/docs/skills/overview.md index 088aee8..234a755 100644 --- a/src/content/docs/skills/overview.md +++ b/src/content/docs/skills/overview.md @@ -96,7 +96,9 @@ System skills ship from a CDN feed and are read-only. Built-in skills like `netc External skills let netclaw read skill directories from other AI tools. Add a local skill folder via `netclaw config` → Skill Sources (opens an interactive directory picker), or wire up a well-known alias via the CLI. - +![Skill Sources editor](/screenshots/output/config-skills.png) + +The Skill Sources screen in `netclaw config` — add a local folder or connect a remote skill server. Well-known aliases expand to standard paths: diff --git a/src/content/docs/skills/skill-feeds.md b/src/content/docs/skills/skill-feeds.md index 1127ee1..e1835d5 100644 --- a/src/content/docs/skills/skill-feeds.md +++ b/src/content/docs/skills/skill-feeds.md @@ -38,7 +38,9 @@ Each feed syncs independently. A failing server never blocks other feeds or daem The `netclaw config` → Skill Sources screen lets you add remote skill servers. Select "+ Add skill server," enter the base URL, and the daemon probes for `/.well-known/agent-skills/index.json`, reports the skill count (or shows the error), and suggests a name based on the hostname. If the server requires authentication, you'll be prompted for a bearer token. Add as many feeds as you need. - +![Skill Sources editor](/screenshots/output/config-skills.png) + +The Skill Sources screen — choose **+ Add skill server** to add a remote feed by base URL. ## Manual Configuration