Layered Orchestration for Rules and Extensions
A small tool for managing the skills and behaviors your AI agents use. Clone a repo, run one command, and the skills are live. There's no package registry behind it and nothing to lock you in — under the hood it's just symlinks.
If you've tried npx skills add on a heavy repo, you know it tends to choke. And once you're running more than one agent, your config ends up scattered: a bit in ~/.claude/, a bit in ~/.cursor/, more somewhere else. You either install everything twice or quietly let the setups drift apart. There's no agreed-on home for agent rules, and no clean way to mix behaviors coming from different repos.
lore's answer is boring on purpose: one directory, ~/.agents/, that every tool points at.
Grab the latest stable binary:
curl -fsSL https://raw.githubusercontent.com/rjfranc0/lore/main/install.sh | bashOr clone and let the installer build from source (requires cargo):
git clone https://github.com/rjfranc0/lore
cd lore && ./install.shTo install the latest pre-release from the dev channel:
curl -fsSL https://raw.githubusercontent.com/rjfranc0/lore/main/install.sh | bash -s -- --devEither way, bootstrap once when you're done:
lore initSay you've cloned a repo full of skills and behaviors. You install them from wherever they live:
git clone https://github.com/someone/ai-skills ~/repos/ai-skills
cd ~/repos/ai-skills/skills
lore install coding-style type-conventions
cd ~/repos/ai-skills/behaviors
lore behavior add strict-review
lore listThat's the whole loop: cd into a repo, install what you want, check it with list.
After lore init, your layout looks like this:
~/.agents/
├── AGENTS.md ← universal agent config (managed by lore)
├── skills/ ← symlinks → skill dirs in your repos
└── behaviors/ ← symlinks → behavior dirs in your repos
~/.claude/
├── LORE.md ← @~/.agents/AGENTS.md (written by lore init)
├── CLAUDE.md ← @~/.claude/LORE.md (lore only ensures this one line)
└── skills/ ← symlink → ~/.agents/skills/
The important part: your skills and behaviors never leave their source repos. lore just creates symlinks that point at them. A skill is "installed" when its symlink exists and "uninstalled" when you remove it — the original files are never moved or modified.
Behaviors work the same way, with one extra step. When you run lore behavior add, lore finds the behavior's entry .md file and appends it to ~/.agents/AGENTS.md as a Claude @import. From then on, Claude loads it at the start of every session.
| Command | What it does |
|---|---|
lore init [--account <name>] |
Bootstrap ~/.agents/ and wire up a Claude account |
lore install <skill> [...] [--account <name>] |
Install skill(s) from the current directory |
lore remove <skill> [...] [--account <name>] |
Uninstall skill(s) |
lore behavior add <name> [...] [--account <name>] |
Install behavior(s) and update AGENTS.md/LORE.md |
lore behavior remove <name> [...] [--account <name>] |
Remove behavior(s) |
lore accounts list |
Show every registered Claude account |
lore accounts remove <name> |
Forget an account (registry only, nothing on disk) |
lore accounts sync |
Re-wire any account that's broken on disk |
lore sync |
Reconcile AGENTS.md from disk |
lore update <name> [--path <path>] / --all |
Re-link a skill/behavior whose source repo moved |
lore list |
Show everything that's installed |
lore version |
Print the version |
lore help |
Full manual |
The full write-up of every command and file format lives in docs/index.md.
You don't have to clean anything up first. lore init notices existing content in ~/.claude/CLAUDE.md and migrates it for you, surgically:
- A copy of your old instructions moves to
~/.agents/behaviors/from-claude/RULES.md - Any skills sitting in
~/.claude/skills/move into~/.agents/skills/ ~/.claude/CLAUDE.mdkeeps its original content exactly as it was — lore only appends a@~/.claude/LORE.mdimport line underneath it
Nothing gets thrown away or overwritten, and lore prints exactly where each piece landed, plus any @import lines left over from other tools so you know they're still there, untouched. If a skill name would collide with one you already have, lore stops before changing anything and tells you what to resolve — better a clear halt than a half-migrated mess. And if you ever delete AGENTS.md by accident, re-running lore init rebuilds it from the behaviors still on disk.
~/.agents/ is shared, but you can wire it into more than one Claude
config directory — say, a personal ~/.claude/ and a work
~/.claude-work/:
lore init --account work
lore accounts list
lore accounts sync # re-wire anything that's drifted or broken on diskEvery account gets its own LORE.md, but they all import the same
shared AGENTS.md — install a skill or behavior once, scope it to an
account with --account <name> if you don't want it everywhere.
lore's own settings live in ~/.config/lore/lore.toml — just
agents_dir and the accounts registry. It's created automatically the
first time you register something; you won't normally touch it by hand.
Point lore at a different config entirely with LORE_CONF — handy for
testing without going near your real setup:
LORE_CONF=/tmp/test-lore.toml lore initThe test suite uses cargo test — no extra tooling required:
cargo testTests run against throwaway temp directories, so they never touch your real setup.
- Integrations for other tools (Cursor, Windsurf, Zed)
MIT