Nori Skillsets
Install, translate, and switch agent skill configurations across many coding agents with one CLI.
- Source repo
- tilework-tech/nori-skillsets
- Stars
- ★ 170
- Last updated
- 26d ago
- License
- Apache-2.0
- Primary language
- TypeScript
- FA score
- 38/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude CodeChatGPT (Partial support)
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A developer who runs both Claude Code and Codex and wants one skill source that installs into each tool's native layout.
- Not a fit if
- Windows users: only Mac and Linux are supported
- Anyone who wants to hand-edit .claude/ or .cursor/ directly, since switching wipes those changes
- Teams without any supported coding agent CLI installed
- Source review
- 38/100 · Major gaps
What does this agent do, and when should you use it?
Nori Skillsets is an npm CLI (nori-skillsets) that installs and manages "Skillsets" from the noriskillsets.dev registry — bundles containing skills, AGENTS.md/CLAUDE.md instructions, subagents, slash commands, and MCP server configs. It keeps a library under ~/.nori/profiles/; on switch it wipes the existing configuration in each targeted agent's directory, then translates the same skillset into the on-disk format each agent expects and writes it out. Supported targets include Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot, OpenCode, Goose, Kilo, Kimi CLI, Pi, OpenClaw, and Droid. Skill files can branch per agent with {{claude-code …}}{{codex …}}{{else …}} template syntax, so one file installed for two agents produces two different results. Teams can also run private registries to share reviewed configurations internally. The tool only distributes configuration; inference is performed by whichever coding agent you already run.
The client is a global npm package whose commands include init (create cwd/.nori/profiles and capture your existing configs), download <name> (pull a skillset from noriskillsets.dev), switch <name> (activate it), and config (choose target agents). On switch it clears the existing contents of agent directories such as .claude/, .cursor/, .codex/, and .gemini/, then writes skills/ SKILL.md files, subagents/, slashcommands/, AGENTS.md and CLAUDE.md, and translates each JSON server definition under mcp/ into .mcp.json for Claude, config.toml for Codex, settings.json for Gemini, and mcp.json for Cursor. Registry entries on noriskillsets.dev are reviewed for effectiveness, clarity, and proper implementation. The template layer supports inline {{claude-code …}} and block {{#claude-code}}…{{else codex}}…{{/}} forms, documented via nori-skillsets syntax, leaves unknown tags and fenced code blocks untouched, and offers path placeholders such as {{skills_dir}}.
- A developer who runs both Claude Code and Codex and wants one skill source that installs into each tool's native layout.
- An engineer who toggles between workflows (TDD, debugging, code review, git automation) across projects and needs to swap whole configurations quickly.
- A tech lead standardizing a proven agent setup across a team via a private registry so everyone installs the identical configuration.
- A newcomer who wants a reviewed skillset as a starting point instead of writing AGENTS.md and SKILL.md from scratch.
- A team distributing MCP server definitions alongside skills, letting the client emit the different config files each agent needs.
- Someone scoping agent configuration to a single project directory by running init inside that project.
How do you install or deploy this agent?
You need Node.js 22 or higher, at least one supported coding agent CLI installed, and a Mac or Linux system.
npm install -g nori-skillsetsConfirm the CLI is available:
nori-skillsets --helpPrivate team registries require contacting noriagentic.com; the README does not document the credential setup for them.
How do you use this agent?
Initialize a skillsets folder in your project directory and capture existing configs:
nori-skillsets initDownload a skillset from the registry and switch to it:
nori-skillsets download senior-swe
nori-skillsets switch senior-sweChoose which agents to target:
nori-skillsets configAuthor custom skillsets under ~/.nori/profiles/<name>/ rather than editing .claude/ directly, since switching removes those files:
mkdir -p ~/.nori/profiles/my-skillsetBranch content per agent inside AGENTS.md or a SKILL.md:
Track work with {{claude-code TaskCreate}}{{codex update_plan}}{{else your plan tool}} first.See the full syntax reference:
nori-skillsets syntaxWhat are this agent's strengths and limitations?
- One skill source translates into the native directories and formats of a dozen-plus coding agents, removing per-tool duplication.
- Inline and block conditional template syntax lets tool-name differences (TaskCreate vs. update_plan) live in a single file.
- Switching cleans out prior agent configuration, so changes between skillsets do not leave conflicting leftovers.
- Skillsets come from the noriskillsets.dev registry, where entries are reviewed for effectiveness, clarity, and proper implementation.
- Private registries let organizations distribute configurations that are already proven internally.
- Mac and Linux only; Windows users cannot run it.
- Switching deletes manual edits inside agent directories such as .claude/, so customizations must move to ~/.nori/profiles/ — a migration cost.
- Core distribution depends on noriskillsets.dev, and private registries require contacting the vendor, creating supplier dependency.
- Requires Node.js 22 or newer; older Node environments must upgrade first.
- The README does not detail the review criteria or the credential configuration for private registries.
How does this agent compare with similar options?
Compared with hand-maintaining separate skill and instruction directories for each coding agent, Nori Skillsets differs by keeping one source with conditional templates and translating it into each agent's native format at install time.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Nori Skillsets This agent | 38 · Major gaps | CLIFree | ★ 170 | 26d ago | TypeScript | Codex · Claude Code |
| Puppetmaster | 68 · Some gaps | CLIFree + model costs | ★ 471 | 5d ago | Python | Codex · Claude Code |
| AWS Agent Toolkit | 58 · Major gaps | Agent plugin / skillFree + model costs | ★ 3.3k | today | Python | Codex · Claude Code |
| Caliber — AI Agent Config Sync | 58 · Major gaps | CLIFree + model costs | ★ 1.3k | 1mo ago | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
README states that switching skillsets cleans each agent directory and writes new configuration, a destructive write to the user workspace, but there is no confirmation prompt, dry-run, backup, or rollback mechanism; only a note to edit ~/.nori/profiles instead. Data flow is described only as connecting to noriskillsets.dev to download, with no detail on uploads, telemetry, or credential handling. Dependencies include firebase, better-sqlite3, tar, undici and others with no audit or lockfile discipline (CI deletes package-lock.json). Source attribution exists via author and repository, but publisher identity is unverified, so only partial credit.
Inconsistencies: README requires Node.js 22+, package.json engines says >=18; description says Claude Code plugin while README supports many agents; version 0.0.0 conflicts with npm badge. CI builds and tests, but deletes lockfile before npm install, weakening reproducibility. Failure messages are not evidenced in the visible files beyond a just doctor check for node/npm.
README clearly lists many supported coding agents, multi-agent template syntax, and private team registry scenarios, so audience and scenarios score 2. Capability boundaries (which files are rewritten, cleanup scope, MCP translation details) are only summarized; trigger precision (command-to-agent-directory mapping) lacks a full reference; environment fit is limited to Mac/Linux with no Windows support.
README has clear structure covering install, usage, skillset layout, and multi-agent authoring, earning 2 for information architecture and install notes; LICENSE is full Apache-2.0, earning 2. Naming stability is questionable (three bin aliases nori-skillsets/nori-skillset/sks, package description vs README mismatch); examples and FAQ are thin; known limitations are only scattered (manual edits removed, Mac/Linux only); version is 0.0.0 with no CHANGELOG; maintenance responsibility is only a contact email and a docs.md note.
README shows a basic init/download/switch workflow with some output usability, but lacks concrete command output examples, error scenarios, or verification steps. Marginal value depends on external registry content quality not proven here. Cost-benefit is weakened by many dependencies and global install versus marketing-style benefit claims.
Claims such as 'verified agent Skills' and 'reviewed for effectiveness' have no traceable review records or evidence links. Tests mainly validate AGENTS.md structure and justfile targets, not core download/switch logic, so cross-source corroboration is limited. Fact and inference separation is only moderate.
- Switching skillsets cleans and overwrites agent directories (e.g., .claude/, .cursor/); manual edits are lost, so back up the workspace first.
- No confirmation prompt, dry-run, or rollback is provided; assess destructive-operation risk yourself.
- README and package.json disagree on Node version, package description, and version number; verify actual requirements before installing.
- Broad dependency surface (firebase, better-sqlite3, tar, undici, etc.) and CI deletes the lockfile, weakening supply-chain reproducibility.
- Publisher identity is unverified, and registry 'verified/reviewed' claims lack traceable evidence.