Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added screenshots/output/init-existing-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/output/init-start-over-scope.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion src/content/docs/channels/discord.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<!-- TODO(screenshots): replace with config-channels-menu.png — capture via screenshots/tapes/config.tape after the stable release with netclaw-dev/netclaw#1368; tracked in epic #55 -->
![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/):

Expand Down
4 changes: 3 additions & 1 deletion src/content/docs/channels/mattermost.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)).

<!-- TODO(screenshots): replace with config-channels-menu.png — capture via screenshots/tapes/config.tape after the stable release with netclaw-dev/netclaw#1368; tracked in epic #55 -->
![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/):

Expand Down
4 changes: 3 additions & 1 deletion src/content/docs/channels/slack.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<!-- TODO(screenshots): replace with config-channels-menu.png — capture via screenshots/tapes/config.tape after the stable release with netclaw-dev/netclaw#1368; tracked in epic #55 -->
![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/):

Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/cli/init.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<!-- TODO(screenshots): init-existing-menu.png — capture after release; epic #55 -->
![Existing-install action menu](/screenshots/output/init-existing-menu.png)

| Option | Effect |
|--------|--------|
Expand All @@ -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.

<!-- TODO(screenshots): init-start-over-scope.png — capture after release; epic #55 -->
![Start-over scope chooser](/screenshots/output/init-start-over-scope.png)

## What init creates

Expand Down
4 changes: 3 additions & 1 deletion src/content/docs/configuration/webhooks.md
Original file line number Diff line number Diff line change
Expand Up @@ -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): `<your-external-hostname>/api/webhooks/<route-name>`. Paste it into your external service.
5. Send a test event and check [`netclaw stats`](/cli/stats/) for delivery counts

<!-- TODO(screenshots): add config-inbound-webhooks.png showing the editor with route summary and advisory — capture via screenshots/tapes/config.tape after stable release; tracked in epic #55 -->
![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.

Expand Down
4 changes: 3 additions & 1 deletion src/content/docs/deployment/exposure-modes.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.

<!-- TODO(screenshots): embed config-exposure.png here — screenshot exists in screenshots/output/config-exposure.png; blocked on netclaw-dev/netclaw#1368 (tracked in epic #55) -->
![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.

Expand Down
4 changes: 3 additions & 1 deletion src/content/docs/skills/external-skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<!-- TODO(screenshots): config-skills.png — capture the Skill Sources menu, directory picker, and symlink choice; use tests/smoke/tapes/config-skill-picker.tape for reference -->
![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).

Expand Down
4 changes: 3 additions & 1 deletion src/content/docs/skills/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<!-- TODO(screenshots): config-skills.png — capture via screenshots/tapes/config-skill-picker.tape after the release; epic #55 -->
![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:

Expand Down
4 changes: 3 additions & 1 deletion src/content/docs/skills/skill-feeds.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<!-- TODO(screenshots): config-skills.png — capture the "Add a remote skill server" flow (URL prompt + discovery probe + optional bearer token) via screenshots/tapes/config.tape after release; tracked in epic #55 -->
![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

Expand Down
Loading