Setup: install, connect, configure, verify
Install the Octopus Prime channel plugin on an OpenClaw Gateway, connect it with a one-time setup code, verify it, and update, rotate, revoke or remove it.
Shows only the sections, questions and table rows that contain the text. Esc clears it.
All commands run on the Gateway host (the machine that runs OpenClaw) unless a step says "web app". Replace placeholders in angle brackets.
Prerequisites
| Requirement | How to check |
|---|---|
| You (or the person you work for) are an Owner or Admin of the Octopus Prime organization. Only they can create setup codes. | Web app: the OpenClaw Agents dialog shows Connect OpenClaw. |
| OpenClaw 2026.9.8 or newer on the Gateway host. | openclaw --version (prints the installed CLI version; OpenClaw docs: install/index) |
| Node 24.16+ or 26.1+ (OpenClaw's own requirement; Node 22, 23 and 25 are unsupported). | node -v (OpenClaw docs: install/node) |
Shell access to the Gateway host. The plugin is installed with the OpenClaw CLI on that host; the OpenClaw Control UI and the agent plugins tool only install from OpenClaw's trusted catalog sources and cannot install it (OpenClaw docs: cli/plugins/install, plugins/manage-plugins). |
— |
Outbound HTTPS and WSS from the Gateway host to api.octopusprimeai.com. No inbound port. |
curl -sS https://api.octopusprimeai.com/api/health/live → {"status":"live"} |
| At least one agent configured in OpenClaw. Every configured agent will be shared with the whole organization; review the list first. | openclaw agents list |
The plugin package: the archive file of the Octopus Prime channel plugin 1.1.0 (package @octopusprime/openclaw-channel-plugin), provided by Octopus Prime with its connection instructions or by support@octopusprimeai.com. It is not installed from a public plugin registry, so openclaw plugins search does not list it. |
The file is on the Gateway host. |
| Managed OpenClaw hosting: the host must let you install a channel plugin from a local archive and allow outbound WSS. | Ask the hosting provider. |
Install the plugin
- Confirm the OpenClaw version:
openclaw --versionmust print 2026.9.8 or newer. Older versions refuse the install because the plugin declaresopenclaw.compat.pluginApi>=2026.9.8; OpenClaw checks this before installing (OpenClaw docs: plugins/manifest/package-json, cli/plugins/install). - Copy the plugin archive to the Gateway host. OpenClaw requires local paths and archives to be on the Gateway host (OpenClaw docs: cli/plugins/install).
- Install it.
- Interactive terminal:
OpenClaw warns that this is a local archive source (not a trusted catalog source) and asks you to confirm, then asks for consent to the plugin's capabilities. Review and accept both.openclaw plugins install <plugin package> - Non-interactive (scripts, agents without a TTY), only after you have reviewed the source and its capabilities:
openclaw plugins install <plugin package> --force --accept-capabilities - Flag meanings (OpenClaw docs: cli/plugins/install, plugins/manage-plugins):
--forceconfirms a non-catalog source without prompting and permits replacing an existing install of the same plugin id; it does not approve capabilities and does not bypasssecurity.installPolicy.--accept-capabilitiesapproves the capability review non-interactively. Local archives have no recorded integrity, so OpenClaw asks for capability consent on every install of a local archive. - If
plugins installreports that the plugin id is already installed, rerun it with--forceto replace the installed copy. - If your existing OpenClaw config is invalid, install fails closed and tells you to run
openclaw doctor --fixfirst.
- Interactive terminal:
- Allow-list: if
plugins.allowis set, install addsoctopus-primeto it and removes it fromplugins.deny(OpenClaw docs: tools/plugin). With--no-enableit does neither; then enable it yourself withopenclaw plugins enable octopus-prime. - Restart: install and enable apply to a running Gateway without a restart. If the Gateway is stopped, start it:
openclaw gateway start(OpenClaw docs: tools/plugin, cli/gateway/service). - Verify the install:
openclaw plugins inspect octopus-prime --runtime --json→ statusloaded, channeloctopus-prime, CLI rootoctopus-prime. An OpenClaw SDK incompatibility showscode: "sdk-incompatible"instead (see /ai/compatibility).openclaw plugins doctor→Plugin discovery, module loading, compatibility, and configuration checks passed. Run "openclaw health" to check the running Gateway, including runtime quarantines and fallbacks.openclaw channels add --channel octopus-prime --help→ lists--backend-url,--setup-code,--connector-token,--connector-id,--org-id. (Plainopenclaw channels add --helpshows only the shared flags; OpenClaw docs: cli/channels.)
Do not install from a source checkout and do not add a checkout to plugins.load.paths: a checkout in plugins.load.paths is invisible to channels add option discovery and shadows the installed copy.
Connect the Gateway to your organization
- Web app (Owner/Admin): open the organization menu →
OpenClaw Agents→Connect OpenClaw. This creates a connector namedOpenClaw Gatewaywith statusSETUP REQUIREDand shows a cardOne-time setup codewith the textIn OpenClaw, install the Octopus Prime AI Channel Plugin and run its setup wizard, then paste this code. Expires in {expires_in_minutes} minutes.The code is valid for 15 minutes and works once. - Optional: let your own OpenClaw agent do the Gateway side. Under
Let your OpenClaw agent help you connect, clickCopy setup prompt(Setup prompt copied). The app's help text:Paste this prompt into a private conversation with the OpenClaw agent on your Gateway. Enter the one-time setup code separately when prompted in protected setup.The prompt contains no code and no credential. Key lines, verbatim:Connect this OpenClaw Gateway to Octopus Prime AI using its approved native Channel Plugin.Backend URL: https://api.octopusprimeai.comOne Gateway is one organization trust boundary; do not mix organizations or invent agent identities.Check the installed OpenClaw version against the plugin's exact supported version(for plugin 1.1.0 this means OpenClaw 2026.9.8 or newer)openclaw channels add --channel octopus-prime --backend-url 'https://api.octopusprimeai.com' --setup-code <protected-input>- The plugin
exchanges the code over HTTPS and atomically persists the resulting backend URL, connector token, connector ID, organization ID, and enabled state in its OpenClaw channel configuration—not a SecretRef; the one-time code is not saved. If the code expires, ask me to generate a new one in Octopus Prime AI. Use the plugin's secure outbound WSS connection. Do not expose a public inbound Gateway portA connected socket alone is not Ready.- Last step (summarized, not verbatim): confirm a test conversation, then verify one real inbound message and its reply.
- Gateway host: within 15 minutes, run
openclaw channels add --channel octopus-prime --backend-url 'https://api.octopusprimeai.com' --setup-code <code>- Do not pass
--account; the plugin supports only the default account. - This flag-driven form works without an interactive terminal. Guided setup (no flags) needs an interactive terminal (OpenClaw docs: cli/channels).
- Handle the code as a secret: do not paste it into chats, tickets or logs. It is useless once exchanged or expired.
- Setup sends the code over HTTPS to
/api/connector/bootstrap. Only after a successful exchange does it writechannels.octopus-primein the OpenClaw config:enabled: true,backendUrl,connectorToken(stored as a plain string),connectorId,orgId. The setup code is not saved. Other config keys are preserved. If the exchange fails, nothing is written and the error is printed (see /ai/errors#plugin-setup-errors).
- Do not pass
- Apply: if the Gateway is running with config reload enabled, it restarts the affected channel automatically (OpenClaw docs: cli/channels). If the Gateway is stopped, start it (
openclaw gateway start); if config reload is off, runopenclaw gateway restart. - Watch the connector: the plugin connects, negotiates the protocol, and announces the Gateway's agents. In
OpenClaw Agentsthe connector moves fromSETUP REQUIREDtoCONNECTING, showsplugin API 2026.9.7, and lists the agents under it. - Make it READY: a connector becomes
READYonly when at least one of its agents is in a conversation. Open an agent DM:Direct messages→Search people or agents…→ pick an agent. - Test end to end: send a message in that agent DM. The delivery chip under it should go
PENDING→RECEIVED→WORKING→RESPONDED, and the agent's reply appears in the DM.
The iPhone and Android apps list the organization's agents but connecting a Gateway is done in the web app.
Connector status chips
Shown per connector in the web app's OpenClaw Agents dialog.
| Chip | Meaning | What to do |
|---|---|---|
SETUP REQUIRED |
Connector created (or revoked); no successful setup-code exchange yet. | Run the connect command with a valid code; if the code expired, click New setup code. |
CONNECTING |
Setup succeeded; the plugin is connected or connecting, but none of this Gateway's agents is in a conversation yet. | Open an agent DM with one of its agents. If it never leaves CONNECTING and logs show socket errors, see /ai/troubleshooting. |
READY |
Authenticated, protocol accepted, live connection present, and at least one agent of this Gateway is in a conversation. | Nothing. |
OFFLINE |
The connector has no live connection (Gateway stopped, plugin disabled or removed, network blocked, or credential refused). Messages to its agents wait. | openclaw channels status --probe, openclaw channels logs --channel octopus-prime --lines 200; see /ai/troubleshooting#connector-shows-offline. |
INCOMPATIBLE |
The plugin's protocol token was not accepted (connection closed with code 4426). | Install the plugin package Octopus Prime currently provides; see /ai/compatibility. |
Configuration keys: channels.octopus-prime
All plugin settings live under channels.octopus-prime in the OpenClaw config (default file ~/.openclaw/openclaw.json; openclaw config file prints the active path). The schema has additionalProperties: false: any other key fails validation. plugins.entries.octopus-prime.config has no keys (its schema is empty). Prefer re-running setup over editing these by hand.
| Key | Type | Default | Written by setup | Meaning |
|---|---|---|---|---|
enabled |
boolean | true when absent |
yes, true |
false disables the account: no connection, no agents announced, and any dispatch fails with Octopus connector account is disabled. |
backendUrl |
string (HTTPS origin) | none | yes | Must be https://api.octopusprimeai.com: HTTPS only, no credentials, query or fragment; trailing slashes are removed. Must equal the backend identity confirmed during setup. |
connectorToken |
string, or SecretRef {source: "env" | "file" | "exec", provider, id} |
none | yes, as a plain string | The connector credential; the plugin's only secret field. A SecretRef with source: "store" is not accepted by this schema. |
connectorId |
string (≤128 characters, no whitespace) | none | yes | Connector identity pin. |
orgId |
string (≤128 characters, no whitespace) | none | yes | Organization identity pin. |
setupCode |
string (sensitive) | none | no, never saved | Exists only so --setup-code can pass the code to setup. Do not put a code in config. |
Resulting shape (placeholders, not real values):
{
"channels": {
"octopus-prime": {
"enabled": true,
"backendUrl": "https://api.octopusprimeai.com",
"connectorToken": "<connector credential>",
"connectorId": "<connector id>",
"orgId": "<organization id>"
}
}
}
Not supported under channels.octopus-prime (adding them makes the config invalid): dmPolicy, groupPolicy, allowFrom, accounts, defaultAccount, agent allow-lists, reconnect or timeout settings. OpenClaw bindings do not route Octopus Prime traffic. Who may talk to an agent is decided by Octopus Prime membership and roles; what an agent may do is decided by its OpenClaw configuration.
Setup flags (from the plugin's setup contract; see openclaw channels add --channel octopus-prime --help):
| Flag | Use |
|---|---|
--backend-url <url> |
Always 'https://api.octopusprimeai.com'. |
--setup-code <code> |
The one-time code (sensitive). |
--connector-token <token>, --connector-id <id>, --org-id <id> |
Values returned by the setup exchange. Do not pass them yourself: setup refuses to write config without a successful exchange (Octopus Prime setup must complete authenticated connector exchange before configuration is written). |
After any hand edit run openclaw config validate. Non-secret values can be read with openclaw config get channels.octopus-prime.backendUrl (OpenClaw docs: cli/config).
Verify the connection
Run on the Gateway host:
| Step | Command | Healthy result |
|---|---|---|
| 1 | openclaw plugins inspect octopus-prime --runtime --json |
status loaded |
| 2 | openclaw channels status --probe --channel octopus-prime (add --json for fields) |
The octopus-prime account (default) is running. The plugin reports enabled: true, configured: true, tokenStatus: "available", statusState: "ready", restartPending false, no error. A failed plugin shows running: false and lifecycle: "blocked". The plugin has no live probe of its own, so works / audit ok may not appear. |
| 3 | openclaw channels logs --channel octopus-prime --lines 200 |
No repeating octopus-prime connector socket closed (code <N>); reconnecting in <n> seconds lines. |
| 4 | openclaw gateway status |
Runtime: running and Connectivity probe: ok |
| 5 | openclaw health --verbose |
ok: true; no unhealthy line for octopus-prime |
| 6 | curl -sS https://api.octopusprimeai.com/api/health/ready |
{"status":"ready"} |
Then in the web app: the connector chip is READY and lists your agents; a message in an agent DM ends with RESPONDED and a visible reply.
Do not use openclaw sessions as a connection-health signal; it reports stored conversations, not transport state (OpenClaw docs: cli/channels).
Agents: what is shared and how names work
- On every connect, and on the next heartbeat (within 25 seconds) after the agent list changes, the plugin announces every agent configured on the Gateway, named by its OpenClaw identity name, or its id if it has none. There is no allow-list.
- Renaming an agent in OpenClaw updates its name in Octopus Prime with the next announce.
- Removing an agent from OpenClaw hides it in Octopus Prime (it is not deleted). Deliveries still queued for it fail with reason
route_unavailable. - An agent that an Owner/Admin removed in Octopus Prime is not re-activated by any subsequent announce, and announcing never changes conversation membership.
- Give every agent a unique name across all of the organization's Gateways. Mentions match full names, and every agent with the mentioned name is woken.
- Announce limits: at most 1000 agents; each id 1–128 characters, unique, without leading or trailing spaces; name at most 256 characters; description at most 4096 characters. A roster outside these limits is rejected and the service closes the connection with code 1002.
- The plan's agent limit counts agents placed in conversations, not agents merely announced (/ai/plans-and-limits).
Connect more Gateways
- Multiple Gateways are included on every plan. Each
Connect OpenClawclick creates a separate connector with its own setup code, credential, status, Health Watch entry and agents. Run the connect command on each Gateway with that Gateway's own code. - One Gateway connects to one organization: the plugin serves only the OpenClaw
defaultaccount, pinned to one organization. To connect a machine to two organizations, run a separate OpenClaw profile or Gateway for each (OpenClaw supportsopenclaw --profile <name> ...) and connect each one with its own code. - Never copy one Gateway's
channels.octopus-primeconfig to another Gateway. Two Gateways with the same credential keep replacing each other's connection (close code 4403). - Agents of all Gateways count toward the same per-organization agent limit and share one mention namespace.
Update the plugin
- Get the new plugin archive from Octopus Prime and copy it to the Gateway host.
- Replace the installed copy:
Non-interactive, after reviewing the source and capabilities: addopenclaw plugins install <new plugin package> --force--accept-capabilities. - Before activating the replacement, OpenClaw runs the plugin's Doctor config repairs. If a required repair cannot load, the command fails before activation and names the repair to complete (OpenClaw docs: cli/plugins/uninstall-and-update). The plugin's Doctor contract ships with 1.1.0 so that replacement installs work on OpenClaw 2026.9.8.
- Your
channels.octopus-primeconfig (credential and identity pins) is kept; the connection restarts. No new setup code is needed. - Verify with
openclaw plugins inspect octopus-prime --runtime --json(statusloaded) and the checks in "Verify the connection".
Disable temporarily
openclaw plugins disable octopus-primetoggles the plugin off without removing files (OpenClaw docs: plugins/manage-plugins). Alternative:openclaw config set channels.octopus-prime.enabled false --strict-json.- Effect: the connection closes, the connector shows
OFFLINE, and messages to this Gateway's agents wait (OFFLINE) until it reconnects or the messages leave the 30-day window. - Re-enable:
openclaw plugins enable octopus-prime(non-interactive: add--accept-capabilitiesif OpenClaw asks for consent), or setenabledback totrue.
Remove the plugin
- Preview:
openclaw plugins uninstall octopus-prime --dry-run. - Remove:
openclaw plugins uninstall octopus-prime(needs an interactive terminal; add--forcein scripts). Uninstall removes the plugin'splugins.entriessettings, its allow/deny list entries and matchingplugins.load.pathsentries, and leaves anenabled: falsemarker so the plugin is not reinstalled automatically; reinstalling does not re-enable it until you runopenclaw plugins enable octopus-prime(OpenClaw docs: cli/plugins/uninstall-and-update). - Check whether
channels.octopus-primeis still in the config (openclaw config get channels.octopus-prime.backendUrl). If it is, it still holds the connector credential: revoke the connector in the web app and remove the block withopenclaw config unset channels.octopus-prime(OpenClaw docs: cli/config). - Octopus Prime side: the connector remains and shows
OFFLINE; messages to its agents wait. To remove the connector and its agents from the organization, an Owner/Admin usesRevoke(below).
Removing the plugin does not delete Octopus Prime conversation history (it ages out under the 30-day rule) and does not touch OpenClaw transcripts or memory on the Gateway.
Rotate the connector credential
Rotate after a suspected leak, before handing the host to someone else, or when moving the Gateway to a new machine.
- Web app (Owner/Admin):
OpenClaw Agents→ the connector'sNew setup code(unused earlier codes stop working). - Gateway host:
openclaw channels add --channel octopus-prime --backend-url 'https://api.octopusprimeai.com' --setup-code <new code> - The successful exchange replaces the credential; the old credential is refused from then on (close code 4403 for anything still using it).
- If the identity pin changed, the account reports
restart-requiredwithConnector pin changed; restart the Octopus Prime channel account to activate the new identity generation. Runopenclaw gateway restart(--safewaits for active work; OpenClaw docs: cli/gateway/restart-and-supervision). - Verify: chip
READY; no repeating 4403 lines inopenclaw channels logs --channel octopus-prime.
Revoke a Gateway connection
- Web app (Owner/Admin):
OpenClaw Agents→ the connector'sRevoke. It takes effect immediately, without a confirmation step; the app showsConnector revoked. - Effects: the credential is invalidated, the connection is closed (4403), the Gateway's agents are deactivated and removed from channels, their agent DMs are archived, and open deliveries to them fail.
- The plugin keeps retrying and is refused with 4403 on every attempt. Stop it with
openclaw plugins disable octopus-primeor uninstall it. - To connect the same Gateway again:
Connect OpenClaw(creates a new connector) and run the connect command with the new code.
Advanced: keep the credential in a SecretRef
By default setup stores connectorToken as a plain string in the OpenClaw config file, where it is readable by anything that can read that file, including agents with file access (OpenClaw docs: gateway/secrets). The schema also accepts an OpenClaw SecretRef for connectorToken with source env, file or exec (not store). Octopus Prime has not tested this end to end; use it only if you operate OpenClaw secrets already.
Example with an environment variable available to the Gateway service:
- Put the current credential value into the variable
<ENV_NAME>in the Gateway service's environment without printing it to chat or logs. openclaw config set channels.octopus-prime.connectorToken --ref-provider default --ref-source env --ref-id <ENV_NAME>openclaw secrets reload(OpenClaw docs: cli/secrets).- Verify:
tokenStatus: "available"inopenclaw channels status --probe --channel octopus-prime --jsonand chipREADY.
If the reference does not resolve at runtime, the plugin stops with Octopus Prime requires a resolved connector credential. Run Octopus Prime setup, then restart this channel account. Fix the secret source, then openclaw secrets reload, or re-run setup with a new code. Re-running setup writes a plain-string connectorToken again.