---
title: Code integration
description: How Cuitty Code integrates with the standalone Cuitty Registry service.
section: Registry
order: 8
updatedAt: 2026-06-09
slug: registry/code-integration
---
Cuitty Code integrates with Cuitty Registry without owning registry protocol behavior or registry storage. Code should call Registry through `@cuitty/registry`, service clients, or compatibility proxy routes during migration.

## Integration points

- Repository releases can publish build artifacts to Registry.
- CI pipelines can create scoped tokens and publish packages after protected checks pass.
- Repository pages can show package provenance, versions, images, and SBOM links from Registry.
- Code Apps can target Registry namespaces and packages when their manifests request package permissions.
- Shared Cuitty Auth and SpiceDB relationships let teams express one policy across repositories, apps, packages, and organizations.

## Endpoint discovery

Expose Registry separately from Code:

```toml
[products.code]
url = "https://code.example.com"

[products.registry]
url = "https://registry.example.com"
```

Client code should discover and instantiate Registry directly:

```ts
import { createRegistryClient } from "@cuitty/registry/client";

const registry = createRegistryClient({
  baseUrl: "https://registry.example.com",
  token: process.env.CUITTY_TOKEN,
});

const packages = await registry.packages.list({
  namespace: "acme",
  kind: "oci",
});
```

## Compatibility

Older Code registry URLs should redirect or proxy for a compatibility release. New Code features should not create Registry metadata directly, write Registry blobs under the Code data directory, or duplicate Registry management UI inside the Code frontend.

Use `/product/registry` and `/docs/registry` for product and operator documentation.