> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/miscellaneous-integrations/private-registries/cloudsmith.md).

# Cloudsmith

Route your registry traffic through Aikido's registry proxy by adding it as an upstream on your Cloudsmith repository. Cloudsmith pulls packages from Aikido instead of the public registries, so every package your team installs is checked for malware, age restrictions, and known vulnerabilities.

{% stepper %}
{% step %}

### Get your Aikido proxy URL

Go to [Settings > Registry Proxy](https://app.aikido.dev/issues/fix/extended-lifecycle-support/setup-instructions), select your ecosystem and copy the upstream proxy URL

<figure><img src="/files/oyKWj4laA41iYJBJDujH" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Add an Upstream in Cloudsmith

1. In Cloudsmith, open the repository you want to route through Aikido.
2. Go to the **Sources** tab and click **+ Configure upstream**.
3. Choose **Manual setup** and select the format that matches your ecosystem (npm, Python, Maven, or NuGet).
4. Give the upstream a **Name**, for example `aikido`.
5. Set the **Proxy URL** to your Aikido proxy URL from step 1.
6. Set the **Mode** to **Cache and Proxy** so Cloudsmith serves packages that Aikido has approved.
7. Leave **SSL Verification** enabled and set a **Priority** (higher priority upstreams are resolved first).
8. Save the upstream.
   {% endstep %}

{% step %}

### Configure Developer Machines to use Cloudsmith

Point each developer's package manager at your Cloudsmith repository. Cloudsmith provides copy-paste setup snippets, pre-configured with your namespace and repository, under the repository's **Setup** instructions. See Cloudsmith's documentation for the exact steps, including authentication:

{% tabs %}
{% tab title="npm" %}
[npm Registry](https://docs.cloudsmith.com/formats/npm-registry)
{% endtab %}

{% tab title="Python" %}
[Python Repository](https://docs.cloudsmith.com/formats/python-repository)
{% endtab %}

{% tab title="Maven" %}
[Maven Repository](https://docs.cloudsmith.com/formats/maven-repository)
{% endtab %}

{% tab title="NuGet" %}
[NuGet Feed](https://docs.cloudsmith.com/formats/nuget-feed)
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### (Optional) Block the public registry with Device Protection

Once Cloudsmith is in place, developers can still bypass it by pointing their package manager directly at the public registry. Deploy Aikido Device Protection to enforce that all traffic goes through your private registry.

{% content-ref url="/pages/sa7N9YXthBxZbm6WmKBq" %}
[Block Public Package Registries](/aikido-device-protection/using-aikido-endpoint/block-public-package-registries.md)
{% endcontent-ref %}
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.aikido.dev/miscellaneous-integrations/private-registries/cloudsmith.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
