LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

lore

Epic Games version control system for large binary assets

TLDR

Create a repository on a local Lore Server
$ lore repository create lore://127.0.0.1:41337/[my-project]
copy
Clone a remote repository
$ lore clone lore://127.0.0.1:41337/[my-project]
copy
Show tracked status without walking the filesystem
$ lore status
copy
Scan the working tree and refresh dirty flags
$ lore status --scan
copy
Stage specific files (adds, edits, and deletes)
$ lore stage [hello.txt] [sample.bin]
copy
Commit the staged revision
$ lore commit "[message]"
copy
Push commits to the remote
$ lore push
copy
Sync the working tree to the remote latest (or a given revision)
$ lore sync
copy
Create a branch from the current revision
$ lore branch create [branch-name]
copy
Switch to another branch
$ lore branch switch [branch-name]
copy
Merge a source branch into the current branch
$ lore branch merge [source-branch] --message "[message]"
copy
Rename a file while keeping its history
$ lore stage move [old-path] [new-path]
copy

SYNOPSIS

lore [OPTIONS] [COMMAND]

DESCRIPTION

lore is the command-line client for Lore, an open source version control system from Epic Games. It is a centralized, content-addressed VCS optimized for projects that mix source code with large binary assets. Repository state is stored as Merkle trees and an immutable revision chain; files are chunked into reusable fragments so large binaries deduplicate and transfer incrementally.Everyday editing — staging, committing, branching, and diffing — runs against the local working tree and does not require a network round trip. A Lore Server is the durability and access-control source of record for clone, push, and sync. Remote URLs use the `lore://` scheme (for example `lore://127.0.0.1:41337/my-project`). Local metadata lives in .lore/; the companion server binary is loreserver.Unlike Git, lore status does not walk the filesystem by default. Changes made outside Lore stay invisible until they are marked with lore dirty, or until lore status --scan / lore stage --scan reconciles the tree. Directory stage only picks up files already marked dirty; passing an explicit file path always compares that file to the current revision.Branches are lightweight mutable pointers over shared fragment storage, so creating and switching branches does not duplicate underlying data. Workspaces can stay sparse: clones and syncs can fetch only selected files and their declared dependencies.

CONFIGURATION

.lore/config.toml

Per-repository client settings, created by lore repository create and lore clone. Records remote_url, commit identity, [store] capacity/eviction, [file] write behavior, and optional [shared_store_to_use]. If identity is unset, commit fails until you pass --identity or set the field.
~/.config/lore/cli.toml
User-level CLI settings (Linux; or `$XDGCONFIGHOME/lore/cli.toml`). On macOS: `~/Library/Application Support/com.epicgames.lore/cli.toml`. Currently the only field is pager (default `less -R`). --no-pager overrides it for one command.
A demo install starts loreserver with an ephemeral self-signed certificate and a store under the system temp directory, listening on port 41337 (QUIC/gRPC) and 41339 (HTTP). That store is not durable across reboots.

GLOBAL OPTIONS

--repository path

Use path as the repository instead of the current working tree.
-d, --debug
Enable debug output.
-f, --force
Force the operation if possible.
--dry-run
Report what would change without writing to the local filesystem.
-P, --no-pager
Disable pagination.
--offline
Force offline mode (no server round trip).
--remote / --local
Prefer remote or local data.
--identity IDENTITY
Use the given commit identity.
--identity-token token
Use this authentication token instead of one from the secure store.
--access-token token
Use this authorization token instead of exchanging one with the authentication service.
--non-interactive
Disable interactive prompts.
--no-gc
Skip automatic incremental garbage collection for this command.
--cache
Cache fragment payloads fetched from remote in the local store.

COMMANDS

repository create url

Create a repository in the current directory, registering it at url (for example `lore://127.0.0.1:41337/my-project`).
clone url [path]
Clone a remote repository. Supports --bare, --branch, --revision, --use-shared-store, and sparse/dependency-based clones.
status [PATH...]
Show the staged revision and files already marked dirty. Pass --scan to walk the filesystem and refresh dirty flags.
stage paths
Stage changes for commit. A directory path stages only files already marked dirty unless --scan is given. Named files are always compared to the current revision.
dirty paths
Mark files dirty so they appear in status and are picked up by directory stage, without reading or staging content.
unstage paths
Unstage changes to a file or directory.
reset paths
Discard local changes and restore paths to the current (or given) revision. --purge also deletes untracked files.
commit MESSAGE
Commit the staged revision. Staging and committing work fully offline.
push [branch]
Push commits to the remote. Defaults to the current branch.
sync [revision]
Synchronize the working tree to a repository state (alias: synchronize). Omitting revision syncs to the remote latest.
diff [paths...]
Show differences. Defaults compare the current revision to the filesystem; --source / --target select revisions.
history [LENGTH]
List revisions of the repository. --oneline prints one line per revision.
branch create branch
Create a new lightweight branch at the current revision.
branch switch branch
Switch the working tree to another branch.
branch merge branch
Merge branch into the current branch. Clean merges commit automatically; conflicts leave a staged merge to resolve or abort.
branch push [branch]
Push the named (or current) branch to the remote.
lock acquire / lock release / lock status
Advisory file locks to signal that a non-mergeable asset is being edited.
shared-store create remote-url
Create a shared immutable store so multiple working trees reuse the same on-disk fragments.
service start / service stop
Start or stop a background service process for the local repository.
auth login / login
Authenticate the CLI against a Lore Server.
completions shell
Generate shell completions (`bash`, `zsh`, `fish`, `elvish`, `powershell`).

INSTALL

yay -S lore-vcs-bin
copy

CAVEATS

Lore is pre-1.0: APIs, on-disk formats, and the CLI may change between releases. File locking is advisory — it informs collaborators rather than blocking writes. UEFN (Unreal Editor for Fortnite) projects historically used a proprietary compressor and cannot yet be opened with the open source CLI or desktop client. lore status without --scan will miss externally edited files. Commits need a configured identity. Pushing to a branch that moved remotely requires lore sync, conflict resolution, and another push.

HISTORY

Lore was developed at Epic Games as Unreal Revision Control, the built-in VCS for UEFN. Epic open-sourced it in June 2026 under the MIT license. The library, server, and CLI are written in Rust; language SDKs exist for C/C++, C#, Go, Python, and JavaScript.

SEE ALSO

git(1), jj(1), hg(1), p4(1), svn(1)

RESOURCES

Braincup
Open source brain training for math, memory and focus
Braincup mini-games
41 mini-games · Apache-2.0
No ads · No tracking
Play in browser
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid
277 stars
From the maker of Linux Command Library
Copied to clipboard
Braincup
Open source brain training for math, memory and focus. 41 mini-games, from mental arithmetic to Sudoku, N-Back and Solo Chess.
Apache-2.0 licensed · No ads · No tracking · No account
From the maker of Linux Command Library
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid