P

Lore CLI cheat sheet

date: 2026-06-15
author: Peterino

Core concepts

  • lore status --scan reconciles the filesystem with Lore’s dirty tracking.
  • lore stage chooses paths for the next commit. It does not freeze file bytes.
  • lore commit creates a revision and moves local branch latest. (note, files are sent to server with this command)
  • lore push publishes by moving remote branch latest.
  • lore sync brings remote branch movement into the working tree.

Building from source.

Needs Git, Rust/Cargo, and native build tools.

root="$HOME/src"
mkdir -p "$root"
git clone https://github.com/EpicGames/lore.git "$root/lore"
cd "$root/lore"


# building debug binaries
cargo build

# building optimized binaries
cargo build --release -p lore-client --bin lore
cargo build --release -p lore-server --bin loreserver

target/release/lore --version
target/release/loreserver --version

For release binaries, find the binaries target/release, install these or add them to your PATH.

Local server

loreserver

curl -i http://127.0.0.1:41339/health_check

lore://127.0.0.1:41337

No-config server: local testing only, no production auth.

One-minute workflow

mkdir -p "$work/my-project"
cd "$work/my-project"
lore repository create lore://127.0.0.1:41337/my-project --identity "you@example.com"

echo "Hello, Lore" > hello.txt
lore stage --scan .
lore status --scan
lore commit "Initial revision"
lore push

cd "$work"
lore clone lore://127.0.0.1:41337/my-project my-project-clone

Repository commands

Task Command
Create repo lore repository create lore://host:41337/name
Create with identity lore repository create lore://host:41337/name --identity "you@example.com"
Clone lore clone lore://host:41337/name target-dir
Clone branch lore clone lore://host:41337/name target-dir --branch feature-x
Clone revision lore clone lore://host:41337/name target-dir --revision <hash>
Bare clone lore clone lore://host:41337/name target-dir --bare
Repo info lore repository info
Repo status lore repository status or lore status
Verify repo lore repository verify

Status and staging

lore status

lore status --scan

lore stage path/to/file.uasset
lore stage --scan .

lore dirty Content/Textures

lore unstage path/to/file
lore reset path/to/file

Ignore list

Lore uses a root .loreignore file. It is an outbound filter: ignored paths are skipped by status, stage, and commits.

cat > .loreignore <<'EOF'
build/
*.tmp
!keep.tmp
EOF

mkdir -p src build
printf "tracked\n" > src/keep.txt
printf "ignored\n" > build/generated.bin
printf "ignored\n" > notes.tmp
printf "tracked\n" > keep.tmp

lore status --scan
lore stage --scan .

In this test, build/generated.bin and notes.tmp were skipped. keep.tmp was staged because the later !keep.tmp rule re-included it.

Rules are gitignore-style and case-insensitive. A later matching rule overrides an earlier one. Ignoring a path only affects new outbound work; files already committed still sync, merge, and restore until removed explicitly.

Perforce shelves

No direct p4 shelve. Perforce shelves are server-side pending snapshots; Lore uses normal revisions instead. Use dirty/staged paths for local WIP, local commits for checkpoints, pushed branches for shareable WIP.

lore branch create wip/material-pass
lore branch switch wip/material-pass
lore stage --scan Content/Materials
lore commit "WIP material pass"
lore push wip/material-pass

Commit, push, sync

lore commit moves local branch latest. lore push moves remote branch latest.

lore commit "Describe the change"
lore commit --stats "Describe the change"

lore push
lore push feature-x

lore sync
lore sync <revision>
lore sync --reset

Branches

lore branch list
lore branch info main

lore branch create feature-x
lore branch switch feature-x

lore branch switch main --reset

lore branch merge feature-x --message "Merge feature-x"

lore branch diff main --source feature-x

lore branch protect main
lore branch unprotect main

History and diff

lore history

lore file history path/to/file

lore diff path/to/file
lore file diff path/to/file

lore file info path/to/file
lore file hash path/to/local-file

Locks

Use locks for non-mergeable files before editing them. Current locks are advisory coordination, not hard submit enforcement.

lore lock acquire Content/Hero.uasset Content/Map.umap

lore lock acquire --branch main Content/Hero.uasset

lore lock status Content/Hero.uasset
lore lock status --branch main Content/Hero.uasset

lore lock query --path Content/Hero.uasset
lore lock query --branch main
lore lock query --owner artist-id

lore lock release Content/Hero.uasset
lore lock release --branch main Content/Hero.uasset
lore lock release --owner artist-id Content/Hero.uasset

Shared store

lore shared-store create lore://127.0.0.1:41337

lore shared-store create lore://127.0.0.1:41337 --path "$work/shared-store"

lore clone lore://127.0.0.1:41337/my-project my-project-b --use-shared-store

lore shared-store info

Service process

lore service start
lore service stop

lore service run

Useful global flags

Flag Use
--repository <path> Run against a repo path other than the current directory.
--identity <IDENTITY> Set the identity used for the operation.
--offline Force offline mode.
--remote / --local Choose remote or local data where a command supports both.
--dry-run Report what would happen without changing the local filesystem.
-P / --no-pager Disable paging.
-d / --debug Enable debug output.

Help commands

lore --help
lore repository --help
lore stage --help
lore commit --help
lore branch --help
lore lock --help
lore shared-store --help

Generated from local Lore CLI help. Use --help for exact flags.

← Previous Lore VCS notes Next → Lore execution model