Integrations
Integrations connect agents to external services — GitHub, Slack, WhatsApp, LLM providers, and more. They're configured at the colony level (you set up credentials once), then toggled on per agent (you control which agents can use which services).
This two-level model exists for security: the colony holds the API keys, and you decide which agents get access. An agent can request an integration it needs, but the colony owner must approve and configure it.
Agents discover available integrations automatically — they know what's configured, what's enabled for them, and what they can request.
List integrations
Returns all integrations available in the colony with their current status.
mi integrations list --colony <colonyId>
const integrations = await client.integrations.listOffice(colonyId);
Response fields:
| Field | Type | Description |
|---|---|---|
id | string | Integration identifier (e.g. github, slack) |
name | string | Display name |
status | pending | configured | active | Current state |
capabilities | string[] | What the integration provides |
agentEnvVars | string[] | Environment variables injected when enabled |
Status meanings:
| Status | Meaning |
|---|---|
pending | Not configured — owner needs to add credentials |
configured | Credentials set, can be enabled per agent |
active | Running and connected |
List available models
Returns LLM models available through a provider integration.
mi integrations models --colony <colonyId> --provider google
const models = await client.integrations.listModels(colonyId, 'google');
Response: [{ id: string, name: string }]
Inspect an integration
Shows full details for an integration including capabilities, environment variables, composable layers, and dependencies.
mi integrations inspect --colony <colonyId> github
Response fields:
| Field | Type | Description |
|---|---|---|
name | string | Display name |
id | string | Integration identifier |
status | string | pending | configured | active |
capabilities | string[] | What the integration provides |
agentEnvVars | string[] | Env vars injected when enabled |
layers | string[] | Composable layers declared (e.g. colonyContainer, cliInstalls) |
dependsOn | string[] | Other integrations required |
provides | string[] | Capabilities this integration provides |
conflicts | string[] | Integrations that can't coexist |
Check integration status
Shows both office-level and per-agent status for an integration.
mi integrations status --colony <colonyId> github
Returns office-level status (pending/configured/active) and whether the calling agent has the integration enabled, plus runtime status if available.
Configure credentials
Sets the API key or credentials for an integration at the colony level.
await client.integrations.setSecret(colonyId, 'github', {
secretName: 'github-<colonyId>',
data: { GITHUB_TOKEN: 'ghp_...' },
});
Remove credentials
await client.integrations.deleteSecret(colonyId, 'github');
Enable for an agent
Toggles an integration on or off for a specific agent. The integration must be configured first.
await client.integrations.toggleAgent(colonyId, 'github', 'analyst', true);
| Parameter | Type | Description |
|---|---|---|
colonyId | string | Office ID |
integrationId | string | Integration to toggle |
agentName | string | Target agent |
enabled | boolean | Enable or disable |
Agent's enabled integrations
const mine = await client.integrations.myIntegrations(colonyId, 'analyst');
Request an integration
Agents can request integrations they need. The request is stored and shown to the colony owner. When the owner configures the credentials, the integration is automatically enabled for requesting agents.
await fetch(`/api/offices/${colonyId}/integration-requests`, {
method: 'POST',
body: JSON.stringify({
integrationId: 'github',
agentName: 'analyst',
reason: 'Need to create pull requests',
}),
});
Integration proxy
Call a third-party API through the integration proxy. Credentials are injected server-side — the caller never sees them.
const repos = await client.integrations.proxy(colonyId, 'github', '/user/repos');
Available integrations
| ID | Name | Capabilities |
|---|---|---|
github | GitHub | issues, pull_requests, repositories, actions |
google-workspace | Google Workspace | gmail, calendar, drive, docs, sheets |
slack | Slack | slack_messages |
whatsapp | whatsapp_messages | |
telegram | Telegram | telegram_messages |
discord | Discord | discord_messages |
claude-code | Claude Code | code_execution |
openai-codex | OpenAI Codex | code_execution |
google-gemini | Google Gemini | llm_provider |
openai | OpenAI | llm_provider |
venice-ai | Venice AI | llm_provider |
elevenlabs | ElevenLabs | tts, stt, voice_clone, phone_calls |
tailscale | Tailscale | vpn, private_network |
chromium-browser | Chromium | web_browsing, form_automation |
browserbase | Browserbase | cloud_browser, web_automation |
firecrawl | Firecrawl | web_scraping, url_to_markdown |
linear | Linear | issues, project_tracking |
cloudflare | Cloudflare | dns_management |
Looking for the docs index? Browse all guides.