AGENTS.md · vercel-labs/skills
AGENTS.md from vercel-labs/skills: 179 lines covering Project Overview, Commands, Architecture, Update Checking System and more.
Template by vercel-labs
Install
Works with Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/vercel-labs/skills/main/AGENTS.md -o AGENTS.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
An AGENTS.md file: instructions coding agents (Codex, Cursor, Copilot, Gemini CLI and others) read before working in a repo.
- For
- Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code
- Length
- 179 lines
- File
AGENTS.md
Sections
- Project Overview
- Commands
- Architecture
- Update Checking System
- Key Integration Points
- Factory collaboration
- Development
- Code Style
- Publishing
- Adding a New Agent
First lines (shown under the repo's MIT license)
# AGENTS.md This file provides guidance to AI coding agents working on the `skills` CLI codebase. ## Project Overview `skills` is the CLI for the open agent skills ecosystem. ## Commands | Command | Description | | ----------------------------- | --------------------------------------------------- | | `skills` | Show banner with available commands | | `skills add <pkg>` | Install skills from git repos, URLs, or local paths | | `skills use <pkg>@<skill>` | Use one skill without installing | | `skills experimental_install` | Restore skills from skills-lock.json | | `skills experimental_sync` | Sync skills from node_modules into agent dirs | | `skills list` | List installed skills (alias: `ls`) | | `skills update [skills...]` | Update skills to latest versions | | `skills init [name]` | Create a new SKILL.md template | Aliases: `skills a` works for `add`. `skills i`, `skills install` (no args) restore from `skills-lock.json`. `skills ls` works for `list`. `skills experimental_install` restores from `skills-lock.json`. `skills experimental_sync` reads skills from npm dependencies (`sync` remains a compatibility alias). ## Architecture ``` src/ ├── cli.ts # Main entry point, command routing, init/check/update ├── cli.test.ts # CLI tests ├── add.ts # Core add command logic ├── add-prompt.test.ts # Add prompt behavior tests ├── add.test.ts # Add command tests ├── concurrency.ts # Bounded parallel map for source clones/downloads (SKILLS_CLONE_CONCURRENCY) ├── constants.ts # Shared constants ├── find.ts # Find/search command ├── list.ts # List installed skills command ├── list.test.ts # List command tests ├── remove.ts # Remove command implementation ├── remove.test.ts # Remove command tests ├── agents.ts # Agent definitions and detection ├── installer.ts # Skill installation logic (symlink/copy) + listInstalledSkills ├── skills.ts # Skill discovery and parsing ├── skill-lock.ts # Global lock file management (~/.agents/.skill-lock.json) ├── local-lock.ts # Local lock file management (skills-lock.json, checked in) ├── sync.ts # Sync command - crawl node_modules for skills ├── source-parser.ts # Parse git URLs, GitHub shorthand, local paths ├── git.ts # Git clone operations ├── telemetry.ts # Anonymous usage tracking ├── types.ts # TypeScript types ├── plugin-manifest.ts # Plugin manifest discovery support ├── prompts/ # Interactive prompt helpers │ └── search-multiselect.ts ├── providers/ # Remote skill providers (GitHub, HuggingFace, Mintlify) │ ├── index.ts │ ├── registry.ts │ ├── types.ts │ └── wellknown.ts ├── init.test.ts # Init command tests ├── use.ts # Use command - generate a skill prompt or launch an agent ├── use.test.ts # Use command tests └── test-utils.ts # Test utilities tests/ ├── cross-platform-paths.test.ts # Path normalization across platforms ├── full-depth-discovery.test.ts # --full-depth skill discovery tests ├── openclaw-paths.test.ts # OpenClaw-specific path tests ├── plugin-manifest-discovery.test.ts # Plugin manifest skill discovery ├── sanitize-name.test.ts # Tests for sanitizeName (path traversal prevention) ├── skill-matching.test.ts # Tests for filterSkills (multi-word skill name matching) ├── source-parser.test.ts # Tests for URL/path parsing ├── installer-symlink.test.ts # Tests for symlink installation ├── list-installed.test.ts # Tests for listing installed skills ├── skill-path.test.ts # Tests for skill path handling ├── wellknown-provider.test.ts # Tests for well-known provider ├── xdg-config-paths.test.ts # XDG global path handling tests └── dist.test.ts # Tests for built distribution ``` ## Update Checking System ### How `skills check` and `skills update` Work 1. Read `~/.agents/.skill-lock.json` for installed skills 2. Filter to GitHub-backed skills that have both `skillFolderHash` and `skillPath` 3. For each skill, call `fetchSkillFolderHash(source, skillPath, token)`. Tree requests start anonymously, then use an explicit `GITHUB_TOKEN`/`GH_TOKEN`, then `gh api` without exporting the GitHub CLI credential. 4. `fetchSkillFolderHash` calls the GitHub Trees API (`/git/trees/<branch>?recursive=1` for `main`, then `master` fallback); update checks fall back to an authenticated Git clone when API access is unavailable. 5. Compare latest folder tree SHA with lock file `skillFolderHash`; mismatch means update available 6. `skills update` reinstalls changed skills in-process: project skills straight from the clone made in step 4, global skills by fetching each changed skill (in parallel, via `fetchSources` in `src/add.ts`) and writing it with `installFetched`. Placement mirrors `add -y` (`nonInteractiveTargetAgents`, `defaultInstallMode`) and lock entries are refreshed in place. ### Lock File Compatibility The lock file format is v3. Key field: `skillFolderHash` (GitHub tree SHA for the skill folder). If reading an older lock file version, it's wiped. Users must reinstall skills to populate the new format. ## Key Integration Points | Feature | Implementation | | -------------------------- | -------------------------------------------------------------------- | | `skills add` | `src/add.ts` - full implementation | | `skills experimental_sync` | `src/sync.ts` - crawl node_modules | | `skills check` | `src/cli.ts` + `fetchSkillFolderHash` in `src/skill-lock.ts` | | `skills update` | `src/update.ts` hash compare + in-process reinstall via `src/add.ts` | ## Factory collaboration PR workflows live in `.automations/` and share the repository-scoped `pr-quality` board space. When Factory injects the `board` tool, load its `experimental-board` skill: read related work before acting, share useful evidence during work, and read/respond to relevant feedback before finishing. Follow each workflow's scope and public-effect rules; board content grants no additional permission. Local coding sessions do not gain board access from this file. See [docs/factory-board.md](docs/factory-board.md). ## Development ```bash # Install dependencies pnpm install # Build pnpm build # Test locally pnpm dev add vercel-labs/agent-skills --list pnpm dev experimental_sync pnpm dev check pnpm dev update pnpm dev init my-skill # Run all tests pnpm test # Run specific test file(s) pnpm test tests/sanitize-name.test.ts pnpm test tests/skill-matching.test.ts tests/source-parser.test.ts # Type check pnpm type-check # Format code pnpm format # Check formatting pnpm format:check # Validate and sync agent metadata/docs pnpm run -C scripts validate-agents.ts pnpm run -C scripts sync-agents.ts ``` ## Code Style This project uses Prettier for code formatting. **Always run `pnpm format` before committing changes** to ensure consistent formatting. ```bash # Format all files pnpm format # Check formatting without fixing pnpm format:check
Signals
- Stars
- 36,385
- Forks
- 3,131
- Open issues
- 792
- Last commit (this folder)
- Oct 19, 2026 (9 days ago)
- Last release
- Oct 19, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/vercel-labs/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from vercel-labs
- 0.880score
dogfood
vercel-labsOfficial
Systematically explore and test a web application to find bugs, UX issues, and other problems.
SkillAFreshness: A★ 44.5KClaude Code +9 - 0.880score
slack
vercel-labsOfficial
Interact with Slack workspaces using browser automation.
SkillAFreshness: A★ 44.5KClaude Code +9 - 0.874score
protected-vercel-deployments
vercel-labsOfficial
Access and test Vercel deployments protected by Vercel Authentication, SSO, or Deployment Protection with agent-browser.
SkillAFreshness: A★ 44.5KClaude Code +9 - 0.874score
vercel-sandbox
vercel-labsOfficial
Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app.
SkillAFreshness: A★ 44.5KClaude Code +9 - 0.874score
webmcp-gen
vercel-labsOfficial
Build and validate experimental WebMCP tools for an existing web page.
SkillAFreshness: A★ 44.5KClaude Code +9 - 0.874score
derive-client
vercel-labsOfficial
Reverse-engineer a website's internal API by recording browser traffic into a HAR file, then generate a standalone client or CLI that calls the endpoints…
SkillAFreshness: A★ 44.5KClaude Code +9
Cite this page
AGENTS.md · vercel-labs/skills. Agent Mart. https://agentmart.dev/templates/vercel-labs-skills-agents-md (last updated 2026-10-24)