# GitLab Duo CLI (experimental)

GitLab Duo for your command line. An AI-powered CLI tool that brings
[GitLab Duo Chat (Agentic)](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/) to your
terminal.

The GitLab Duo CLI can help you:

- Understand your codebase structure, cross-file functionality, and individual code snippets.
- Build, modify, refactor, and modernize code.
- Troubleshoot errors and fix code issues.
- Automate CI/CD configuration, troubleshoot pipeline errors, and optimize pipelines.
- Perform multi-step development tasks autonomously.

This tool is [experimental](https://docs.gitlab.com/policy/development_stages_support/#experiment)
and some features might not work as expected.

## Installation

Prerequisites:

- Node.js 22 or later.
- A [personal access token](https://docs.gitlab.com/user/profile/personal_access_tokens/) with `api`
  scope.

To install the GitLab Duo CLI globally, run:

```shell
npm install -g @gitlab/duo-cli
```

After installation, start the GitLab Duo CLI in interactive mode:

```shell
duo
```

Alternatively, you can run the GitLab Duo CLI without installing:

```shell
npx -y @gitlab/duo-cli
```

To run a workflow in headless mode, use the command `duo run`:

> [!warning]
> Headless mode bypasses manual tool approval. Use this mode with caution and in a controlled
> sandbox environment.

```shell
duo run --goal "Your goal or prompt here"
```

## Documentation

For detailed setup, usage, troubleshooting, and configuration instructions, see the
[GitLab Duo CLI documentation](https://docs.gitlab.com/user/gitlab_duo_cli/).

## Contributing

See [Development Guide](./docs/development.md) for information on contributing to this project.

## License

See the [License](../../LICENSE) for details.
