Lore is a self-hosted project memory system for humans and agents.
It exposes:
- a browser UI
- a project-scoped HTTP API
- a native MCP endpoint
- a Rust CLI
Lore stores project data as ordered typed blocks on disk rather than in a traditional database. It also records project history, supports reversible versioning, and can export project state plus history into Git.
Install
CLI installer:
curl -fsSL https://raw.githubusercontent.com/brontoguana/lore/main/scripts/install-cli.sh | shServer installer:
curl -fsSL https://raw.githubusercontent.com/brontoguana/lore/main/scripts/install-server.sh | shThe install scripts are designed to download versioned GitHub release artifacts, verify published checksums, and place the binaries in a predictable local install path.
Docker is not the primary install path today. Lore currently prioritizes direct binary installation and simple self-hosting.
Run
After installing the server binary, run the full setup:
lore-server installThis will:
- Create an admin account (interactive prompt)
- Ask for your domain name
- Download and configure Caddy as an HTTPS reverse proxy
- Start both services as systemd daemons (requires sudo)
- Install a tightly scoped sudoers rule so future
lore-server updateruns can restart Lore and Caddy without prompting
Then open https://yourdomain.com/setup — that setup flow explains when to use HTTP vs MCP and gives agent-oriented instructions.
Other commands:
lore-server status # check if everything is running
lore-server update # update to the latest release
lore-server uninstall # remove services (keeps data)
lore-server clean # remove services + binaries (keeps data)Updates
The CLI includes an optional self-update flow backed by GitHub releases:
lore self-update status
lore self-update check
lore self-update apply
lore self-update enableThe server also supports optional startup self-update from the admin UI. When enabled, lore-server checks the configured GitHub repo before it starts listening, installs a newer release in place if one exists, and relaunches itself once with the same arguments.
CLI usage
Set defaults once:
lore config set --url http://127.0.0.1:7043 --token YOUR_AGENT_TOKEN --project alpha.docsExamples:
lore projects
lore self-update check
lore blocks list
lore grep "deployment"
lore blocks read BLOCK_ID
lore add "New note"
lore update BLOCK_ID "Updated content"
lore librarian answer "Summarise the current project status"
lore history list
lore history show VERSION_IDCurrent capabilities
- Human login with local auth, OIDC, and optional trusted-header auth
- Roles, users, sessions, and scoped agent tokens
- Generated setup pages at
/setupand/setup.txt - Project-scoped answer librarian and project librarian
- Optional approval for project librarian actions
- Audit trails for auth, librarian activity, and project actions
- Reversible project version history with diff-style views
- Admin-configured Git export
- Optional GitHub-release-backed self-update for the CLI and server
- Per-user UI theme selection with server default fallback
Build locally
cargo test -qBinaries:
cargo run --bin lore-server
cargo run --bin lore -- --help