Agent Native

domains

Manage domain registration, transfers, renewals, and DNS configuration on Vercel.

by VercelOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (vercel, vercel-labs)

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
License
Apache-2.0 (permissive)
Pin
2a1e58dpinned Oct 9, 2026
Context cost
about 1,900 tokenswhen the skill loads
GitHub stars
300on vercel/vercel-plugin
Scripts
None found

What it does

“Search, register, connect, transfer, and renew domain names on Vercel using the CLI or Domains Registrar API. Use for domain availability and pricing, custom domains, DNS records, nameservers, ownership verification, and domain orders.”
The author's description, from SKILL.md

Generated summary from the skill's own text

Manage domain registration, transfers, renewals, and DNS configuration on Vercel. Search domain availability and pricing without authentication via the Registrar API, then handle authenticated operations like registration, transfers, and DNS record management through the Vercel CLI or REST API.

When to use it

  • Check domain availability and pricing before purchase decisions
  • Register, transfer, or renew domains on Vercel
  • Configure DNS records and verify domain ownership
  • Manage domain assignment across Vercel projects

When not to

  • Managing domains registered elsewhere without Vercel involvement
  • Generating domain name suggestions or brainstorming names
  • Handling non-Vercel DNS or registrar operations

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add vercel/vercel-plugin --skill domains

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install vercel/vercel-plugin domains@2a1e58dfb63c064c2589c0c21b3e93c53728f8d5

Installs the commit we checked (2a1e58d).

Copy by hand

Download the folder at 2a1e58d and put it in .claude/skills/domains for Claude Code and in .agents/skills/domains for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at 2a1e58d

Claude Code plugin

/plugin install vercel@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "domains" by Vercel.

Source, pinned to commit 2a1e58dfb63c064c2589c0c21b3e93c53728f8d5:
https://github.com/vercel/vercel-plugin/tree/2a1e58dfb63c064c2589c0c21b3e93c53728f8d5/skills/domains

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/domains/ for Claude Code and .agents/skills/domains/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/vercel/domains

SKILL.md at the pin

---
name: domains
description: Search, register, connect, transfer, and renew domain names on Vercel using the CLI or Domains Registrar API. Use for domain availability and pricing, custom domains, DNS records, nameservers, ownership verification, and domain orders.
summary: Search domains without authentication; manage registration, project assignment, DNS, transfers, and renewals with Vercel CLI or API.
metadata:
  priority: 7
  docs:
    - "https://vercel.com/docs/domains/registrar-api"
    - "https://vercel.com/docs/cli/domains"
    - "https://vercel.com/docs/cli/dns"
    - "https://openapi.vercel.sh"
  sitemap: "https://vercel.com/sitemap.xml"
  pathPatterns: []
  bashPatterns:
    - '\b(?:vercel|vc)\s+(?:domains?|dns)\b'
    - 'https://api\.vercel\.com/v1/registrar/'
  importPatterns: []
  promptSignals:
    phrases:
      - "domain name"
      - "domain search"
      - "domain availability"
      - "domain pricing"
      - "buy a domain"
      - "register a domain"
      - "transfer a domain"
      - "renew a domain"
      - "renew my domain"
      - "custom domain"
      - "dns record"
      - "nameserver"
      - "registrar api"
      - "vercel domains"
      - "vercel dns"
    allOf:
      - [domain, vercel]
      - [domain, register]
      - [domain, renew]
      - [domain, transfer]
    anyOf:
      - "availability"
      - "pricing"
      - "dns"
      - "registrar"
    minScore: 6
---

# Domains

Use the public Registrar API for unauthenticated discovery. Use the installed Vercel CLI for account and project operations, or the REST API for structured automation. `vc` and `vercel` are equivalent.

Registration, Vercel team ownership, project assignment, and authoritative DNS are separate. Connecting an already-owned domain does not require buying it or transferring its registration.

## Search before asking for credentials

Start exact-name research with one request returning availability and pricing together:

```bash
curl --fail-with-body --silent --show-error \
  https://api.vercel.com/v1/registrar/domains/search \
  --header 'Content-Type: application/json' \
  --data '{"domains":["example.com","example.dev","example.app"]}'
```

Send 1–200 exact domain names per request. The endpoint checks the supplied names; it does not generate suggestions. Generate candidates from the user's naming constraints, then batch them. No Vercel account, token, or project link is needed.

Results preserve input order. Available entries include `domain`, `available`, `years`, `price`, `renewalPrice`, and `premium`; prices are USD for the returned term. Report registration and renewal costs with that term, and flag premium domains. `available: false` means unavailable **or availability could not be confirmed**; it does not prove someone owns the name. Missing prices are unknown, not zero. Availability and quotes can change before purchase.

For keyword/TLD discovery, a recent CLI can generate candidates:

```bash
vercel domains search acme --tld com --tld dev --available --format=json
vercel domains check example.com example.dev --format=json
vercel domains price example.com --format=json
```

Check `vercel domains --help` and the selected subcommand's `--help` against the installed version. If discovery is unavailable or the CLI asks for login, use the public endpoint directly. CLI `search` accepts a keyword; API `search` accepts exact names. Do not substitute one input shape for the other.

## Connect and diagnose an existing domain

For authenticated work, inspect `vercel whoami` and use `--scope <team>` when selecting a team. Resolve the intended project before changing its domains.

```bash
vercel domains ls --scope my-team
vercel domains inspect example.com --scope my-team
vercel domains add example.com my-project --scope my-team
vercel domains verify example.com --project my-project --format=json --scope my-team
```

Use the actual expected DNS records and ownership-verification values returned for that domain and project. Do not hardcode a universal A record or CNAME target. Configure records at the authoritative DNS provider; `vercel dns` changes Vercel DNS only. Preserve unrelated records, especially MX and email-verification TXT records. Nameserver changes require carrying over the zone's required records.

| Task | CLI |
| --- | --- |
| List DNS records | `vercel dns ls example.com` |
| Inspect a record | `vercel dns inspect <record-id> --format=json` |
| Add the required TXT record | `vercel dns add example.com <record-name> TXT <record-value>` |
| Update an existing record | `vercel dns update <record-id> --value <record-value>` |
| Remove a specific record | `vercel dns rm <record-id>` |
| Move team ownership | `vercel domains move example.com <destination-team>` |
| Remove team ownership | `vercel domains rm example.com` |

After a change, rerun `domains verify` and check DNS propagation and HTTPS. Verification can exit nonzero while returning useful JSON describing the mismatch. An accepted DNS write is not proof that DNS has propagated or a certificate is ready. `domains add --force` can detach the domain from another project; use it only when that reassignment is intended. Removing team ownership is not a registrar transfer or cancellation of registration.

## Purchase, transfer, and renew

Use existing authorization for the exact domain, term, price, and renewal preference. If those choices are unresolved, prepare the current quote before asking. Do not treat a discovery request as permission to purchase. Use real user-provided registrant information and keep tokens, contact data, and transfer codes out of logs and committed files.

| Task | CLI |
| --- | --- |
| Register a domain | `vercel domains buy example.com` |
| Transfer from another registrar | `vercel domains transfer-in example.com` |
| Renew registration | `vercel domains renew example.com` |
| Enable or disable automatic renewal | `vercel domains auto-renew example.com on` / `off` |

Purchase, transfer, and renewal flows may require interactive input. JSON output does not bypass renewal's charge confirmation. For an authorized noninteractive operation, use the Registrar API with the required payload instead of inventing CLI flags. Moving between Vercel teams uses `domains move`, not `transfer-in`.

## Registrar API

Base URL: `https://api.vercel.com`. Consult the [live OpenAPI schema](https://openapi.vercel.sh) for the selected operation's request and response fields before constructing a mutation.

### Public discovery

Use the [Registrar API reference](https://vercel.com/docs/domains/registrar-api) for public TLD metadata, term-specific domain prices, availability, and contact requirements. These operations require no authentication. Bulk availability and price calls accept 1–50 domains; search accepts 1–200.

TLD base prices do not quote premium domains. Use domain-specific prices for the requested term; price endpoints return `purchasePrice`, unlike search's `price`. Some price fields can be strings rather than numeric quotes; do not submit those as `expectedPrice`.

### Authenticated operations

Send `Authorization: Bearer <token>` and use `?teamId=<team-id>` for the intended team. Use `Content-Type: application/json` for JSON bodies. Reuse a securely available token; do not ask for one for public discovery.

Use the selected operation in the live schema for purchases, transfers, renewals, automatic renewal, nameservers, and contact verification. Inspect asynchronous results with `GET /v1/registrar/orders/{orderId}`. An empty nameservers array selects Vercel defaults; contact verification is unavailable for the first 30 minutes after purchase.

For purchases, retrieve the contact schema and supply required TLD-specific values through the purchase payload's `contactInformation.additional` field. For transfers, use only contact fields accepted by that operation's live schema; it does not accept the purchase-only `additional` field. Punycode purchases require a supported `languageCode`; inspect the TLD metadata. Quote the exact operation and term, then use that numeric quote as `expectedPrice`. Reassess a price mismatch against the user's authorized spend instead of silently accepting an increase.

Purchases, renewals, and transfers can complete asynchronously. Save the returned order ID, inspect the order and each domain's status, and report pending or failed outcomes accurately. If a submission times out, reconcile its order status before resubmitting a charge. Stop polling when completed or failed; if still pending after a bounded check, return the order ID and next status-check action. Complete any required registrant email verification.

Use `/v1/registrar/*` for registrar operations instead of sunset legacy purchase, price, availability, or transfer endpoints. Existing project-domain and DNS APIs serve separate purposes; the registrar API does not replace them.

From vercel/vercel-plugin at 2a1e58d, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.

View SKILL.md on GitHub at 2a1e58d

Files

2 files, 9.0 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at 2a1e58d
All 50 skills from Vercel

More from Vercel

  • next-bundle-optimizer

    Audits Next.js applications to identify and reduce browser bundle size and initial-load work by analyzing routes, dependencies and client outputs.

    Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago

  • next-cache-components-optimizer

    Optimize Next.js routes to display meaningful UI instantly on initial load or client navigation by encoding the optimization goal as a failing…

    Claude Code, Codex, Cursor +4 · about 5.6K tokens · pinned 6 days ago

  • next-partial-prefetching-adoption

    Enables Partial Prefetching in Next.js 16.3+ apps and guides adoption through auditing Link prefetch behavior, preserving UI in tests or manually, and…

    Claude Code, Codex, Cursor +4 · about 6.7K tokens · pinned 6 days ago

  • next-partial-prefetching-optimizer

    This skill optimizes Next.js client-side navigation under Partial Prefetching by defining what UI loads before and after a click.

    Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago

  • apple

    This skill emulates Apple's OAuth and OIDC services for local development and testing.

    Claude Code, Codex, Cursor +4 · about 1.9K tokens · pinned 6 days ago

  • aws

    This skill emulates AWS cloud services locally, providing S3 bucket and object operations, SQS message queues, IAM user and role management, and STS assume…

    Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago

All Cloud and DevOps skills
  • vercel

    This skill deploys and manages Vercel applications, handling deployments, aliases, logs, and monitoring.

    by SentryOfficial publisher

    Claude Code, Codex, Cursor +4 · about 610 tokens · pinned 6 days ago

  • databricks-model-serving

    Manages Databricks Model Serving endpoint lifecycle including creation, configuration, traffic routing, and monitoring.

    by DatabricksOfficial publisher

    Claude Code, Codex, Cursor +3 · about 3.2K tokens · pinned 6 days ago

  • access-protected-vercel-deployment

    The skill enables agents to access Vercel deployments protected by authentication, SSO, or Deployment Protection.

    by VercelOfficial publisher

    Claude Code, Codex, Cursor +3 · about 1.2K tokens · pinned 6 days ago

  • bootstrap

    This skill orchestrates the setup process for Vercel-linked repositories by executing project linking, environment provisioning, database configuration, and…

    by VercelOfficial publisher

    Claude Code, Codex, Cursor +3 · about 1.5K tokens · pinned 6 days ago

  • cdn-caching

    This skill helps debug Vercel's CDN caching layers (CDN Cache, ISR, and PPR) by analyzing cache hit rates, revalidation behavior, cost patterns, and…

    by VercelOfficial publisher

    Claude Code, Codex, Cursor +3 · about 4.8K tokens · pinned 6 days ago

  • deployments-cicd

    This skill provides expert guidance on Vercel deployments and CI/CD workflows, covering preview and production deployments, the `vercel` CLI commands…

    by VercelOfficial publisher

    Claude Code, Codex, Cursor +3 · about 2.6K tokens · pinned 6 days ago

Open roles at Vercel

5 of 11 open roles on the jobs board

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use