ensskills (AI agents)
ensskills is a curated set of agent skills that give AI coding agents—Claude Code, Cursor, Codex, and the rest—a well-defined contract for working with ENS. Left to their own devices, agents reinvent ENS from scratch every prompt, burning context rediscovering the protocol. ensskills hands them the right context—no more, no less—so they produce ENS code that works correctly, the first time.
The skills drive enscli for live ENS lookups and steer agents toward enssdk / enskit when writing integration code.
Pick the path that matches your project. Either way, pin to an exact ensskills version so the skills match the APIs you’re targeting—never track a moving main.
1.15.1. ensskills is version-locked to the ENSNode suite—the Omnigraph schema and
example queries the skills teach are bundled at a specific version—so pin an exact version (no ^ or ~) of ensskills, and drive the matching enscli, both at 1.15.1, to keep your agent's ENS knowledge and queries matched to the
deployed API.
Quickstart (npm/pnpm/yarn/bun)
Section titled “Quickstart (npm/pnpm/yarn/bun)”ensskills is a normal, version-locked npm package: it ships the skills, and skills-npm symlinks them into whichever agent directories you have (.claude/skills, .cursor/skills, …). Because the skills are pinned like any dependency, the version you install is exactly the version that lands—and it stays in lockstep with the rest of your ENSNode suite.
Add both to your project and wire a prepare script:
{"devDependencies": { "ensskills": "1.15.1", "skills-npm": "^1"},"scripts": { "prepare": "skills-npm"}}npm install # symlinks the skills for your detected agentsTuning the install with skills-npm.config.ts
Section titled “Tuning the install with skills-npm.config.ts”By default skills-npm symlinks every skill it discovers into every agent directory it detects. Drop a skills-npm.config.ts in your project root to scope that—useful when your project pulls skills from more than one package, or when you only want to target specific agents:
import { defineConfig } from "skills-npm";
export default defineConfig({// Target specific agents by key (e.g. "claude-code", "cursor", "codex").// Omit to auto-detect every agent you have installed.agents: ["claude-code"],// Pull skills only from the ensskills package, ignoring any others.include: ["ensskills"],// Skip the confirmation prompt so the prepare script runs unattended.yes: true,});The agent is keyed claude-code, not claude—an unrecognized key silently symlinks nothing. See the skills-npm agent list for every supported key.
In a monorepo, skills-npm walks up to the workspace root (it looks for pnpm-workspace.yaml, lerna.json, or a package.json with a workspaces field) and installs there. To scope it to one package instead, run it with --cwd .—i.e. "prepare": "skills-npm --cwd .". See examples/ensskills-example for a worked setup.
Quickstart (npx skills)
Section titled “Quickstart (npx skills)”Not in a Node project? Vercel’s skills tool installs the skills straight from this repo—no package.json, no skills-npm. Point it at the packages/ensskills/skills directory on the matching release tag (the v prefix matters):
# install ensskillsnpx skills add https://github.com/namehash/ensnode/tree/v1.15.1/packages/ensskills/skills --skill '*'It detects your agents and writes the skills into each (.claude/skills, .cursor/skills, …). Bump the tag in the URL to upgrade.
Pinning to an exact version is intentional: ENS skills are version-locked to the ENSNode suite, so you always get skills that match the APIs you’re targeting. With skills-npm that’s the pinned npm version; with npx skills it’s the v… release tag in the URL. Avoid pulling skills from a moving git branch.
Skills included
Section titled “Skills included”ens-protocol—how the ENS protocol works at a conceptual level: the nametree, normalization, namehash/labelhash, registry/resolver/registrar, forward & reverse resolution, primary names, records, and ENS across chains. Vendor-neutral, intentionally stable, with pull-as-needed reference pages. The mental model the other skills build on.omnigraph—the monolithic ENS skill. Teaches the unified ENSv1 + ENSv2 datamodel, resolution viaDomain.resolve/Account.resolve, Relay pagination, a condensed schema reference, vetted example queries, and how to execute and explore queries withenscli.enscli—running ENS lookups from the shell: the output contract, namespace/URL resolution, input hardening, and every command (Omnigraph queries, offline schema exploration,namehash/labelhash, ENSRainbow healing, indexing status).
The following are reserved and ship as stubs today, fleshed out in upcoming releases:
enssdk—TypeScript integration with the typed Omnigraph client.enskit—React integration (useOmnigraphQuery, cache directives, infinite pagination).migrate-to-omnigraph—migrating from the legacy ENS Subgraph.unigraph-sql—SQL over ENSDb for query shapes the Omnigraph doesn’t express.
Built for
Section titled “Built for”- Developers building ENS apps with AI agents in the loop.
- End-users asking AI assistants ENS-shaped questions and expecting answers grounded in the protocol.
- Teams moving from the legacy ENS Subgraph onto the Omnigraph.