Agent skills maintained by Eagerworks — portable, progressive-disclosure knowledge bases that teach coding agents how to do a specific job well.
Each skill is plain markdown and works with Claude Code, Cursor, GitHub Copilot, Codex, Amp, and any agentic tool that reads the Agent Skills format. Install them with one command via the skills.sh CLI.
| Skill | What it does |
|---|---|
| kamal | Zero-downtime Kamal deployments (v2.x + 1.9.x): first-time setup, deploys, rollbacks, rolling deploys, kamal-proxy + Let's Encrypt SSL, secrets & vault adapters, accessories, builders/multiarch, troubleshooting, and the v1→v2 upgrade. |
Install with the skills.sh CLI — one command, no manual file copying or pointer files to write. It works with Claude Code and 70+ other agents (Cursor, GitHub Copilot, Codex, Amp, and more).
# install a specific skill
npx skills add eagerworks/skills --skill kamal
# or pick interactively from the collection
npx skills add eagerworks/skills
# or install every skill in the collection
npx skills add eagerworks/skills --allA few notes:
-
Agent detection — the CLI auto-detects the coding agents you have installed. If none are detected, it prompts you to pick which ones to install to.
-
Target specific tools with
-a/--agent(repeatable):npx skills add eagerworks/skills --skill kamal -a claude-code -a cursor
Supported slugs include
claude-code,cursor,github-copilot,codex, andamp(plus dozens more). -
Global vs project — installs into your project by default. Add
-g/--globalto make it available in every project. -
No pointer files — agents with native Agent Skills support load each skill's
SKILL.mdautomatically from its frontmatterdescription, and openreferences/*.mdon demand. Nothing else to wire up.
Manual install (advanced) — for tools without skills.sh support, or if you prefer to vendor the files yourself
The universal pattern is the same for every tool, and every skill lives under skills/<name>/:
- Vendor the skill into your project (or a global location).
- Add a small pointer in your tool's rules/instructions file so the agent knows to load the skill's
SKILL.mdwhen it's relevant.
The agent opens references/*.md files on demand, so the pointer stays tiny while the full knowledge base is always available. All integrations point at the same SKILL.md and references/ files, so updating the vendored copy updates every integration at once.
The examples below use the kamal skill — swap kamal for any other skill in the collection.
Global install (available in every project):
# copy:
cp -r /path/to/skills/skills/kamal ~/.claude/skills/kamal
# or symlink (changes in the repo reflect immediately):
ln -s /path/to/skills/skills/kamal ~/.claude/skills/kamalProject-level install (committed to the repo, shared with your team):
mkdir -p .claude/skills
cp -r /path/to/skills/skills/kamal .claude/skills/kamal
# or: ln -s /path/to/skills/skills/kamal .claude/skills/kamalClaude Code reads the name and description frontmatter in SKILL.md and loads the skill automatically — no extra pointer file needed.
First, vendor the collection into your project:
git submodule add https://github.com/eagerworks/skills tools/eagerworks-skills
# or: cp -r /path/to/skills tools/eagerworks-skillsThen create .cursor/rules/kamal.mdc:
---
description: >
Expert guide for setting up and managing Kamal deployments — the Basecamp tool for zero-downtime
container deployments to bare-metal servers and VMs. Use this skill whenever the user: mentions
Kamal, kamal-proxy, or Traefik-based deployments; wants to deploy a Dockerized app to a VPS, VM,
or bare-metal server; is writing or editing a config/deploy.yml or .kamal/secrets file; asks about
zero-downtime deploys, rolling deploys, rollbacks, or deploy hooks; needs to set up a Docker
registry, builder, or SSH connection for deployments; asks about Kamal accessories (databases,
Redis, etc.); is troubleshooting a failed deploy, healthcheck error, or lock issue; is upgrading
from Kamal 1 to Kamal 2; or wants to run commands inside a running container. Also use when
the user says things like "deploy my app without downtime", "deploy to my own server", or
"set up SSL for my self-hosted app" — even if they don't name Kamal.
alwaysApply: false
---
Read @tools/eagerworks-skills/skills/kamal/SKILL.md for Kamal deployment guidance.
Load the matching file from @tools/eagerworks-skills/skills/kamal/references/ on demand as needed.Cursor matches the description to incoming requests and loads the rule automatically — no need to mention Kamal explicitly.
Vendor the collection first (same as above):
git submodule add https://github.com/eagerworks/skills tools/eagerworks-skills
# or: cp -r /path/to/skills tools/eagerworks-skillsOption A — always-on (applies to every file): append to .github/copilot-instructions.md:
## Kamal deployments
When helping with Kamal deployments, read `tools/eagerworks-skills/skills/kamal/SKILL.md` for version detection,
setup workflow, a command cheatsheet, and critical gotchas. Load the relevant file from
`tools/eagerworks-skills/skills/kamal/references/` on demand (configuration, commands, workflows, secrets-and-hooks,
proxy-and-ssl, builders, troubleshooting, kamal-v1).Option B — path-scoped (triggers only for Kamal files): create .github/instructions/kamal.instructions.md:
---
applyTo: "**/deploy.yml,**/.kamal/**,**/kamal/**"
---
When helping with Kamal deployments, read `tools/eagerworks-skills/skills/kamal/SKILL.md` for version detection,
setup workflow, a command cheatsheet, and critical gotchas. Load the relevant file from
`tools/eagerworks-skills/skills/kamal/references/` on demand (configuration, commands, workflows, secrets-and-hooks,
proxy-and-ssl, builders, troubleshooting, kamal-v1).Vendor the collection (same as above), then add a section to your project's AGENTS.md:
## Kamal deployments
When helping with Kamal deployments, read `tools/eagerworks-skills/skills/kamal/SKILL.md` for version detection,
setup workflow, a command cheatsheet, and critical gotchas. Load the relevant file from
`tools/eagerworks-skills/skills/kamal/references/` on demand (configuration, commands, workflows, secrets-and-hooks,
proxy-and-ssl, builders, troubleshooting, kamal-v1).The content is plain markdown and works in any interface:
| Interface | How to use |
|---|---|
| Claude.ai | Paste a skill's SKILL.md + the relevant references/*.md into your conversation |
| Claude API | Include the files as system-prompt context |
| Any LLM / standalone docs | The references/ files are plain documentation — use them directly |
Each skill is a self-contained directory under skills/<name>/ — this is the boundary the skills.sh CLI ships, so everything the agent needs lives inside it:
skills/
kamal/ # one skill (what skills.sh installs)
SKILL.md # agent entrypoint: when to use it + a lean hub
references/ # in-depth docs, loaded on demand
assets/ # copyable starter files / templates
README.md # human-facing overview of the skill
evals/
kamal/
evals.json # per-skill eval cases (repo-level harness, not shipped)
- Create
skills/<name>/SKILL.mdwithnameanddescriptionfrontmatter (thedescriptionis what agents match against — make it specific about when to use the skill). - Add
references/andassets/insideskills/<name>/as needed; keepSKILL.mdlean and push depth intoreferences/. - Add eval cases at
evals/<name>/evals.json. - Add a row to the Available skills table above.
See CONTRIBUTING.md for authoring conventions.
Every tool reads the same SKILL.md and references/ files. Re-run npx skills add eagerworks/skills --skill <name> to pull the latest version (or, on a manual install, update your vendored copy) and every agent picks up the changes — there is no per-tool content to keep in sync.
The progressive-disclosure design means the agent loads only SKILL.md up front, while the full knowledge base is always available to open on demand.
MIT © Eagerworks