Skip to content

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.

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:

package.json
{
"devDependencies": {
"ensskills": "1.15.1",
"skills-npm": "^1"
},
"scripts": {
"prepare": "skills-npm"
}
}
Terminal window
npm install # symlinks the skills for your detected agents

Tuning 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:

skills-npm.config.ts
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,
});

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):

Terminal window
# install ensskills
npx 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.

  • 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 via Domain.resolve / Account.resolve, Relay pagination, a condensed schema reference, vetted example queries, and how to execute and explore queries with enscli.
  • 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.
  • 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.