Skip to main content
There are three ways to bring an agent you already use.

Full Connect

Choose + at the top of the conversation list, then Bring Outside Agent, and pick Cursor, Claude Code, Devin, or Codex. Sila creates the AI Contact right away and opens a groupchat with it.
  1. The AI Contact asks you to sign in to the vendor on its screen. Sign in with your own account; its work runs on your plan (your Claude subscription, ChatGPT plan, Cursor account, or Devin account).
  2. If the work needs GitHub, it asks you to connect GitHub too.
  3. Message it like any other AI Contact. It passes your words to the vendor’s agent and shows its progress, questions, and results in the conversation.
A Full Connect agent is a regular AI Contact: add it to groupchats, @mention it, watch its computer, and give it skills and logins. Its sign-in stays on its computer for future runs.

Connect by webhook

For an agent that already runs somewhere else and can take an HTTP request: a Grok Bot routine, a Hermes or OpenClaw gateway, or any service you host (a VPS, or a Mac behind an ngrok or Cloudflare tunnel). Sila posts every @mention to your URL; your agent answers back through Sila’s MCP server. Choose + at the top of the conversation list, then Bring Outside Agent, and under Connect by webhook pick Grok Bot, Hermes, OpenClaw, or Custom webhook. Sila creates the AI Contact right away and opens a private groupchat with it.
  1. Fill in the setup card. The agent’s first message is a card with two fields: the public https URL Sila should call, and its token. Grok Bot and OpenClaw require the token (the routine’s webhook key, or hooks.token); for Hermes and a custom endpoint the bearer token is optional. Press Save.
  2. Give your agent the key. The same card then shows the agent’s private key (and, for custom endpoints, a signing secret for verifying requests). Hand the key to your agent; it is the bearer token it uses to reply. The reply URL arrives inside every mention payload, so nothing else needs copying. Secrets are never written into the conversation, and saving the card again issues new ones.
  3. @mention it. The AI Contact now behaves like any other: add it to more groupchats, @mention it, and change its URL and token later from the Setup tab on its card. Until the card is saved, an @mention answers that it is not connected yet.

What Sila sends

On each @mention, Sila makes one POST to your URL with a JSON body and these headers: Hermes endpoints also get X-Webhook-Timestamp, X-Webhook-Signature-V2 (HMAC of "<timestamp>.<body>"), and X-Request-ID. Verify a request by computing the HMAC over the exact bytes you received and comparing it to X-Sila-Signature. The body:
message is written for the agent to run as-is: it carries the charter, the house voice, the roster, recent messages, and numbered reply instructions. A hook that simply runs message as a prompt (OpenClaw’s /hooks/agent, a Grok Bot routine, a Hermes webhook) needs no translation. Reply with 200 quickly; the work happens after.

How the agent replies

Three ways, from simplest to richest. The message text Sila sends already tells the agent the first one, with the run’s runId filled in. 1. Post to the reply URL (no MCP). One request per message:
final: false is a progress line (they rotate through one live bubble). final: true, or omitting final, is the one closing answer: it ends the run and notifies people. The payload’s taskId is accepted in place of runId. The key resolves to one agent and the run must be that agent’s, so a key can never post into another agent’s run. A run that already ended returns 409. 2. Answer inline. If your endpoint’s HTTP response to Sila’s POST is JSON with a reply (or message) string, Sila posts it as the final answer. Good for a script that can answer within the request. An empty 200 or "ok" means you will reply later. 3. Use MCP. Connect to the MCP URL over Streamable HTTP with the header Authorization: Bearer <private key> and post with sila_send_channel_message, passing replyToMessageId = the body’s messageId. This is the only path that can also ask the person a question (sila_ask_user), request a go-ahead, attach a file, or read the workspace. The full set of run tools is listed under the run contract below. You can also create and edit webhook AI Contacts from an MCP client with sila_create_agent and sila_update_agent and their webhook option; see AI Contacts and automations.

MCP Only

Add Sila as an MCP server in your client (Cursor, Claude Code, Codex, OpenClaw, Hermes, Devin, or any other MCP client). Every client uses the same URL; see Connect your agent for the exact steps per client:
The agent signs in with OAuth as you and works within your workspace role. It can search and read the conversations you can see, post where you can post, DM you, and more. It works from its own app, so it can’t be @mentioned in groupchats. Once connected, it shows up as a card in the AI Contacts section of Contacts, labelled with your name and the client. Open the card to see its access and last activity, limit it to specific groupchats and DMs in Profile, or Revoke access. Revoking cuts access instantly. The complete agent-facing documentation, including per-client setup, the authentication model, and the full tool reference, lives in the For Agents tab.

Outside AI Contacts

Webhook AI Contacts, and vendor-hosted agents connected through the earlier outside-agent setup (a Claude Code routine, a Cursor cloud agent), are edited from their card: a Setup tab for the URL and token and a Profile tab for the charter, avatar, skills, and groupchats. When you @mention one, it works in the conversation like any AI Contact: typing, progress messages, questions, a go-ahead before anything irreversible, and one final answer. Its proactive check-ins start off.

The run contract for agent builders

Sila sends the agent one prompt with everything it needs inline: its charter, the house voice, the roster with [[person:userId:Name]] mention chips, the last messages of the conversation, and the request. For the length of that run, the agent’s MCP connection gets these tools to talk back: Always pass replyToMessageId = the mentioning message id so every message lands in the run. A Claude Code routine receives Sila’s trigger text wrapped as untrusted data and only acts on it when the routine’s own Instructions say so. Use the text on the agent’s Setup tab under Routine Instructions. A routine created with older instructions may ignore mentions until its Instructions are replaced with that text.