[data-reveal]{opacity:1!important;transform:none!important}
Install the plugin
AI & coding agents

Install the plugin

Add the antelopejs plugin to Claude Code or Codex once — or let a DMS template prompt for it — and every installed package's skills are linked into your project.

Coding agents read skills from the antelopejs plugin, published in the AntelopeJS/agent-skills repository for Claude Code and Codex. The plugin keeps the project's skills folder in sync with the skills your installed packages ship: the framework skills from @antelopejs/core, the DMS, dms-frontend and every dms-* module. The skill catalog lists them all.

How a skill reaches the agent

A package declares its skills

A package lists its skill folders under antelopeJs.skills in its package.json. Each subfolder holds a SKILL.md whose description says what the skill does and when to use it. @antelopejs/dms declares ./skills; so does every dms-* module.

The skill lands where the agent looks

The antelopejs plugin links each skill into the project's .claude/skills/ for Claude Code and .agents/skills/ for Codex. In the dashboard, the dms-ai assistant reads the same declarations from every loaded module and from the project's dependencies, with no plugin.

The agent picks it by description

The agent keeps every skill's description in view and loads a skill's body only when the task matches it. A skill nobody installed never shows up, and an upgraded package brings its upgraded skill.

Add the plugin

Run these commands once. The install lands in your user scope, so every project sees it:

Terminal
claude plugin marketplace add AntelopeJS/agent-skills
claude plugin install antelopejs@antelopejs

The same from inside a session:

Inside Claude Code
/plugin marketplace add AntelopeJS/agent-skills
/plugin install antelopejs@antelopejs

Restart the session, or run /reload-plugins, to load it. The plugin's hooks sync the skills into .claude/skills/ from then on. To install it for one repository only, add --scope project to both commands: Claude Code records it in that repository's .claude/settings.json.

The sync needs no plugin: npx -y github:AntelopeJS/agent-skills sync links the skills into both .claude/skills/ and .agents/skills/, and list instead of sync shows what it finds.

Projects created from a template

template-dms-demo and template-dms-adonis ship a .claude/settings.json that declares the marketplace and enables the plugin. Claude Code offers to install it once you trust the folder: accept, and there is nothing else to do. Their AGENTS.md gives Codex the sync command.

.claude/settings.json
{
  "extraKnownMarketplaces": {
    "antelopejs": {
      "source": { "source": "github", "repo": "AntelopeJS/agent-skills" }
    }
  },
  "enabledPlugins": {
    "antelopejs@antelopejs": true
  }
}

Commit the same file in an existing project to give every Claude Code contributor the same prompt.

How the sync works

In Claude Code, the plugin syncs at session start and again after every Bash command, so a pnpm install or an ajs run that adds a module brings its skills into the running session. In Codex, run the sync command after such a change.

  • Which projects. A directory holding an antelope.config.* file, or an app whose package.json depends on @antelopejs/core: an embedded runtime such as the AdonisJS template. Anywhere else the sync does nothing.
  • Where it looks, the first hit per package winning:
    1. the workspace: the current package, its parents up to the repository root, and the packages of the root's pnpm-workspace.yaml or workspaces field (source checkouts and module playgrounds);
    2. node_modules of the project and of the workspace root, pnpm's symlinks included;
    3. .antelope/cache, where ajs downloads the modules declared in antelope.config.ts.
  • What it creates. One relative symlink per skill, named <package>--<skill> after the package's short name: dms--dms-pages, dms-frontend--dms-frontend, dms-mailing--dms-mailing. The link follows the installed package, so the skill always matches its version.
  • What it leaves alone. It records its entries in an .ajs-managed.json inside each skills folder and lists them in a generated .gitignore next to it, so your repository stays clean. A skill of yours with the same name is reported and skipped, never overwritten, and entries whose package disappeared are removed.
CommandUse it to
/antelopejs:skillsList the synced skills and the package each one comes from (Claude Code).
/antelopejs:sync-skillsForce a sync now and see what changed (Claude Code).
/reload-skillsLoad the synced skills when .claude/skills/ did not exist at session start (Claude Code).
npx -y github:AntelopeJS/agent-skills listList the skills and their sync status in both folders.
npx -y github:AntelopeJS/agent-skills sync --target codexSync .agents/skills/ for Codex; restart Codex if a skill does not appear.
No DMS skill in /antelopejs:skills? The packages are not installed yet. Run pnpm install, then pnpm exec ajs project modules install for the modules declared in antelope.config.ts, then sync again.

Update and uninstall

The synced skills follow your packages, not the plugin: upgrade @antelopejs/core, @antelopejs/dms or a module, and the next sync points at the new version. The framework skills ship with @antelopejs/core from its first release after 1.15.2; a project on an older core gets them once it upgrades.

Update the marketplace, then the plugin:

Terminal
claude plugin marketplace update antelopejs
claude plugin update antelopejs@antelopejs

To remove the plugin, uninstall it and drop the marketplace. Add --scope project to uninstall when it was installed for one repository, and remove the two keys from that repository's .claude/settings.json:

Terminal
claude plugin uninstall antelopejs@antelopejs
claude plugin marketplace remove antelopejs

To drop the synced skills from a project, delete the entries listed in .claude/skills/.ajs-managed.json and .agents/skills/.ajs-managed.json, then those files and the .gitignore next to each.

Next steps

Skill catalog

Every skill the sync can bring, and when it triggers.

Best practices

What the agent enforces when it builds a page.

dms-ai assistant

The same skills inside your dashboard.