A unified harness abstraction over agentic vendor tooling.
Lore manages rules, skills, and agents, then projects them into every platform's native format. Write once, works everywhere. A single Go binary with zero runtime dependencies.
# Install
npm install -g @lorehq/cli
# Initialize a new project
cd my-project
lore init
# Generate platform-native files
lore generateOr install from source:
go install github.com/lorehq/lore@latestSet "platforms" in .lore/config.json to control which platforms are active. The projector only generates files for enabled platforms.
Sessions accelerate instead of resetting. The harness loads your project identity, rules, active work, available agents, and a map of everything your agent knows at session start. No re-explaining.
One knowledge base, every platform. Capture a fieldnote in Claude Code -- it's available in Cursor, Copilot, and OpenCode. No copying, no drift. See it in action.
Rules are enforced, not just documented. Your coding standards and security policies are injected before every file write via hooks. The agent sees the relevant rules right when it matters.
Snags become fieldnotes that persist. When your agent hits an API quirk or a deployment snag, it captures a fieldnote. That fieldnote loads in every future session. The mistake happens once, the fix persists.
Complex work delegates to focused workers. When work benefits from a fresh context window, the harness spawns workers loaded with curated skills and rules.
Lore is a Go binary that centrally manages the three standard components of an agentic system -- rules, skills, and agents -- and projects them into every platform's native format. It also exposes a unified hook lifecycle interface across platforms.
~/.config/lore/
├── config.json # Platform config (packages, hooks, registryUrl)
├── .cache/
│ └── registry.json # Cached marketplace registry
└── AGENTIC/ # Operator content
├── RULES/
├── SKILLS/
└── AGENTS/
The global directory holds platform configuration and the operator's own agentic content (rules, skills, agents). Behavioral scripts, memory, and services belong to packages (e.g., ~/.lore-os/), not the platform directory.
my-project/
├── .lore/
│ ├── config.json # Project config
│ ├── AGENTIC/ # Project-specific rules, skills, agents
│ ├── MEMORY.md # Failsafe scratchpad (gitignored, OS-created)
│ └── LORE.md # Project instructions
├── CLAUDE.md # Generated platform projection
└── src/
When lore generate runs, three layers merge: harness system content, global operator content, and project-local overrides. The result is emitted as platform-native files.
| Command | What it does |
|---|---|
/lore |
Show available subcommands |
/lore status |
Show instance health -- version, hooks, skills, fieldnotes, active work |
/lore memory |
Start/stop the local Docker memory engine |
/lore memory burn |
Promote hot cache facts to the persistent DATABANK |
| Command | What it does |
|---|---|
lore |
Launch the TUI dashboard |
lore init |
Scaffold a new Lore project |
lore generate |
Run composition and projection |
lore memory start|stop|status |
Docker memory engine lifecycle |
lore hook <event> |
Hook handler (called by platforms, not users) |
| Platform | Target files |
|---|---|
| Claude Code | CLAUDE.md, .claude/ |
| GitHub Copilot | .github/copilot-instructions.md, .github/hooks/, AGENTS.md |
| Cursor | .cursor/rules/*.mdc, .cursor/hooks.json, AGENTS.md |
| Gemini CLI | GEMINI.md, .gemini/ |
| Windsurf | .windsurfrules, .windsurf/ |
| OpenCode | AGENTS.md, .opencode/ |
All platforms share the same knowledge base. Rules, skills, agents, and fieldnotes written once are projected into platform-specific formats automatically.
Full docs: lorehq.github.io/lore-docs
See CONTRIBUTING.md for development setup and guidelines.
Security issues: see SECURITY.md.