Lore CLI cheat sheet
Core concepts
lore status --scanreconciles the filesystem with Lore’s dirty tracking.lore stagechooses paths for the next commit. It does not freeze file bytes.lore commitcreates a revision and moves local branch latest. (note, files are sent to server with this command)lore pushpublishes by moving remote branch latest.lore syncbrings 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.