Skip to content

Repository files navigation

libra-tools/skills

A cross-agent Agent Skills repository. It packages reusable SKILL.md skills that work — unmodified — across Claude Code, OpenAI Codex CLI, Google Gemini CLI, and opencode, using the open Agent Skills standard.

Tracked with Libra, the AI-agent-native version control system.

Skills in this repo

Skill What it does
libra-workflow-and-versioning Version-control workflow discipline for Libra repositories — commits, branches, the per-worktree HEAD model, cloud backup/publish, structured output, and stable error codes.

Layout

libra-tools/skills/
├── skills/<name>/                   ← CANONICAL. Edit only here.
│   ├── SKILL.md                     ← decision-level (≤400 lines, enforced)
│   └── references/*.md              ← depth, loaded on demand
├── .agents/skills/<name>/           ← generated mirror (Gemini CLI, opencode)
├── .claude/skills/<name>/           ← generated mirror (Claude Code, opencode)
├── .codex/skills/<name>/            ← generated mirror (Codex CLI)
├── hooks/pre-commit.sh              ← tracked hook (.libra/ is never tracked)
├── scripts/
│   ├── sync-skills.sh               ← regenerate mirrors (--check for CI/hooks)
│   ├── validate-skills.sh           ← frontmatter, naming, links, line budget
│   ├── emit-libra-skill.sh          ← flatten to the Libra-native format
│   ├── check-against-libra.sh       ← cross-check every claim against Libra's source
│   └── install-hooks.sh             ← wire the checks into .libra/hooks/
├── install.sh                       ← contributor install: symlink a working copy
├── .github/workflows/ci.yml         ← CI
├── AGENTS.md                        ← conventions for editing this repo
└── README.md

Single source of truth: the canonical files in skills/. Everything starting with a dot is generated by scripts/sync-skills.sh; --check flags any drift, and the pre-commit hook refuses a commit that would land drift or an invalid skill. Copies rather than symlinks, because a symlink checkout fails closed on Windows and does not survive a zip download.

Why one repo serves every agent

SKILL.md is an open standard: a folder containing a SKILL.md file with name + description YAML frontmatter and a Markdown body. Every supported agent reads the same format; the only difference is which directory each one scans. This repo lays the files out so that opening it with any supported agent auto-discovers the skills, and a single install.sh makes them global.

Agent Project (workspace) path it scans Global (user) path
Claude Code .claude/skills/ ~/.claude/skills/
Codex CLI .codex/skills/, .agents/skills/ ~/.agents/skills/, ~/.codex/skills/
Gemini CLI .gemini/skills/ or .agents/skills/ ~/.gemini/skills/ or ~/.agents/skills/
opencode .opencode/skills/, .claude/skills/, .agents/skills/ ~/.config/opencode/skills/, ~/.claude/skills/, ~/.agents/skills/

install.sh writes to all five global paths.

Use it

The skills CLI

This repository follows the open Agent Skills layout, so the ecosystem CLI installs it directly from GitHub. No clone, no npm package, no Libra required:

npx skills add libra-tools/skills            # into this project
npx skills add libra-tools/skills -g         # globally
npx skills add libra-tools/skills --list     # just look

skills supports 77 agents, symlink or --copy installs, per-agent targeting (-a claude-code -a opencode), and skills list / update / remove. This is the supported way to install.

For libra code

libra code is the one agent the skills CLI cannot serve, because its runtime reads a different format (see the note below). Generate that form from a clone:

scripts/emit-libra-skill.sh                        # -> ~/.config/libra/skills/
scripts/emit-libra-skill.sh /path/to/repo/.libra/skills
scripts/emit-libra-skill.sh --stdout <skill-name>  # inspect, write nothing

./install.sh runs this for you as part of a global install (--no-libra opts out).

Per-project (no install)

Clone the repo and open it with any supported agent — the skills are discovered automatically from the directories above.

libra clone https://github.com/libra-tools/skills.git
cd skills
scripts/install-hooks.sh     # once, if you intend to commit here
# then run `claude`, `codex`, `gemini`, or `opencode` in this directory

To add the skills to another project, copy the skill folder into that project's .agents/skills/ (Gemini + opencode) and .claude/skills/ + .codex/skills/ (Claude + Codex).

From a clone (contributor path)

install.sh symlinks your working copy, so an edit to skills/ takes effect immediately in every agent — that is what makes it the contributor tool rather than npx.

./install.sh              # symlink into all five global skill directories
./install.sh --copy       # copy instead (Windows, or a repo on removable media)
./install.sh --dry-run    # show what would happen
./install.sh --uninstall  # remove them again

Re-run it after libra pull to pick up updates.

How each agent triggers a skill

  • Claude Code — auto-invoked when your task matches the description, or type /libra-workflow-and-versioning.
  • Codex CLI — run /skills, type $ to mention it, or let Codex pick it implicitly by description.
  • Gemini CLI — auto-discovered; the skill's name + description are injected into the system prompt and loaded on demand.
  • opencode — auto-discovered; the agent loads the body on demand via its native skill tool.

libra code uses a different format. Its agent runtime loads a single <name>.md with TOML frontmatter from .libra/skills/ or ~/.config/libra/skills/, not a directory with a SKILL.md, and it has no notion of bundled reference files. scripts/emit-libra-skill.sh bridges it by flattening the skill — references inlined — into that format, so /skill libra-workflow-and-versioning works inside libra code.

Add or edit a skill

  1. Create or edit skills/<name>/SKILL.md. Keep the frontmatter portable — only name (lowercase, digits, single hyphens, ≤64 chars) and description (≤1024 chars) are needed; name must equal the directory name. Put depth in skills/<name>/references/.
  2. Run scripts/validate-skills.sh and scripts/sync-skills.sh.
  3. Commit with Libra: libra add ... then libra commit -s -m "feat(skill): ...". (See the libra-workflow-and-versioning skill for the workflow it documents — this repo follows its own advice.)

See AGENTS.md for the full contributor conventions.

License

MIT.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages