# Runtime guides and plugins

Canonical: https://suzo.app/docs/integrations

**Development source reviewed 2 November 2026.** These exporters, plugin packages, diagnostics, and conversation modes require the matching updated service and app. Their documentation is not evidence that a running installation has been upgraded. Use your own service’s deployed-version guide and [check availability](https://suzo.app/docs/current-status).

Suzo accepts compatible Streamable HTTP MCP clients. The runtime catalog supplies names and icons; it does not gate protocol support. Select the canonical `other` ID and optional `runtimeName` for a custom runtime. Agent-initiated cloud calls do not require a local receiver or speech helper.

## For the human

1. Add a contact on the phone and send **Copy setup prompt** to the agent, or use the manual client from your trusted service’s `/setup/client.mjs`.
2. Choose the [conversation policy](https://suzo.app/docs/mcp-setup#choose-and-approve-a-conversation-policy). Continue an existing task, or explicitly approve a reusable profile to create a fresh conversation for each incoming call.
3. Load the connection or plugin in the intended runtime and verify `get_suzo_status` from that session. Keep the saved contact credential separate from the scoped conversation credential.
4. Choose incoming callbacks and local speech independently. A receiver check does not establish runtime admission, and installation does not authorize an automatic test call.

## For the connecting agent

Use the exact origin and expiring code supplied by the phone. Reuse an existing private contact connection instead of redeeming another pairing code. Read that service’s `/setup/agent`, its MCP instructions, and `get_suzo_guide` topics before configuring the selected mode. Preserve unrelated client configuration and the human’s existing permissions.

For existing-task mode, keep the scoped bearer with that running task. For new-per-call mode, the approved profile provisions a distinct call-scoped credential into each newly created conversation before admitting it. A process-wide environment or plugin setting may be shared by several chats; it does not itself provide session isolation. Report the actual missing runtime capability if the required scope or approval routing cannot be supplied.

## Native configuration exports

The setup client reuses its saved contact credential. On another computer, supply the existing private connection through its supported private-file flow; do not pair a duplicate.

```sh
node suzo-connect.mjs --export-harness codex --agent <contact-id>
node suzo-connect.mjs --export-harness hermes --agent <contact-id>
node suzo-connect.mjs --export-harness claude-code --agent <contact-id>
node suzo-connect.mjs --export-harness other --agent <contact-id>
```

Files are written under `~/.suzo/agents/<id>/harness-export/<target>/`. Exports contain secret references, focused skills and current contract references. They do not edit global settings, load a chat, install a receiver or place a call. Supply secret values through the client’s private mechanism.

| Client | Export and reload | Incoming work |
| --- | --- | --- |
| Codex | TOML `mcp_servers` entry with `bearer_token_env_var` and a 60-second tool timeout. Verify native tools in the intended session. | An authorized App Server owner can expose existing or fresh-conversation operations. A second process reading saved chat files is not control of an already-running desktop chat. |
| Hermes | YAML `mcp_servers` entry with URL, bearer environment reference and 60-second timeout. Apply to the intended profile and use its supported MCP reload. | The maintained native owner uses the installed TUI gateway, real admission receipts and a separate operator approval channel. Fresh calls have separate native processes, homes and scoped tools. Existing canonical gateway conversations can use the guarded native-session plugin described below. |
| Claude Code | HTTP `.mcp.json` entry with a bearer environment reference. Verify the installed version and session scope. | The maintained owner uses the official Agent SDK with isolated MCP configuration, native session/admission confirmation and human tool approvals. It owns the conversation from startup; it does not attach to arbitrary desktop chats. A Claude account or supported API authentication is required. |
| Other/custom | Generic HTTP entry; adapt its environment reference to the client’s documented secret mechanism. | Use the same authenticated callback contract through supported runtime APIs, a fixed command bridge or an authenticated HTTP bridge. No new catalog implementation is required. |

For an existing Hermes Telegram or other gateway conversation, the [native-session integration guide](https://api.suzo.app/setup/hermes-callback-receiver.md#existing-canonical-gateway-conversations) provides a guarded plugin for its original owner. It checks the exact conversation, chat route, workspace and explicitly selected native permission policy before each scoped tool call. Installation does not approve a call destination or migrate a legacy contact. This path pins one conversation; following a chat through future `/new` sessions remains a proposed policy.

## Installable private plugins

```sh
node suzo-connect.mjs --export-plugin portable --agent <contact-id>
node suzo-connect.mjs --export-plugin codex --agent <contact-id>
node suzo-connect.mjs --export-plugin claude-code --agent <contact-id>
```

Packages are written under `~/.suzo/agents/<id>/plugin-export/<target>/` with a real manifest, MCP configuration, five focused skills and their references. Each package uses this deployment’s URL and contains no contact, session, receiver or provider secret.

- **Portable Agent Plugins 1.0.0:** root `plugin.json` and `mcp.json`. The importing client configures private bearer authentication; no environment interpolation or OAuth is assumed.
- **Codex:** `.codex-plugin/plugin.json`, `.mcp.json`, and a contact-specific bearer environment reference. Check the installed loader; the native TOML export is available when that loader cannot supply the field.
- **Claude Code:** `.claude-plugin/plugin.json` declares the sensitive `suzo_bearer` setting used by its HTTP connection. Older clients without sensitive plugin settings can use the native export.

Follow the generated `README.md` and the runtime’s local plugin installation flow. No public marketplace listing, hosted signup or OAuth service is implied. Clients that accept only OAuth cannot use a private bearer deployment merely by importing a manifest. The same focused skill folders can also be installed through the harness-package export without a plugin.

## Discover guides and recover

`get_suzo_status` and `suzo://status` are read-only diagnostics. `get_suzo_guide` and `suzo://guides/<topic>` expose current setup, session/lease, task, panel, runtime and callback contracts without needing a browser. HTTP companions use `/setup/<topic>.md` on your service origin. Status reads neither renew presence nor ring/probe a phone or receiver.

A saved configuration is not native discovery; native discovery is not approved ownership; approved metadata is not runtime admission. Read [MCP recovery](https://suzo.app/docs/mcp-setup#diagnose-without-calling), the [callback workflow](https://suzo.app/docs/calling-the-agent), and the [call loop](https://suzo.app/docs/call-loop). Keep one named connection per person’s independent service and use it throughout that call/history lookup.

Runtime-specific sources: [Codex MCP](https://learn.chatgpt.com/docs/extend/mcp?surface=cli), [OpenAI plugin packaging](https://developers.openai.com/plugins/build/plugins), [Hermes MCP](https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp), [Hermes integration APIs](https://hermes-agent.nousresearch.com/docs/developer-guide/programmatic-integration), [Claude plugins](https://code.claude.com/docs/en/plugins-reference), [Claude Agent SDK](https://code.claude.com/docs/en/agent-sdk/typescript), and [Claude human approvals](https://code.claude.com/docs/en/agent-sdk/user-input). Configuration contracts and isolated tests do not establish native plugin installation, live admission, original-owner approvals, provider speech or a physical call.

## Focused skills

The service’s `/setup/agent` guide covers connection and installation only. Install the packaged skills through the native export or plugin rather than pasting usage instructions into every setup prompt.

- `suzo-connect`: pairing, MCP configuration and setup verification.
- `suzo-calls`: conversation ownership, call lifecycle, durable work, cancellation and paged history.
- `suzo-call-panels`: native information panels and real actions.
- `suzo-appearance`: private asset uploads and compatible pet imports.
- `suzo-runtime`: the relevant Codex, Hermes, Claude or custom-runtime setup and recovery path.

Use tool descriptions for ordinary calls. Load a skill when its additional workflow guidance is needed; load only the runtime references that apply.
