> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ccs.kaitran.ca/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab Duo Provider

> Use GitLab Duo through CCS with CLIProxy OAuth or PAT authentication

# GitLab Duo Provider

CCS supports **GitLab Duo** as a CLIProxy OAuth provider with two supported auth
paths:

* browser OAuth
* personal-access-token login (`--gitlab-token-login`)

## Quick Start

```bash theme={null}
# Standard GitLab.com OAuth
ccs gitlab --auth

# Use a GitLab Personal Access Token instead of browser OAuth
ccs gitlab --auth --gitlab-token-login

# Target a self-hosted GitLab instance
ccs gitlab --auth --gitlab-url https://gitlab.example.com

# Run through the provider after auth
ccs gitlab "summarize this merge request"
```

## Backend Requirement

GitLab Duo is a **plus-only** provider.

```yaml theme={null}
cliproxy:
  backend: plus
```

## Authentication Details

| Path               | Notes                                                                      |
| ------------------ | -------------------------------------------------------------------------- |
| Browser OAuth      | local callback flow on port `17171`                                        |
| PAT login          | use `--gitlab-token-login` or legacy alias `--token-login`                 |
| Self-hosted GitLab | pass `--gitlab-url <url>`; CCS switches to paste-callback mode when needed |

## Useful Commands

```bash theme={null}
ccs gitlab --auth
ccs gitlab --auth --gitlab-token-login
ccs gitlab --auth --gitlab-url https://gitlab.example.com
ccs gitlab --accounts
ccs gitlab --use <account>
ccs gitlab --config
ccs gitlab --logout
```

## Config And Storage

| Path                          | Purpose                                              |
| ----------------------------- | ---------------------------------------------------- |
| `~/.ccs/cliproxy/auth/`       | shared OAuth token directory                         |
| `~/.ccs/gitlab.settings.json` | provider settings when a local settings file is used |

## Notes

* Token refresh is delegated to CLIProxy
* model/config surfaces depend on what the upstream CLIProxy management API
  exposes for the provider at runtime

## Related

* [Provider Overview](/providers/concepts/overview)
* [CLI Flags](/reference/cli-flags)
* [CLIProxy API](/features/proxy/cliproxy-api)
