Everything you need to know about jskills.
jskills is a friendly Java port of the vercel-labs/skills CLI. It uses the same registry, installs the same skills, and produces the same lock files. The difference is it runs on Java 25+ (via JBang) or as a standalone native binary — no Node.js or npm required.
Yes, fully. Skills are agent-agnostic Markdown files hosted on GitHub. jskills reads and writes the same skills.lock format as the original CLI. You can switch between them freely — they're interchangeable.
Claude Code, Codex, Gemini CLI, Copilot, Amp, and any agent that reads skill directories. Use skills add <source> --agent <name> to target a specific agent. Without --agent, skills are installed for the default agent detected in your project.
For the JBang install — yes, Java 25+. JBang can manage this for you automatically. For native binaries (Linux, macOS, Windows), no — they are self-contained executables with zero runtime dependencies.
Project-scoped skills go in the agent's skill directory (e.g. .claude/skills/, .codex/skills/) in your project root. Global skills go in ~/.claude/skills/ (or equivalent). The lock file skills.lock tracks sources and versions.
Yes. They share the same lock file format and directory structure. You can install skills with one CLI and manage them with the other. The registry, sources, and skill format are identical.
Run skills update to update all installed skills, or skills update <name> for a specific one. Use skills update -g to update only global skills.
The native binary starts in ~10ms with no JVM warmup. It's a GraalVM native image — a single executable file around 58MB that includes everything needed to run.