Prerequisites
- You are an admin of the workspace. Members can list registries; adding, changing, syncing and removing them is the admin’s.
- For a private repository: a workspace secret holding a GitHub token that can read it.
API=http://localhost:8000, a bearer token in $TOKEN, your workspace slug in $WORKSPACE, and its id in $WORKSPACE_ID./w/<workspace>/settings/registries) and Policies.
Steps
Choose the source
- GitHub repository
- Index URL
Every folder holding a
SKILL.md is one skill. source_url is
owner/repo; source_ref is a branch, tag or commit (the default
branch when unset); source_path limits the index to one folder (the
repository root when unset). The skill’s name comes from the
SKILL.md frontmatter, else from the folder name.A GitHub registry holds skills only, and at most 200 skill folders.Choose mode and trust
A registry with credentials is always
mirror: the token is used to sync,
never to install. official and verified are reserved to platform
registries.Add the registry
credentials_secret_id for a public repository. For an index, send
"source_type": "url" and the index URL as source_url. Send
"registry_type": "agents" for an agents index; the default is skills.
The response carries the registry’s id.The registry keeps the secret’s id and reads its value only during a sync.
The token is sent to GitHub; an index URL is always fetched without it.Sync it
?force=true to read it anyway. Unless the operator
enabled scheduled syncing of workspace registries, a registry changes only
when you sync it.Restrict where members install from
Install rules are policy rules on the workspace (or on a user) with effect
In the web app: Policies → New rule, rule type Installs, then
Allow installs only from or Deny installs from, and pick trust
levels, registries or Direct GitHub imports.The rules apply to new installs, updates, edits of catalog items, direct
GitHub imports, and tasks that use a catalog skill or agent the workspace
never installed. A skill installed before the rule keeps working.
allow or deny and one of these targets:A deny always wins. Once any allow rule exists, installs come only from what
an allow names. To allow your own registries and the platform’s official
ones, and nothing else:
Verify
Read the registry back:last_synced_at is set, last_sync_error is null, and item_count is the
number of skills found. On Settings → Registries the registry is under
Workspace registries; the platform’s own are listed below it under
Platform registries, read-only.
In Explore, the registry’s skills carry a badge with its name and
trust, for example acme-skills · Private. Install one, then confirm a refused
source answers 403 with the rule that decided it.
Troubleshooting
Sync answers 502 with a reason
Sync answers 502 with a reason
The reason is a classification of what went wrong, never the source’s own
text:
GitHub answered 404 (wrong repository, or a private one without
credentials), the source answered HTTP 403, the source is not a valid JSON or YAML index. The same text is stored in last_sync_error."holds more than 200 skills" or "GitHub truncated the tree"
"holds more than 200 skills" or "GitHub truncated the tree"
The repository is too large to index in one sync. Set
source_path to the
folder that holds the skills.Sync answers 429
Sync answers 429
A workspace may start one sync per minute. Wait and retry.
Adding the registry answers 400
Adding the registry answers 400
The message names the rule: an index URL must be public
https; a
workspace registry’s trust is private or community; a skills registry
read with credentials must be mirror.Removing the registry answers "retired"
Removing the registry answers "retired"
Installed skills still use some of its items. The registry leaves the
catalog and stops syncing; those skills keep working and show Removed
upstream. It is deleted once nothing uses its items.
Related
Registry and catalog
Scope, mode, trust, pinned installs and content by digest
Attach skills to an agent
Install a skill from the catalog, update it, attach it
Configure the platform registries
The registries every workspace sees
Policy syntax
Every target, effect and subject a rule accepts