{{ brand }} /
{{ orgReposEmptyMsg }}
no auth 🔒 private
Sign in with Google
Signed in as
{{ userDisplayName }}
Support
{{ bannerText }}
Auth disabled (POC) — all repositories are publicly accessible; no tenant isolation is in effect.
Sign-in failed — please try again.
{{ loadBarMsg }}
No repository selected
{{ repoAvatarInitials }}

{{ repoName }}

⇩ Clone runs anywhere lore.exe runs
Clone URL
{{ cloneUrl }}
CLI
$ {{ cloneCmd }}
{{ repoDesc }}
No description yet.
{{ descCounterLabel }} {{ descError }}
Repository avatar {{ avatarError }}
{{ tag }}
Forks ({{ forksCount }})
People who can read this repo can fork it — each fork is an independent copy you can see here.
{{ fk.ownerHandleLabel }} {{ fk.visLabel }}
Revision
{{ ovRevision }}
Branch
{{ topBranch }}
Locks
{{ ovLockCount }}
History
{{ ovCommitCount }}
Recent activity
{{ recentEmptyMsg }}
{{ c.initials }} {{ c.msg }} {{ c.meta }}
README.md
{{ readmeContent }}
No README in this repository.
Loading README…
No repository selected
{{ codeTreeEmptyMsg }}
{{ row.arrow }} {{ row.name }} 🔒 {{ row.count }}
{{ codeCrumbs }} {{ codeMeta }} 🔒 Locked by {{ codeLockOwnerLabel }}
{{ codeAssetKind }} {{ codeAssetClass }}
Binary asset — no text view. Lock-for-edit before modifying; preview thumbnails land with the asset pipeline.
{{ l.n }}
Revision history — this file
Loading…
No revision history for this file yet.
{{ h.rev }} {{ h.sigShort }} {{ h.msg }} {{ h.when }}
{{ codeCtxLockedByLabel }}
No repository selected

Search code

Type at least 2 characters.
Searching…
Couldn't search — {{ searchError }}
No matches for "{{ searchQueryEcho }}".
{{ searchResultsSummary }}
Results were truncated — refine your query for a more complete picture.
{{ r.locationLabel }} {{ r.snippet }}
No repository selected
! {{ commitsDegradedMsg }}
{{ commitsListLabel }}
Loading commits…
No commits in this repository.
{{ c.rev }} {{ c.sigShort }} {{ c.msg }} {{ c.pushedInitials }} {{ c.pushedByHandle }} · {{ c.clientLabel }} · {{ c.meta }}
{{ commitFilesHeader }}
Loading…
Couldn't load changed files.
{{ commitFilesEmptyMsg }}
{{ f.code }} {{ f.name }} {{ f.addCount }} {{ f.delCount }}
{{ selCommitRevDisplay }} {{ selCommitMsgDisplay }} {{ selCommitBranch }} {{ selCommitPushedInitials }} {{ selCommitPushedByHandle }} ⑂ {{ tp.label }} ✓ on server {{ selCommitSigFull }} {{ selCommitDateDisplay }} {{ selCommitDateAbs }} {{ selCommitFilePath }}
Pick a commit from the list to see what it changed.
Loading commit changes…
Couldn't load this commit's changes.
Initial commit — no parent to diff against.
Select a changed file on the left.
{{ commitAssetKind }} {{ commitAssetChipLabel }} {{ commitAssetClass }}
Binary asset — no text diff for this revision. Contents changed.
{{ d.label }}
{{ d.sign }} {{ d.text }}
No repository selected

Issues

Sign in to open an issue
Loading issues…
Couldn't load issues — {{ issuesListError }}
No issues yet.
Issues track bugs and feature requests scoped to {{ repoName }} — open one when something needs fixing or a change is worth discussing.
Sign in to open an issue.
{{ issuesBucketEmptyMsg }}
{{ i.title }} {{ lbl.name }} {{ i.metaLine }}

New issue

Labels (optional) Loading labels… No labels defined for this repo yet.
{{ issueNewError }}
Loading issue…
Couldn't load this issue — {{ issueDetailError }}
Issue not found.
It may have been deleted, or #{{ issueDetailNumber }} doesn't exist in {{ repoName }}.

{{ issueDetailTitle }}

{{ issueDetailChipLabel }}
#{{ issueDetailNumber }} · opened by {{ issueDetailAuthorHandle }} · {{ issueDetailCreatedLabel }}
{{ issueDetailClosedText }}
{{ lbl.name }}
No description provided.
{{ issueActionError }}
Comments No comments yet.
{{ c.initials }} {{ c.authorHandle }} {{ c.createdLabel }}
{{ issueCommentError }}
Sign in to comment.
No repository selected
Loading wiki…
Couldn't load the wiki for {{ repoName }}.
No wiki pages yet.
Markdown-authored docs scoped to {{ repoName }}.
{{ writesDisabledMsg }}
Read the Branchive guide →
{{ wikiResultCount }} No matches. {{ w.label }}
{{ writesDisabledMsg }}

{{ wikiTitle }}

Markdown
{{ wikiMeta }}
{{ writesDisabledMsg }}
On this page
See also
Pick a page from the left to read it.
{{ wikiEditorHeading }}
Slug (fixed once created): {{ wikiDraftSlug }}
{{ wikiMsg }}
No repository selected

Reviews

Loading reviews…
Couldn't load reviews — {{ reviewsListError }}
No reviews yet.
A review proposes merging one branch into another — open one when a branch is ready for a teammate to look at before it lands.
{{ writesDisabledMsg }}
{{ reviewsBucketEmptyMsg }}
{{ r.initials }} {{ r.title }} {{ r.branchLine }} · {{ r.authorHandle }} · {{ r.createdLabel }} {{ r.chipLabel }}

New review

Merge into
Loading branches…
An open review already exists for {{ reviewNewSource }} → {{ reviewNewTarget }}.
Loading diff…
Couldn't preview this diff — {{ reviewNewDiffError }}
{{ reviewNewDiffSummary }}
{{ reviewNewError }}
Loading review…
Couldn't load this review — {{ reviewDetailError }}

{{ reviewDetailTitle }}

{{ reviewDetailChipLabel }}
{{ reviewDetailBranchLine }} · opened by {{ reviewDetailAuthorHandle }} · {{ reviewDetailCreatedLabel }}
Merged by {{ reviewDetailMergedByHandle }} · {{ reviewDetailMergedLabel }}{{ reviewDetailMergedSuffix }}
This review is closed.
{{ reviewDiffHeader }}
{{ reviewDiffNoteMsg }}
No file changes.
{{ f.code }} {{ f.name }} {{ f.addCount }} {{ f.delCount }}
Select a changed file.
{{ reviewAssetKind }}
Binary asset — no text diff. Contents changed between {{ reviewDetailSource }} and {{ reviewDetailTarget }}.
{{ d.label }}
{{ d.sign }} {{ d.text }}
Reviewers No reviews yet.
{{ a.initials }} {{ a.handle }} {{ a.chipLabel }}
{{ selfApproveReasonText }}
{{ reviewActionError }}

{{ reviewMergeDeleteBranchHint }}

{{ reviewMergeReason }}
Changes were requested on this review. Merge anyway?
{{ mergeCaveatText }}
{{ reviewPolicySummary }} Required approvals: {{ reviewPolicyError }}
Comments No comments yet.
{{ c.initials }} {{ c.authorHandle }} {{ c.createdLabel }}
{{ reviewCommentError }}
Sign in to comment.
Close this review without merging?
No repository selected

Releases

Loading releases…
Couldn't load releases — {{ releasesListError }}
🏷
No releases yet.
A release tags a specific revision so it can be cited and found again — cut one when a branch reaches a milestone worth naming.
{{ writesDisabledMsg }}
{{ r.initials }} {{ r.title }} {{ r.tag }} {{ r.targetLine }} · {{ r.authorHandle }} · {{ r.createdLabel }}

New release

Target branch
Loading branches…
{{ releaseNewError }}
Loading release…
Couldn't load this release — {{ releaseDetailError }}

{{ releaseDetailTitle }}

{{ releaseDetailTag }}
{{ releaseDetailTargetLine }} · tagged by {{ releaseDetailAuthorHandle }} · {{ releaseDetailCreatedLabel }}
No release notes provided.
{{ releaseActionError }}
Delete this release? This can't be undone.
No repository selected

Locks

enforced locks · binary assets
Binary .uasset/.umap files can't merge, so locking lets you claim one while you edit it. Source merges freely.
{{ lockCaveat }}
Active locks
{{ liveLockCount }}
{{ lockUserLabel }}
{{ lockUserDisplay }}
Repo
{{ repoName }}
Asset pathOwnerBranchAction
Loading locks...
No active locks on this repo.
🔒{{ lk.path }} {{ lk.owner }} {{ lk.branch }}
Acquire / release lock
{{ sg.text }}
{{ writesDisabledMsg }}
{{ lockMsg }}
No repository selected

Insights

Commit history for {{ repoName }} · branch {{ topBranch }}.
History · total
{{ ovCommitCount }}
live from /api/graph
Head revision
{{ ovRevision }}
live from /api/status
Active locks
{{ ovLockCount }}
live from /api/locks
Human vs AI-assisted commits
Detected from AI co-author markers in commit messages: Co-Authored-By: Claude · Generated with Claude Code · claude · codex · openai · copilot · 🤖
Human{{ humanCommitCount }} / {{ insightTotal }} ({{ humanPct }}%)
AI-assisted{{ aiCommitCount }} / {{ insightTotal }} ({{ aiPct }}%)
Commits by author type — detected from AI co-author markers in commit messages. Live from /api/graph.
Velocity charts, PR metrics, and storage analytics are not available in this build.
Wired endpoints: /api/graph · /api/status · /api/locks
L

{{ orgName }}

{{ orgMemberCount }} member · {{ orgRepoCount }} {{ orgRepoLabel }}
Shared storage pool
{{ poolUsedLabel }} of {{ poolQuotaLabel }} used
{{ poolStatus }} · {{ poolFreeLabel }} free
{{ sg.name }} {{ sg.tip2 }}
Top consumers {{ tc.name }} {{ tc.sizeLabel }} {{ moreLabel }}
Repositories
{{ orgReposEmptyMsg }}
Sign in
{{ or.initial2 }}
{{ or.name }} {{ or.badgeText }}
{{ or.revLabel }} {{ or.msgLine }}
by {{ or.byLabel }} · {{ or.commitCountLabel }} · {{ or.whenLabel }}
{{ or.sizeLabel }} {{ or.poolPctLabel }} of pool
People · {{ peopleCount }}
{{ pp.initials }}
{{ pp.handle }} · {{ pp.displayName }} {{ pp.singleRoleLabel }}
{{ pr.repo }}·{{ pr.roleLabel }}
Auth disabled (POC) — org-level access controls and team standing are not enforced in this build.
No repository selected

Layers

Lore-unique · compose a repo from stacked layers
Layers let you assemble a working copy from stacked, independently-versioned slices — share an engine base across projects without copying it.
{{ repoName }} actual state: loading layer stack… {{ repoName }} actual state: couldn't load the layer stack. {{ repoName }} actual state: no layers configured. Layers are defined in .lore/layers.toml.
{{ repoName }} actual state: {{ layersCountLabel }}
{{ ly.raw }}
Example Illustration of how Layers works — your {{ repoName }} has none configured yet
Layer 2Content-DLC1add-on: DLC1 content · optional · swap to switch configs
Layer 1MP_CPP-Sourceyour C++ source · independently versioned · merges freely
Layer 0UE5.4-Engineengine base · read-only · shared across all studio repos
Working copy = layers composed bottom-to-top into one unified view. Swap Layer 2 to switch between DLC configs without re-cloning the engine or source.
No repository selected

Links

Lore-unique · mount a subpath of another repo
Links mount a path from another Lore repo into this one at a pinned revision — share a plugin or asset pack without submodules or copies.
{{ repoName }} actual state: loading links… {{ repoName }} actual state: couldn't load links. {{ repoName }} actual state: no links configured. Links are defined in .lore/links.toml.
{{ repoName }} actual state: {{ linksCountLabel }}
{{ lk.raw }}
Example Illustration of how Links works — your {{ repoName }} has none configured yet
Local pathSource repo · subpathPin
Plugins/MultiplayerSessionslore://lenboord/MPSessions-Plugin@ r12 (pinned)
The linked subpath appears in your working copy at exactly r12 — read-only until you explicitly update the pin with lore link update. No submodule pain; no copying files between repos.
No repository selected

Shared store

Lore-unique · cross-repo content-addressed dedup
Identical objects across every repo in the org are stored once. Cloning pulls only what you're missing.
{{ repoName }} actual state: shared store statistics are not yet exposed by this endpoint. Dedup data will appear here when the backend supports /api/sharedstore.
Example Illustration of how Shared Store works — your {{ repoName }} has no shared objects yet
Object hashNameReposSize
a3f8c91d…T_Armor_Albedo.uasset3 repos42 MB
b72e1440…SK_Character_Base.uasset5 repos118 MB
Objects are content-addressed (SHA-based hash). When 5 repos all reference the same 118 MB mesh, it is stored once — cloning pulls only what is missing from the local store.

Connect Branchive to AI

Let Claude and other AI agents browse and work on your Branchive repos directly.
MCP server URL
{{ connectMcpUrl }}
Setup steps
Claude Desktop / claude.ai Recommended · no terminal
  1. Open Settings → Connectors
  2. Click "Add custom connector"
  3. Paste the server URL above
  4. Click Connect, sign in with Google, and approve access
Claude Code
Run this in a terminal:
{{ connectCliCmd }}
Opens your browser to sign in on first use. Run in a real terminal — not this browser.
Cursor / other MCP clients
Add this to your client's MCP config (HTTP transport):
{{ connectJsonSnippet }}
What you can do once connected
Browse repos, files, branches, pull requests, and issues (read). With write access, an agent can also commit, open or merge reviews, and manage locks. Your existing per-repo permissions always apply — an agent can never do more than you can.
Connected AI apps
Sign in to manage connected AI apps.
Sign in
Loading…
Couldn't load your connected apps — {{ connectGrantsError }}
No AI apps connected yet.
{{ cg.clientName }}
{{ cg.scopesLabel }} · connected {{ cg.connectedLabel }}
Disconnect every AI app from your account? Each one will need to reconnect and sign in again.
{{ connectRevokeError }}
Storage
{{ usageSummaryLabel }}
{{ ur.name }} {{ ur.sizeLabel }}
Measured as current content size · beta — nothing is billed
🔒
This repository is private, or doesn't exist.
Sign in to view it.
Sign in with Google
You don't have access to this repository.
Not found
{{ reviewMergeOverlayLabel }}

{{ reviewMergeOverlayError }}

{{ brand }}
ProductPricingDocsStudios
Sign in
◆ GitHub × Perforce · for Unreal

Version control built
for Unreal Engine.

Git-grade branching for your C++. Exclusive checkout for binaries that can't merge. Self-host the open-source loreserver, or use Branchive Cloud.

$ lore clone lore://your-studio/your-game
lenboord / MP_CPP — Code
void OnRep_Armor()
{
AddOnScreenDebugMessage("Armor: %f");
}
+ IncreaseHealth_Implementation()
+ HealthComponent->SetHealth(...)
🔒
Exclusive checkout
Binary .uasset & .umap can't merge — lock before you edit. Never lose a blueprint to a bad merge again.
Git-grade code
Branches, split diffs, and a legible commit DAG for your C++ — source merges freely.
Layers · Links · Store
Compose repos from layers, mount subpaths of other repos, and dedup terabytes across your whole org.
Commit history & insights
Per-file revision history, commit graph, and AI-vs-human authorship breakdown from your real commit data.
Markdown licenses
First-class LICENSE.md rendered in the repository overview alongside your README.
Self-host or cloud
Run loreserver on your own metal or use Branchive Cloud. Your IP, your call.

Bring {{ brand }} to your studio.

Free for indie teams. Self-host in an afternoon, or start on Branchive Cloud in minutes.

{{ brand }}·Built for Unreal teams·© 2026