Skip to main content
Connect communication tools, analytics platforms, billing, and more — directly from the terminal. OAuth providers open the browser for authentication; API-key providers accept credentials inline.

Supported Providers

OAuth (browser-based)

ProviderCategoryCLI Name
SlackCommunicationslack
GmailCommunicationgmail
Google CalendarCalendargoogle-calendar

API Key

ProviderCategoryCLI NameRequired Fields
StripeBillingstripeapiKey
FirefliesCallsfirefliesapiKey
PylonSupportpylonapiKey
PostHogAnalyticsposthogapiKey, region, projectId
SupabaseDatasupabaseprojectUrl, serviceRoleKey
ClerkAuthclerksecretKey

integrations list

List all available integrations and their connection status.
outlit integrations list

Examples

# Interactive table
outlit integrations list

# JSON for scripting
outlit integrations list --json

integrations add

Connect a new integration.
outlit integrations add <provider> [flags]

Flags

FlagTypeDescription
--configstringJSON config for API-key providers (e.g. '{"apiKey": "sk_xxx"}')
--forcebooleanReconnect even if already connected

OAuth Providers

Opens the browser for authentication. In interactive mode, the CLI polls until the connection completes (up to 5 minutes).
outlit integrations add slack
outlit integrations add gmail --force
In JSON mode, returns a sessionId immediately for agent-side polling:
{
  "status": "awaiting_auth",
  "provider": "slack",
  "sessionId": "uuid"
}

API-Key Providers

Pass credentials via --config:
outlit integrations add stripe --config '{"apiKey": "rk_live_xxx"}'
outlit integrations add posthog --config '{"apiKey": "phx_xxx", "region": "us", "projectId": "12345"}'
In interactive mode without --config, the CLI prompts for each field (secrets are masked). In non-interactive mode without --config, returns the required fields as JSON:
{
  "status": "config_required",
  "provider": "posthog",
  "message": "PostHog requires API key configuration. Pass --config with the required fields.",
  "requiredFields": [
    { "key": "apiKey", "label": "API Key" },
    { "key": "region", "label": "Region (us or eu)" },
    { "key": "projectId", "label": "Project ID" }
  ]
}
AI agents receive config_required automatically (piped stdout triggers JSON mode), so they can read requiredFields and prompt the user or pass --config in a follow-up call.

integrations remove

Disconnect an integration and remove all synced data.
outlit integrations remove <provider> [flags]

Flags

FlagTypeDescription
--yesbooleanSkip confirmation prompt (required in non-interactive mode)

Examples

# Interactive (prompts for confirmation)
outlit integrations remove posthog

# Non-interactive / scripting
outlit integrations remove slack --yes
This permanently deletes all synced data for the integration. This action cannot be undone.

integrations status

Show sync status for connected integrations.
outlit integrations status [provider]

Examples

# Summary of all connected integrations
outlit integrations status

# Detailed per-model sync status for a provider
outlit integrations status stripe

JSON Response (detailed)

{
  "provider": "stripe",
  "syncs": [
    {
      "model": "Customers",
      "status": "syncing",
      "recordCount": 1250,
      "lastSyncedAt": "2026-03-10T12:00:00Z"
    }
  ]
}