Bundle Structure
A bundle source is a Git repository. skul caches the source in ~/.skul/library/ and reuses that cache on future runs.
Repository layouts
Two source layouts are supported.
Multi-bundle repository
Each top-level subdirectory is a bundle:
github.com/sjquant/ai-bundles
|- react-expert/
| |- skills/
| |- commands/
| `- agents/
`- python-data/
`- skills/
Users reference the directory name as the bundle name.
Repo-as-bundle
The repository root itself is one bundle:
github.com/sjquant/react-bundle
|- skills/
`- commands/
In that mode, skul uses the repository slug as the bundle name.
Content layouts
Inside a bundle, skul supports two ways to describe content.
Canonical layout
Top-level directories describe the content type:
bundle/
|- skills/
|- commands/
|- agents/
`- AGENTS.md, CLAUDE.md, or .github/copilot-instructions.md
skul copies each directory into every compatible tool target.
Native layout
Tool-specific dot directories target a single tool explicitly:
bundle/
|- .claude/skills/
|- .cursor/commands/
|- .github/agents/
|- .kiro/skills/
|- .codex/agents/
`- AGENTS.md, CLAUDE.md, or .github/copilot-instructions.md
Use native layout when tool-specific behavior matters and cross-tool copying would be wrong.
Selecting bundle items
By default, skul add installs every compatible item in the bundle for the selected tool targets. Use --include to install only specific top-level items:
skul add react-expert --agent codex --include skills/diagnose
skul add react-expert --agent codex --include agents/reviewer
skul add react-expert --agent codex --include root-instruction
Supported selectors are:
skills/<name>commands/<name>agents/<name>root-instruction
Use --select-items to choose from the available bundle items interactively:
skul add react-expert --agent codex --select-items