
# Use Integrations from the CLI

Integrations give an agent a real identity in an external system - a GitHub or GitLab account it can act as. This guide is the CLI how-to; for what integrations are and when to use each mode, see the [Integrations overview](/integrations/).

## Link a GitHub identity

Give an agent a GitHub personal access token:

```bash
dvx agent integration github link my-agent --pat <token>
```

Omit `--pat` to be prompted via stdin instead of putting the token in your shell history. Remove it with:

```bash
dvx agent integration github unlink my-agent
```

## Link a GitLab identity

By personal access token:

```bash
dvx agent integration gitlab link my-agent --pat <token> --instance-url https://gitlab.com
```

Or via a **credential provider**, which provisions a per-agent identity automatically (no shared token to manage):

```bash
dvx agent integration gitlab link my-agent --credential-provider <id>
# add --project-id <id> if the provider uses project-access-token mode
```

## Manage credential providers

A credential provider is an org-level connection that mints per-agent identities on demand. Set one up once, then reference it when linking agents:

```bash
dvx credential-provider create \
  --provider gitlab \
  --name "GitLab (acme group)" \
  --instance-url https://gitlab.com \
  --provider-token <admin-or-group-token>

dvx credential-provider list
dvx credential-provider rotate <id>     # rotate the provider's token
dvx credential-provider delete <id>
```

See [Credential Providers](/gitlab-integration/#credential-providers) for the provisioning modes and how per-agent identities are issued.

## Telegram

Telegram is a **channel**, not an integration - connect it with `dvx agent channel telegram link`. See [Configure your agent](/configure-agent/) and [Set Up an Agent](/agent-setup/).
