Using Agent Skills
addyosmani/agent-skills
Meta-skill for choosing which workflow skill fits the task at hand, plus always-on habits: surface assumptions, stop on confusion, push back, keep it simple and stay in scope.
Injects a project's own skills and AGENTS.md content into generic bundled agent template files, adding a tech-stack line and real conventions without touching an agent's core logic.
$ npx skills add aspenkit/aspens --skill agent-customization -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aspenkit/aspens agent-customization --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/agent-customization .claude/skills/agent-customization && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "agent-customization" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/agent-customization into .claude/skills/agent-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-customization", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aspenkit/aspens/tree/main/.agents/skills/agent-customizationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aspenkit/aspens --skill agent-customization -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aspenkit/aspens agent-customization --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/agent-customization .agents/skills/agent-customization && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agent-customization" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/agent-customization into .agents/skills/agent-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-customization", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aspenkit/aspens --skill agent-customization -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aspenkit/aspens agent-customization --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/agent-customization .cursor/skills/agent-customization && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "agent-customization" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/agent-customization into .cursor/skills/agent-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-customization", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aspenkit/aspens.git --path .agents/skills/agent-customization--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aspenkit/aspens --skill agent-customization -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aspenkit/aspens agent-customization --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/agent-customization .gemini/skills/agent-customization && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "agent-customization" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/agent-customization into .gemini/skills/agent-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-customization", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aspenkit/aspens agent-customizationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aspenkit/aspens --skill agent-customization -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/agent-customization .github/skills/agent-customization && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "agent-customization" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/agent-customization into .github/skills/agent-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-customization", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aspenkit/aspens --skill agent-customization -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aspenkit/aspens agent-customization --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/agent-customization .opencode/skills/agent-customization && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "agent-customization" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/agent-customization into .opencode/skills/agent-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-customization", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
agent-customizationInjects a project's own skills and AGENTS.md content into generic bundled agent template files, adding a tech-stack line and real conventions without touching an agent's core logic.
The skill backs the aspens customize agents command, which pulls a repository's skills and AGENTS.md as ground truth and asks the Claude CLI to add a tech-stack line, three to five project conventions and real commands into each generic agent file under .claude/agents/. It is a Claude-only feature that refuses to run on a Codex-only repository, and it requires a base skill to already exist, failing with a clear error that tells the user to run the init command first if one is missing.
The customizing LLM call is invoked with read-only tools, Read, Glob and Grep, so it never edits or writes files itself; a separate write step restricted to paths under .claude/ performs the actual file output. Frontmatter handling is split between the prompt and the code: the prompt preserves existing YAML frontmatter verbatim, and a post-processing step then injects a skills line referencing the base skill into every returned file. A reset flag controls whether an agent that already declares its own skills list is left alone or has that list forcibly overwritten, which is used to roll out upgrades to agents customized under an older version.
Read from SKILL.md and the folder at commit 8dde826. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Aspens Agent Template Customizer loads about 898 tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 410 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from aspenkit/aspens at commit 8dde826, republished under its MIT licence (© aspenkit). 410 words, ~898 tokens.
.claude/skills/agent-customization/SKILL.md (or your agent's skills folder).You are working on agent customization — the feature that reads a project's skills and AGENTS.md, then uses Claude CLI to inject project-specific context into generic agent files in .claude/agents/.
aspens customize agents makes generic, bundled agent templates project-aware. It pulls the repo's skills + AGENTS.md as ground truth and asks Claude to add a tech-stack line, 3-5 project conventions, and real commands into each agent — without touching the agent's core logic.
CliError for Codex-only repos (config.targets === ['codex']). Codex CLI has no agent concept.CliError("Run 'aspens doc init' first — base skill is required for agent context.") if .agents/skills/base/SKILL.md is missing..claude/skills/**) are the single source of truth for project context. The prompt must not invent other context directories.allowedTools: ['Read', 'Glob', 'Grep'] — no edits/writes from the LLM itself..claude/. parseFileOutput() rejects anything else; writeSkillFiles(..., { force: true }) does the actual write.skills: line). Then maybeInjectBaseSkill() post-processes each returned file to add skills: [base] into the frontmatter — this keeps agents valid even when installed via aspens add agent without a prior doc init.--reset semantics: without --reset, agents that already declare skills: are left alone; with --reset, any existing skills: line is overwritten to skills: [base]. Used to roll out v0.8 upgrades to previously-customized agents.## Project context block is verbatim-preserved by the prompt — it carries conditional read instructions for code-map / domain skills.gatherProjectContext(); skills are passed in full.findAgents() recursively walks .claude/agents/, extracts name: via regex, falls back to filename if missing.resolveTimeout(options.timeout, 300); ASPENS_TIMEOUT env var honored with warning on invalid value.src/commands/customize.js — orchestrator: preflight, agent discovery, context gathering, per-agent Claude calls, post-LLM skills: [base] injection, write.src/prompts/customize-agents.md — system prompt; enforces frontmatter + ## Project context preservation and bans file-inventory / hub-ranking output.skills: line — the prompt forbids it and the code adds it. If you change one, change both..claude/ paths may be written.Last Updated: 2026-05-11
© aspenkit, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/agent-customization of aspenkit/aspens.
Open the folder on GitHubat commit 8dde826
Aspens Agent Template Customizer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Aspens Agent Template Customizer this skillaspenkit/aspens | 102 | — | ~898 | Automated safety check: Pass | MIT | |
| Using Agent Skillsaddyosmani/agent-skills | 102k | 4 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Task Observerrebelytics/one-skill-to-rule-them-all | 3.2k | 1 repos | ~12k | Automated safety check: Pass | CC-BY-4.0 | |
| Rules Distillationaffaan-m/ECC | 274k | 2 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Birdview Skills Compatibility AuditQiuner/birdview | 715 | — | ~794 | Automated safety check: Pass | MIT | |
| Context Routing Auditwithkynam/vibecode-pro-max-kit | 1.1k | — | ~1.2k | Automated safety check: Pass | MIT |
addyosmani/agent-skills
Meta-skill for choosing which workflow skill fits the task at hand, plus always-on habits: surface assumptions, stop on confusion, push back, keep it simple and stay in scope.
rebelytics/one-skill-to-rule-them-all
Monitors task execution for skill improvement opportunities.
affaan-m/ECC
Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.
Qiuner/birdview
Audits the AI skills installed for a project for duplicate names, broad triggers and conflicting instructions, without changing any of them.
withkynam/vibecode-pro-max-kit
Audits a project's context routing, skill discoverability and skill wiring by running a chain of validator scripts and fixing whatever they report.
mistralai/mistral-vibe
Reference for Mistral Vibe, the CLI agent it runs inside: config files, env vars, agents, skills, tools, hooks and MCP servers, so the agent can explain and troubleshoot its own setup.
aspenkit/aspens
Orientation to the aspens codebase for agents working on the CLI itself: its Node.js stack, commands, module layout and debug settings.
aspenkit/aspens
Project context for the aspens CLI entry point: Commander wiring, the welcome screen, missing-hook warnings, CliError exit handling and the public programmatic exports.
aspenkit/aspens
Explains how the aspens generator routes output to Claude Code or Codex CLI targets and transforms generated skills and instruction files between their formats.
aspenkit/aspens
Context health analysis — freshness, domain coverage, hub surfacing, drift detection, LLM-powered interpretation, and auto-repair for generated agent context
aspenkit/aspens
Incremental skill updater that maps git diffs to affected skills and optionally auto-syncs via a post-commit hook
aspenkit/aspens
Static import analysis that builds dependency graphs, domain clusters, hub files, git churn hotspots, and file priority rankings
Categories
Injects a project's own skills and AGENTS.md content into generic bundled agent template files, adding a tech-stack line and real conventions without touching an agent's core logic. claude/agents/. It is a Claude-only feature that refuses to run on a Codex-only repository, and it requires a base skill to already exist, failing with a clear error that tells the user to run the init command first if one is missing.
Aspens Agent Template Customizer fits situations like: making bundled generic agent templates aware of a specific project's stack; re-rolling an upgrade across agents that were customized under an older version; diagnosing why agent customization refused to run on a repository.
Run `npx skills add aspenkit/aspens --skill agent-customization -a claude-code`. Or copy the skill folder (.agents/skills/agent-customization in aspenkit/aspens) into .claude/skills/agent-customization in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aspenkit/aspens --skill agent-customization -a codex`. Or copy the skill folder (.agents/skills/agent-customization in aspenkit/aspens) into .agents/skills/agent-customization in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aspenkit/aspens --skill agent-customization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-customization, .gemini/skills/agent-customization, .github/skills/agent-customization and .opencode/skills/agent-customization in your project.
SKILL.md names no scripts, command-line tools or credentials: Aspens Agent Template Customizer is instructions for the agent only. Our summary lists: The aspens CLI; A Claude Code target with .claude/skills/base/SKILL.md present.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Aspens Agent Template Customizer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 898 tokens (SKILL.md is roughly 3.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Aspens Agent Template Customizer: Using Agent Skills (addyosmani/agent-skills, 102k stars), Task Observer (rebelytics/one-skill-to-rule-them-all, 3.2k stars), Rules Distillation (affaan-m/ECC, 274k stars) and Birdview Skills Compatibility Audit (Qiuner/birdview, 715 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aspenkit (a GitHub organization) maintains it in aspenkit/aspens, which has 102 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on September 12, 2026.
Source: aspenkit/aspens on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.