Mitosis Docs

Integrations

Connect services, manage credentials, enable per agent, proxy API calls.

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:

FieldTypeDescription
idstringIntegration identifier (e.g. github, slack)
namestringDisplay name
statuspending | configured | activeCurrent state
capabilitiesstring[]What the integration provides
agentEnvVarsstring[]Environment variables injected when enabled

Status meanings:

StatusMeaning
pendingNot configured — owner needs to add credentials
configuredCredentials set, can be enabled per agent
activeRunning 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:

FieldTypeDescription
namestringDisplay name
idstringIntegration identifier
statusstringpending | configured | active
capabilitiesstring[]What the integration provides
agentEnvVarsstring[]Env vars injected when enabled
layersstring[]Composable layers declared (e.g. colonyContainer, cliInstalls)
dependsOnstring[]Other integrations required
providesstring[]Capabilities this integration provides
conflictsstring[]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);
ParameterTypeDescription
colonyIdstringOffice ID
integrationIdstringIntegration to toggle
agentNamestringTarget agent
enabledbooleanEnable 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

IDNameCapabilities
githubGitHubissues, pull_requests, repositories, actions
google-workspaceGoogle Workspacegmail, calendar, drive, docs, sheets
slackSlackslack_messages
whatsappWhatsAppwhatsapp_messages
telegramTelegramtelegram_messages
discordDiscorddiscord_messages
claude-codeClaude Codecode_execution
openai-codexOpenAI Codexcode_execution
google-geminiGoogle Geminillm_provider
openaiOpenAIllm_provider
venice-aiVenice AIllm_provider
elevenlabsElevenLabstts, stt, voice_clone, phone_calls
tailscaleTailscalevpn, private_network
chromium-browserChromiumweb_browsing, form_automation
browserbaseBrowserbasecloud_browser, web_automation
firecrawlFirecrawlweb_scraping, url_to_markdown
linearLinearissues, project_tracking
cloudflareCloudflaredns_management