Codebase Knowledge Graph Q&A
Egonex-AI/Understand-Anything
Answers questions about a codebase by searching a prebuilt knowledge graph of its files, functions, classes and dependencies, not by rereading every source file.
Project context for the aspens CLI entry point: Commander wiring, the welcome screen, missing-hook warnings, CliError exit handling and the public programmatic exports.
$ npx skills add aspenkit/aspens --skill cli-shell -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aspenkit/aspens cli-shell --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/cli-shell .claude/skills/cli-shell && 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 "cli-shell" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/cli-shell into .claude/skills/cli-shell/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-shell", 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/cli-shellType 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 cli-shell -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aspenkit/aspens cli-shell --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/cli-shell .agents/skills/cli-shell && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cli-shell" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/cli-shell into .agents/skills/cli-shell/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-shell", 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 cli-shell -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aspenkit/aspens cli-shell --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/cli-shell .cursor/skills/cli-shell && 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 "cli-shell" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/cli-shell into .cursor/skills/cli-shell/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-shell", 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/cli-shell--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 cli-shell -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aspenkit/aspens cli-shell --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/cli-shell .gemini/skills/cli-shell && 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 "cli-shell" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/cli-shell into .gemini/skills/cli-shell/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-shell", 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 cli-shellInstalls 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 cli-shell -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/cli-shell .github/skills/cli-shell && 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 "cli-shell" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/cli-shell into .github/skills/cli-shell/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-shell", 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 cli-shell -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 cli-shell --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/cli-shell .opencode/skills/cli-shell && 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 "cli-shell" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/cli-shell into .opencode/skills/cli-shell/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-shell", 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.
cli-shellProject context for the aspens CLI entry point: Commander wiring, the welcome screen, missing-hook warnings, CliError exit handling and the public programmatic exports.
The skill briefs an agent working on the layer users actually invoke as aspens and that programmatic consumers import through src/index.js. This layer only parses arguments, routes to handlers in src/commands, and handles top-level errors and the welcome screen, while the real work lives elsewhere. Handlers must throw CliError instead of calling process.exit, and the top-level handler prints the message in red and exits with the error's exit code, which defaults to 1.
Other invariants listed: a logged flag means the message was already shown, so the process exits silently; checkMissingHooks warns without throwing before doc sync, add and customize when .claude/skills exists but the activation hook or skill-rules.json is missing; running with no command shows a welcome screen that has to be updated whenever a subcommand is added; the version is read from package.json with a 0.0.0 fallback; numeric option parsers throw Commander's InvalidArgumentError; and SIGINT and SIGTERM exit with codes 130 and 143.
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.
Shell commands in SKILL.md call:
claudecodexFrom 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 CLI Shell loads about 1.1k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 461 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). 461 words, ~1,056 tokens.
.claude/skills/cli-shell/SKILL.md (or your agent's skills folder).You are working on the CLI shell — the entry point that wires Commander subcommands, prints the welcome screen, warns about missing Claude hooks, dispatches to handlers, and translates CliError into a clean exit. Also the public programmatic surface re-exported from src/index.js.
This layer is what a user actually invokes (aspens …) and what programmatic consumers import. It owns argument parsing, top-level error handling, and the welcome UX. All real work lives in src/commands/*.js — the shell only routes.
CliError, never call process.exit(). The top-level handler in bin/cli.js:250 catches it, prints Error: <message> (unless logged: true) in red, and exits with err.exitCode (default 1). Plain Error falls through to the same printer but always exits 1.logged: true means "I already printed a user-friendly message" — top level then exits silently with the given code. Use it when the handler rendered a clack outro or multi-line failure already.checkMissingHooks(repoPath) runs before doc sync, add, and customize — warns (does not throw) when .claude/skills/ exists but .claude/hooks/skill-activation-prompt.sh or .claude/skills/skill-rules.json is absent. Skipped entirely when .claude/skills/ is missing (nothing to activate).showWelcome() — listing essential commands, generate/sync, Claude add-ons, utilities, options, typical workflow, and target notes. Adding a new subcommand requires updating this screen too.countTemplates(subdir) reads src/templates/{agents,commands,hooks} and filters dotfiles; returns '?' on read failure (never throws).package.json at runtime via readFileSync; falls back to '0.0.0' silently if parse/read fails. Do not hardcode.InvalidArgumentError (Commander-native) — parsePositiveInt rejects ≤0/NaN; parseCommits additionally caps at 50.claude -p / codex exec children.checkMissingHooks before the handler for doc sync, add, customize — done inline via arrow (args, options) => { checkMissingHooks(resolve(path)); return handler(...) }. Don't move this into the handler — the warning should fire even if the handler later fails or short-circuits.program.parseAsync() is required (not .parse()) — handlers are async; .catch() on the returned promise is the only place plain errors are surfaced.src/index.js is the public programmatic API — only re-exports scanRepo, runClaude, loadPrompt, parseFileOutput, writeSkillFiles, buildContext, buildBaseContext, buildDomainContext, analyzeImpact. Adding/removing a re-export is a breaking change for embedders; treat it as such.bin/cli.js — Commander setup, option parsers, welcome screen, signal handlers, top-level CliError catch.src/lib/errors.js — CliError class with exitCode and logged options (plus optional cause).src/index.js — Stable programmatic surface for library consumers.program (or the doc subgroup) and add it to showWelcome() so users discover it.program.parseAsync().catch().new CliError(msg, { logged: true, exitCode }) so the top level does not double-print.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/cli-shell of aspenkit/aspens.
Open the folder on GitHubat commit 8dde826
Aspens CLI Shell 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 CLI Shell this skillaspenkit/aspens | 102 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Codebase Knowledge Graph Q&AEgonex-AI/Understand-Anything | 85k | 1 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Mole Bug Patternstw93/Mole | 69k | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| Native Data FetchingCherryHQ/cherry-studio-app | 4k | 6 repos | ~2.9k | Automated safety check: Notes | MIT | |
| Understand ExplainEgonex-AI/Understand-Anything | 85k | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Rust Best Practicesfarm-fe/farm | 5.6k | 3 repos | ~1.1k | Automated safety check: Pass | MIT |
Egonex-AI/Understand-Anything
Answers questions about a codebase by searching a prebuilt knowledge graph of its files, functions, classes and dependencies, not by rereading every source file.
tw93/Mole
A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.
CherryHQ/cherry-studio-app
A skill your agent uses when implementing or debugging ANY network request, API call, or data fetching.
Egonex-AI/Understand-Anything
Gives an in-depth explanation of one file, function or module by reading the project's knowledge graph and checking that the graph is still fresh.
farm-fe/farm
Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.
yamadashy/repomix
Packs a local or remote repository into a single AI-friendly file with the Repomix CLI, then reads and searches that output to explain structure, find patterns or report metrics.
aspenkit/aspens
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.
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
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
Project context for the aspens CLI entry point: Commander wiring, the welcome screen, missing-hook warnings, CliError exit handling and the public programmatic exports. js. This layer only parses arguments, routes to handlers in src/commands, and handles top-level errors and the welcome screen, while the real work lives elsewhere.
Aspens CLI Shell fits situations like: adding a new aspens subcommand and updating the welcome screen; changing how the CLI reports errors or sets exit codes; editing the missing-hook warning behavior; changing what src/index.js exports for programmatic use.
Run `npx skills add aspenkit/aspens --skill cli-shell -a claude-code`. Or copy the skill folder (.agents/skills/cli-shell in aspenkit/aspens) into .claude/skills/cli-shell in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aspenkit/aspens --skill cli-shell -a codex`. Or copy the skill folder (.agents/skills/cli-shell in aspenkit/aspens) into .agents/skills/cli-shell 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 cli-shell -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cli-shell, .gemini/skills/cli-shell, .github/skills/cli-shell and .opencode/skills/cli-shell in your project.
Going by SKILL.md and its folder, Aspens CLI Shell needs the command-line tools its instructions call (claude and codex). Our summary lists: A checkout of the aspens repository.
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 CLI Shell is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.2k 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 CLI Shell: Codebase Knowledge Graph Q&A (Egonex-AI/Understand-Anything, 85k stars), Mole Bug Patterns (tw93/Mole, 69k stars), Native Data Fetching (CherryHQ/cherry-studio-app, 4k stars) and Understand Explain (Egonex-AI/Understand-Anything, 85k 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.