---
title: "Add skill registry"
method: POST
path: "/v1/environments/{environment_id}/skills-registries"
tags: ["Environment skills"]
---

# Add skill registry

`POST /v1/environments/{environment_id}/skills-registries`

## Request

- Base URL: `https://api.replicas.dev`
- URL: `https://api.replicas.dev/v1/environments/{environment_id}/skills-registries`
- Auth: HTTP bearer

Adds a GitHub repository as a skill registry. Its skills install into new workspaces.

## Path parameters

- `environment_id` string, required

## Headers

- `X-Replicas-Api-Version` '2026-10-07'

## Request body

- object
  - `url` string, required: GitHub repository URL (e.g. https://github.com/org/skills-repo).

## Response `200`

Registry created

- CreateEnvironmentSkillsRegistryResponse
  - `registry` EnvironmentSkillsRegistry, required: A GitHub repository registered as a skill registry on an environment.
    - `id` string, uuid, required
    - `organization_id` string, uuid, required
    - `environment_id` string, uuid, required
    - `name` string, required
    - `url` string, uri, required
    - `repository_full_name` string, required
    - `default_branch` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `repo_skills` RepoSkill[], required
    - `id` string, required: Stable id, formed from the repository UUID and the in-repo path.
    - `repository_id` string, uuid, required
    - `repository_full_name` string, required: Repo's `owner/name` (denormalized for the UI).
    - `branch` string, required: Default branch the file was resolved against.
    - `path` string, required: Repo-relative path of the discovered file or skill directory.
    - `name` string, required: Human-friendly name (from YAML frontmatter when present, otherwise the filename or directory).
    - `description` string, nullable, required: Single-line description, populated from frontmatter when available.
    - `framework` 'claude' | 'codex' | 'cursor' | 'agents', required: Which AI tool owns the discovered file's on-disk convention.
    - `kind` 'skill' | 'agent' | 'command' | 'prompt' | 'plugin', required: Sub-kind within the framework.
    - `html_url` string, uri, required: Direct GitHub blob link.
  - `error` string, nullable, required

## Other responses

- `400`: Bad request - Missing or invalid parameters
- `401`: Unauthorized - Invalid or missing API key
- `409`: Conflict - Resource already exists or operation conflicts with current state
- `500`: Internal server error

---

[API](https://skmtc.dev/replicas/apis/replicas-api.md) - [All operations](https://skmtc.dev/replicas/apis/replicas-api/llms.txt) - [OpenAPI document](https://skmtc.dev/replicas/apis/replicas-api/revisions/2703ac1c9cb7?raw)
