Skip to main content

Add a registry

Choose exactly one scope: Aliases use lowercase letters/digits separated by single hyphens, up to 64 characters. The URL must use https:, http:, or file: and serve a protocol-3 registry. Adding a source fetches and validates its index, even during a dry-run. The same alias and URL are an idempotent operation that preserves configured authentication headers. Reusing an alias with another URL, or registering one URL under another alias in the same scope, is a conflict. Remove the old entry before adding the replacement. For a private registry that requires authentication even to read its index, add the URL and header placeholders through config edit first. Then test with search. See authentication.

List and remove sources

Removing a source changes metadata, not installed files. Updates continue fetching from the origins recorded in the receipt, even if an alias is removed or configured with another URL. An explicit add from a different origin is refused for an already owned component; changing metadata does not transfer ownership to a new publisher. Registry commands accept --cwd <directory>, --json, and -q, --quiet as well as their required scope. Only registry add supports --dry-run. Global/project metadata with lockRegistries: true refuses source mutations.

Search available components

Without a scope, search reads global sources. --profile and --project select their own source sets; sources do not cascade between scopes. Search matches names and descriptions, and returns at most 20 results unless you set a positive --limit. Search needs no OpenCode runtime. Registry errors are reported instead of silently presenting incomplete results.

List installed components

list is an alias for search. Installed mode reads the selected destination’s receipt and requires an explicit profile or project. It lists all installed entries; the search query and result limit apply to catalog search, not this receipt listing. It does not refresh or verify files. Search supports --installed, -p, --profile, --project, --limit, --cwd, --json, -q, --quiet, and -v, --verbose. JSON results use data.components.