Sextant

Docs

Install

Sextant is a shadcn/ui registry. Widgets install with the standard shadcn CLI — the file is copied into your project and inherits your existing theme tokens. Requires the shadcn CLI 4.x and a configured shadcn project (a components.json at the repo root).

Option A — Install by URL (zero config)

The fastest way to try a free widget. Pass the registry URL directly — no setup, nothing to add to components.json:

npx shadcn add https://sextant.sh/r/chart-anomaly-timeseries.json

Works for any free-tier widget. Paid widgets return 401 over this form — use Option B with a license key.

Option B — Register the @sextant namespace (recommended)

Add the namespace once and every widget installs with the short form npx shadcn add @sextant/<slug>. Add a registries block to your components.json:

{
  "$schema": "https://ui.shadcn.com/schema.json",
  "registries": {
    "@sextant": "https://sextant.sh/r/{name}.json"
  }
}

Then install any free widget by slug:

npx shadcn add @sextant/chart-anomaly-timeseries

Paid widgets — add your license key

Paid widgets are authenticated. After purchasing a license, use the object form of the registry entry so the CLI sends your key as a bearer token:

{
  "registries": {
    "@sextant": {
      "url": "https://sextant.sh/r/{name}.json",
      "headers": {
        "Authorization": "Bearer ${SEXTANT_LICENSE_KEY}"
      }
    }
  }
}

Set the key in your shell or a .env the CLI can read — never commit it:

export SEXTANT_LICENSE_KEY="lic_xxx"

The ${SEXTANT_LICENSE_KEY} placeholder is expanded by the shadcn CLI at install time, so the key stays out of your committed config.

For AI coding agents

Sextant ships an MCP server (sextant_search, sextant_inspect, sextant_infer, sextant_bind) and serves /llms.txt and /llms-full.txt so an agent can search the catalog, read a widget’s Zod data contract, bind your data, and emit a ready-to-paste install command.

Stuck? Browse the full catalog — every widget page shows its exact install command.