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
19 changes: 18 additions & 1 deletion packages/kilo-docs/lib/nav/automate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,24 @@ export const AutomateNav: NavSection[] = [
],
},
{ href: "/automate/agent-manager", children: "Agent Manager" },
{ href: "/automate/kiloclaw", children: "KiloClaw" },
{
href: "/automate/kiloclaw/overview",
children: "KiloClaw",
subLinks: [
{ href: "/automate/kiloclaw/overview", children: "Overview" },
{ href: "/automate/kiloclaw/dashboard", children: "Dashboard" },
{ href: "/automate/kiloclaw/control-ui", children: "Control UI" },
{
href: "/automate/kiloclaw/chat-platforms",
children: "Chat Platforms",
},
{
href: "/automate/kiloclaw/troubleshooting",
children: "Troubleshooting",
},
{ href: "/automate/kiloclaw/pricing", children: "Pricing" },
],
},
],
},
{
Expand Down
76 changes: 76 additions & 0 deletions packages/kilo-docs/pages/automate/kiloclaw/chat-platforms.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: "Connecting Chat Platforms"
description: "Connect your KiloClaw agent to Telegram, Discord, Slack, and more"
---

# Connecting Chat Platforms

KiloClaw supports connecting your AI agent to Telegram, Discord, and Slack. You can configure channels from the **Settings** tab on your [KiloClaw dashboard](/docs/automate/kiloclaw/dashboard#channels), or from the OpenClaw Control UI after accessing your instance.

## Supported Platforms

### Telegram

To connect Telegram, you need a **Bot Token** from [@BotFather](https://t.me/BotFather) on Telegram.

Enter the token in the Settings tab and click **Save**. You can remove or replace a configured token at any time.

{% image src="/docs/img/kiloclaw/telegram.png" alt="Connect account screen" width="800" caption="Telegram bot token entry" /%}

Advanced settings such as DM policy, allow lists, and groups can be configured in the OpenClaw Control UI after connecting.

### Discord

To connect Discord, you need a **Bot Token** from the [Discord Developer Portal](https://discord.com/developers/applications).

{% image src="/docs/img/kiloclaw/discord.png" alt="Connect account screen" width="800" caption="Discord bot token entry" /%}

Enter the token in the Settings tab and click **Save**. You can remove or replace a configured token at any time.

### Slack

To connect Slack, you need **both** of the following tokens from [Slack App Management](https://api.slack.com/apps):

- **Bot Token** — starts with `xoxb-`
- **App Token** — starts with `xapp-`

{% image src="/docs/img/kiloclaw/slack.png" alt="Connect account screen" width="800" caption="Slack bot and app token entry" /%}

Both tokens are required — you cannot save with only one.

## Configuring a Channel

1. Open your [KiloClaw dashboard](/docs/automate/kiloclaw/dashboard)
2. Go to the **Settings** tab
3. Scroll to the **Channels** section
4. Enter the required token(s) for your platform
5. Click **Save**

{% callout type="info" %}
After saving channel tokens, you need to **Redeploy** or **Restart OpenClaw** for the changes to take effect.
{% /callout %}

To remove a channel, clear its token(s) in Settings and save. Redeploy or Restart OpenClaw afterward to apply the removal.

## Pairing Requests

After connecting a channel and starting your instance, new users and devices need to be approved before they can interact with your agent.

- **Channel pairing** — When someone messages your bot on Telegram, Discord, or Slack for the first time, a pairing request appears on your dashboard. You need to click **Approve** to allow them to use the bot.
- **Device pairing** — When a new browser or device connects to the OpenClaw Control UI, a similar request appears. Click **Approve** to authorize it.

{% callout type="note" %}
Pairing data is cached for about 2 minutes. Use the refresh button to check for new requests.
{% /callout %}

## Future Support

Additional platforms (such as WhatsApp) are planned for future releases. For the latest on supported platforms, refer to the [OpenClaw documentation](https://docs.openclaw.ai).

## Related

- [KiloClaw Overview](/docs/automate/kiloclaw/overview)
- [Dashboard Reference](/docs/automate/kiloclaw/dashboard)
- [Troubleshooting](/docs/automate/kiloclaw/troubleshooting)
- [KiloClaw Pricing](/docs/automate/kiloclaw/pricing)
- [OpenClaw Documentation](https://docs.openclaw.ai)
102 changes: 102 additions & 0 deletions packages/kilo-docs/pages/automate/kiloclaw/control-ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
title: "OpenClaw Control UI"
description: "Browser-based dashboard for managing your OpenClaw instance"
---

# OpenClaw Control UI

The Control UI is a browser-based dashboard (built with Vite + Lit) served by the OpenClaw Gateway on the same port as the gateway itself (default: `http://localhost:18789/`). It connects via WebSocket and gives you real-time control over your agent, channels, sessions, and system configuration. For KiloClaw users, see [Accessing the Control UI](/docs/automate/kiloclaw/dashboard#accessing-the-control-ui) to get started.

## Features

- **Chat** — Send messages, stream responses with live tool-call output, view history, and abort runs.
- **Channels** — View the status of connected messaging platforms, scan QR codes for login, and edit per-channel config.
- **Sessions** — List active sessions with thinking and verbose overrides.
- **Cron Jobs** — Create, edit, enable/disable, run, and view history of scheduled tasks.
- **Skills** — View status, enable/disable, install, and manage API keys for skills.
- **Nodes** — List paired devices and their capabilities.
- **Exec Approvals** — Edit gateway or node command allowlists. See [Exec Approvals](#exec-approvals) below.
- **Config** — View and edit `openclaw.json` with schema-based form rendering and a raw JSON editor.
- **Logs** — Live tail of gateway logs with filtering and export.
- **Debug** — Status, health, model snapshots, event log, and manual RPC calls.
- **Update** — Run package updates and restart the gateway.

For more details, please see the official [OpenClaw documentation](https://docs.openclaw.ai/web/control-ui).

{% callout type="warning" %}
Do not use the **Update** feature in the Control UI to update KiloClaw. Use **Redeploy** from the [KiloClaw Dashboard](/docs/automate/kiloclaw/dashboard#redeploy) instead. Updating via the Control UI will not apply the correct KiloClaw platform image and may break your instance.
{% /callout %}

## Authentication

Auth is handled via token or password on the WebSocket handshake. We use the one time "access code" from your KiloClaw Dashboard to pair your device. Other remote connections require one-time device pairing — the pairing request appears on the [KiloClaw Dashboard](/docs/automate/kiloclaw/dashboard#pairing-requests) or in the Control UI itself.

## Exec Approvals

Exec approvals are the safety interlock that controls which commands your agent can run on the host machine (gateway or node). By default, **all host exec requests are denied** — you must explicitly allowlist the commands you want your agent to run independently. This prevents accidental execution of destructive commands.

{% callout type="warning" %}
The default security policy is `deny`. You must configure an allowlist before your agent can execute any host commands.
{% /callout %}

### How It Works

Approvals are enforced locally on the execution host and sit on top of tool policy and elevated gating. The effective policy is always the **stricter** of `tools.exec.*` and the approvals defaults. Settings are stored in `~/.openclaw/exec-approvals.json` on the host.

### Security Policies

| Policy | Behavior |
| ----------- | ---------------------------------------------- |
| `deny` | Block all host exec requests (default) |
| `allowlist` | Allow only commands matching the allowlist |
| `full` | Allow everything (equivalent to elevated mode) |

### Ask Behavior

The `ask` setting controls when the user is prompted for approval:

| Setting | Behavior |
| --------- | ------------------------------------------------------- |
| `off` | Never prompt |
| `on-miss` | Prompt only when the allowlist does not match (default) |
| `always` | Prompt on every command |

If a prompt is required but no UI is reachable, the `askFallback` setting decides the outcome (`deny` by default).

### Allowlists

Allowlists are **per agent** — each agent has its own set of allowed command patterns. Patterns are case-insensitive globs that must resolve to binary paths (basename-only entries are ignored).

Example patterns:

```
~/Projects/**/bin/rg
~/.local/bin/*
/opt/homebrew/bin/rg
```

Each entry tracks last-used metadata (timestamp, command, resolved path) so you can audit and keep the list tidy.

### Approval Flow

When a command requires approval, the gateway broadcasts the request to connected operator clients. The approval dialog shows the command, arguments, working directory, agent ID, and resolved path. You can:

- **Allow once** — run the command now
- **Allow always** — add to the allowlist and run
- **Deny** — block the request

Approval prompts can also be forwarded to chat channels (Slack, Telegram, Discord, etc.) and resolved with `/approve`.

### Editing in the Control UI

Navigate to **Nodes > Exec Approvals** in the Control UI to edit defaults, per-agent overrides, and allowlists. Select a scope (Defaults or a specific agent), adjust the policy, add or remove allowlist patterns, then save.

{% callout type="info" %}
If a node does not yet advertise exec approval capabilities, edit its `~/.openclaw/exec-approvals.json` file directly. You can also use the CLI: `openclaw approvals`.
{% /callout %}

## Related

- [KiloClaw Dashboard](/docs/automate/kiloclaw/dashboard)
- [KiloClaw Overview](/docs/automate/kiloclaw/overview)
- [Connecting Chat Platforms](/docs/automate/kiloclaw/chat-platforms)
158 changes: 158 additions & 0 deletions packages/kilo-docs/pages/automate/kiloclaw/dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
---
title: "KiloClaw Dashboard Reference"
description: "Managing your KiloClaw instance from the dashboard"
---

# KiloClaw Dashboard

This page covers everything you can do from the KiloClaw dashboard. For getting started, see [KiloClaw Overview](/docs/automate/kiloclaw/overview).

{% image src="/docs/img/kiloclaw/dashboard.png" alt="Connect account screen" width="800" caption="The KiloClaw Dashboard" /%}

## Instance Status

Your instance is always in one of these states as indicated by the status label at the top of your dashboard:

| Status | Label | Meaning |
| --------------- | --------------- | ------------------------------------------------------------- |
| **Running** | Machine Online | Your agent is online and reachable |
| **Stopped** | Machine Stopped | The machine is off, but all your files and data are preserved |
| **Provisioned** | Provisioned | Your instance has been created but never started |
| **Destroying** | Destroying | The instance is being permanently deleted |

## Instance Controls

There are four actions you can take on your instance. Which ones are available depends on the current status.

### ▶️ Start Machine

Boots your instance. If this is the first time starting after provisioning, the machine is created; otherwise, the existing machine resumes. Can take up to 60 seconds.

Available when the instance is **stopped** or **provisioned**.

### 🔄 Restart OpenClaw

Restarts just the OpenClaw process without rebooting the machine. This is a quick way to recover from a process-level issue — active sessions will briefly disconnect and reconnect automatically.

Available when the instance is **running**.

### ↩️ Redeploy

Stops the machine, applies the latest platform image and your current configuration (environment variables, secrets, channel tokens), and starts it again.

**Your files, git repos, cron jobs, and everything on your persistent volume are preserved.** Redeploy is not a factory reset — think of it as "update and restart."

You should redeploy when:

- The changelog shows "Redeploy Required" or "Redeploy Suggested"
- You've changed channel tokens or secrets in Settings
- You want to pick up the latest platform updates

Available when the instance is **running**.

### 🩺 OpenClaw Doctor

Runs diagnostics and automatically fixes common configuration issues. This is the recommended first step when something isn't working. Output is shown in real time.

Available when the instance is **running**.

## Gateway Process

The Gateway Process tab shows the health of the OpenClaw process running inside your machine:

- **State** — Whether the process is Running, Stopped, Starting, Stopping, Crashed, or Shutting Down
- **Uptime** — How long it's been running since the last start
- **Restarts** — How many times the process has been automatically restarted
- **Last Exit** — The exit code and timestamp from the last time the process stopped or crashed

If the gateway crashes, it's automatically restarted. The machine itself can be running even when the gateway process is down — they're independent.

{% callout type="note" %}
Gateway process info is only available when the machine is running.
{% /callout %}

## Settings

### Changing the Model

Select a model from the dropdown and click **Save & Provision**. The API key is platform-managed and refreshes automatically when you save — you never need to enter one. The key has a 30-day expiry.

### Channels

You can connect Telegram, Discord, and Slack by entering bot tokens in the Settings tab. See [Connecting Chat Platforms](/docs/automate/kiloclaw/chat-platforms) for setup instructions.

{% callout type="info" %}
After saving channel tokens, you need to **Redeploy** or **Restart OpenClaw** for the changes to take effect.
{% /callout %}

### Stop and Destroy

At the bottom of Settings:

- **Stop Instance** — Shuts down the machine. All your data is preserved and you can start it again later.
- **Destroy Instance** — Permanently deletes your instance and all its data, including files, configuration, and workspace. This cannot be undone.

## Accessing the Control UI

When your instance is running you can access the [OpenClaw Control UI](/docs/automate/kiloclaw/control-ui) — a browser-based dashboard for managing your agent, channels, sessions, exec approvals, and more:

1. Click **Access Code** to generate a one-time code (expires in 10 minutes)
2. Click **Open** to launch the OpenClaw web interface in a new tab
3. Enter the access code to authenticate

See the [Control UI reference](/docs/automate/kiloclaw/control-ui) for a full overview of its capabilities.

{% callout type="warning" %}
Do not use the **Update** feature in the OpenClaw Control UI to update KiloClaw. Use **Redeploy** from the KiloClaw Dashboard instead. Updating via the Control UI will not apply the correct KiloClaw platform image and may break your instance.
{% /callout %}

## Pairing Requests

When your instance is running, the dashboard shows any pending pairing requests. These appear when:

- Someone messages your bot on Telegram, Discord, or Slack for the first time
- A new browser or device connects to the Control UI

You need to **approve** each request before the user or device can interact with your agent. See [Pairing Requests](/docs/automate/kiloclaw/chat-platforms#pairing-requests) for details.

## Changelog

The dashboard shows recent KiloClaw platform updates. Each entry is tagged as a **feature** or **bugfix**, and some include a deploy hint:

- **Redeploy Required** — You must redeploy for this change to take effect on your instance
- **Redeploy Suggested** — Redeploying is recommended but not strictly necessary

## Instance Lifecycle

| Action | What Happens | Data Preserved? |
| ---------------------- | --------------------------------------------------------------------- | --------------- |
| **Create & Provision** | Allocates storage in the best region available and saves your config. | N/A |
| **Start Machine** | Boots the machine and starts OpenClaw. | Yes |
| **Stop Instance** | Shuts down the machine. | Yes |
| **Restart OpenClaw** | Restarts the OpenClaw process. Machine stays up. | Yes |
| **Redeploy** | Stops, updates, and restarts the machine. | Yes |
| **Destroy Instance** | Permanently deletes everything. | No |

## Machine Specs

Each instance runs on a dedicated machine — there is no shared infrastructure between users.

| Spec | Value |
| ------- | -------------------- |
| CPU | 2 shared vCPUs |
| Memory | 3 GB RAM |
| Storage | 10 GB persistent SSD |

Your storage is region-pinned — once your instance is created in a region (e.g., DFW), it always runs there. OpenClaw config lives at `/root/.openclaw` and the workspace at `/root/clawd`.

{% callout type="info" %}
These are the beta specifications for machines and subject to change without notice.
{% /callout %}

## Related

- [KiloClaw Overview](/docs/automate/kiloclaw/overview)
- [OpenClaw Control UI](/docs/automate/kiloclaw/control-ui)
- [Connecting Chat Platforms](/docs/automate/kiloclaw/chat-platforms)
- [Troubleshooting](/docs/automate/kiloclaw/troubleshooting)
- [KiloClaw Pricing](/docs/automate/kiloclaw/pricing)
Loading
Loading