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

# Getting started

> Set up Trunk, add Dynamic CI to your CI provider, then turn on enforcement.

> [!WARNING]
>
> Dynamic CI is in **private beta**, and your organization has to be enabled for
> it first. [Reach out to Trunk](https://slack.trunk.io) for access.

**1. Set up Trunk CI**

Dynamic CI decides from your CI history, so Trunk has to be collecting it.
Follow [Set up Trunk CI](/ci/get-started) for your provider, then copy your
organization's **API Token** from
[Settings → Organization → General](https://app.trunk.io/settings/organization/general).

**2. Add Dynamic CI to your CI**

> **[GitHub Actions](/ci/dynamic-ci/getting-started/github-actions)**
>
> Add a filter job to your workflow.

> **[Buildkite](/ci/dynamic-ci/getting-started/buildkite)**
>
> Add the plugin to your pipeline upload.

Your repository starts in **Learning** mode: Trunk records a verdict for
every job and skips nothing.

**3. Turn on enforcement**

When the recommendations look right, open
[Dynamic CI](https://app.trunk.io/dynamic-ci) in the Trunk app, select your
repository, and set the **Dynamic CI mode** to **Enforced**. Only an
organization admin can change it.
