Conversation
Zero-dependency Bun CLI that discovers, measures, and manages AI agent
skills across Claude Code, Cursor, and Codex.
Commands:
scan — discover all skills, commands, agents, and rules
with health badges, scope/type/agent filtering,
and colored grouped output
skill-cost — context tax breakdown per agent with bar charts
and optimization suggestions
grab — install skills from GitHub blob URLs
rm — remove skills by name or path
stats — usage dashboard with sessions, PRs created,
token usage, MCP integrations, skill/subagent
invocations, and peak hours heatmap
list-agents — detect installed agents with skill counts
Design:
- Agent-first: --json on every command for structured agent consumption
- Zero runtime deps: Bun built-ins for fs, fetch, spawn, glob
- Scans Claude Code, Cursor, and Codex directories exhaustively
(skills, commands, agents, rules — both flat .md and SKILL.md formats)
- Ships with ags-manager SKILL.md for agent self-discovery
- Shell completions for zsh and bash (Homebrew auto-install)
- Cross-compile targets: darwin-arm64, darwin-x64, linux-x64
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…cation - Remove 7 unused functions: serializeFrontmatter, formatNum, isGitRepo, badgeSeverity, printSuccess, subheading, getAgentNames - Export and share stripAnsi, pad, shortenPath from output.ts - Extract parseScopeFlag utility (was duplicated in scan.ts and budget.ts) - Extract expandPattern utility for tilde expansion (was duplicated in agents.ts and grab.ts) - Consolidate isAgentInstalled into one-liner using getBinaryPath - Collapse parseGitHubUrl from two branches into one - Replace heading() wrapper with direct c.bold() calls - Simplify extractMcpService to use a regex lookup table - Fix daysAgo duplication in budget.ts suggestion generation Net: -154 lines across 12 files with no behavior changes. https://claude.ai/code/session_01Y39PzBHtkF77d3DaqcZMpt
- Sanitize skill name in grab to strip path separators and ../ sequences (prevents writing files outside intended skills directory) - Add 10s fetch timeout and 1MB response size limit in fetchRawContent - Skip >50MB session files in stats to prevent memory exhaustion - Tighten rm path matching to require "/" boundary in endsWith check https://claude.ai/code/session_01Y39PzBHtkF77d3DaqcZMpt
- Security: cap fetch body size regardless of content-length header - Performance: stream JSONL parsing in stats instead of readFileSync - Accuracy: word+symbol token estimation replacing naive length/4 - Safety: add --dry-run flag for grab and rm commands - UX: support short flags (-j, -a), --key=value syntax in arg parser - Parser: proper multi-line string support (| and >) in YAML frontmatter - Fix: cleanDirName strips only actual HOME prefix, not project names - Fix: JSON output in grab/rm uses explicit return after printJson - Perf: memoize findProjectRoot to avoid repeated fs walks - Tests: add 61 unit tests for parser, tokens, health, github, args https://claude.ai/code/session_01879LywhiKaXPsPbcsGgpZi
- Cut from 61 to 15 focused regression tests - Remove args.test.ts (was testing duplicated code) - Add CI workflow: typecheck + test on push/PR to main https://claude.ai/code/session_01879LywhiKaXPsPbcsGgpZi
…ICPYr Optimize memory usage, improve YAML parsing, and add CLI enhancements
…ersion - Remove `init`, `export`, `completions` from shell completions since those commands don't exist yet — tab-completing them gave Unknown command - Add missing `--dry-run` to grab/rm completions - Remove broken completions generation step from build.ts (it called a non-existent `completions` subcommand, silently failing via .quiet()) - Read VERSION from package.json instead of hardcoding in index.ts https://claude.ai/code/session_017bCbeFBwAH8ZcBP4YXLwiF
Remove export, init, and completions commands; add dry-run flags
… agent playbook New commands: - `ags context` — full context map showing everything loaded before first message - `ags lint` — validate skill files with 9 quality rules - `ags list-skills` — focused skill inventory with token costs Rewrites SKILL.md from a dry API reference into a proactive playbook that teaches agents WHEN to reach for ags without being asked. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ALE badge - Remove list-skills and list-agents as separate commands - scan --type skill replaces list-skills, scan --installed replaces list-agents - Fix STALE badge false positive: only apply to project-scope skills (user-level skills report install date as mtime, not relevance) - Fix git.ts: run git log in file's own directory, not cwd - Extract shared helpers to output.ts (formatScope, parseAgentFlag) - Clean up unused imports across lint.ts, context.ts - Update completions, help text, SKILL.md playbook - Net -175 lines Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
AGS (Agent Skills) — a zero-dependency Bun CLI for managing AI agent skills across Claude Code, Cursor, and Codex. Built for agents first, humans second.
Commands
ags scanags skill-costags grab <url>ags rm <name>ags statsags list-agentsDesign
--jsonon every command with defined schemas, error codes, and structured output.mdfiles and directory-basedSKILL.mdformats.jsonlfiles directly for accurate token counts, PR links, MCP integration usage, and skill invocation trackingbun build --compileFiles
Test plan
ags scandiscovers 23 items across Claude Code and Cursor (skills, commands, agents)ags scan --scope local/globaland--agent/--typefilters work correctlyags skill-costshows context usage per agent with accurate bar chartsags rmremoves by name and cleans up empty directoriesags statsshows real session counts, PRs, tokens, integrations from jsonl filesags stats --period 7d/30d/all-timefilters correctlyags list-agentsdetects installed agents--jsonoutputs are valid parseable JSON<command> --helpshows usage, options, and examplestsc --noEmit)🤖 Generated with Claude Code