Skip to main content
Connections in Duvo are your personal authorized accounts linked to integrations — for example, your Gmail or Slack account. The CLI lets you list and inspect Connections from the terminal, and discover which Connection types your team has enabled. For an overview of what Connections are and how to add new ones, see Connections Overview and How to Add a Connection.

Available Connection types

duvo integrations is the catalog of services your team has enabled in Duvo. Use it to find Connection-type IDs that you can pass to other commands.
duvo integrations list                        # list the team's integration catalog
duvo integrations list --json                 # raw JSON for scripting
Each entry shows the Connection type’s id, name, type, provider, and auth_method (none, OAuth, API key, custom headers, etc.).

Custom integrations

If your team uses a custom MCP server, register it as a custom integration so Connections can be created against it:
duvo integrations custom create \
  --name "Internal Tools" \
  --server-url https://mcp.internal.acme.com \
  --auth-method url                             # register a custom MCP integration
duvo integrations custom delete <custom-integration-id>   # remove it (prompts unless -y)
--auth-method is required and must be one of url (no auth), apikey, headers, or oauth. For oauth, pair it with --oauth-client-id and --oauth-client-secret if your server isn’t DCR-capable.

Listing your Connections

duvo connections shows the Connections you’ve personally authorized.
duvo connections list                         # list every Connection you own
duvo connections list --type gmail            # filter to one integration type
duvo connections list --json                  # raw JSON for scripting
The table includes the Connection ID, name, Connection type, provider, and creation date. Use the ID with duvo connections get or to pin a Connection to a Revision (see Advanced commands).

Inspecting a single Connection

duvo connections get <connection-id>          # full details for one Connection
duvo connections get <connection-id> --json
The output includes the integration metadata and which credential fields are configured. Secret values (API keys, tokens, passwords) are never returned — the response only tells you which fields are set, not their values.

Common workflows

Find the Connection ID for a specific account

When you have multiple Gmail Connections (different mailboxes, for example) and need to reference a specific one in a Revision:
duvo connections list --type gmail --json | jq '.connections[] | {id, name, created_at}'

Pin a Connection to an Assignment Revision

Once you have the Connection ID, pin it so the Assignment always uses that account:
duvo revision-integrations connections pin <connection-id> \
  --agent <agent-id> \
  --revision <revision-id> \
  --integration <integration-id>
See Advanced commands → Pinned Connections for the full reference.

Authorizing a Connection from the CLI

OAuth-based Connections require a browser consent step, so duvo oauth starts the flow and hands you the authorization URL to open. Once you approve in the browser, the Connection is created on your account.
duvo oauth native start <provider>            # start a native OAuth flow (Gmail, Google Sheets, Outlook, ...)
duvo oauth composio connect                   # start a Composio OAuth flow (Slack, HubSpot, Zendesk, ...)
duvo oauth composio start                     # initiate Composio authorization

duvo oauth mcp probe <url>                    # inspect an MCP server's auth requirements
duvo oauth mcp check --url <url>              # check whether an MCP server needs OAuth
duvo oauth mcp authorize --url <url> \
  --integration-type <type>                   # authorize an OAuth-protected MCP server
These commands kick off interactive OAuth flows. For the full setup experience — including which providers your team has enabled — the Connections page in the dashboard remains the simplest path.
For credential-based Connections (username/API key) rather than OAuth, see Secrets and Logins, or call the Public API directly.