# Scribe > Centralized version control for large game projects, assets, and code. Scribe is in development. These files describe the current implementation, not a released compatibility contract. Documentation is English-only. All readers share the canonical Markdown exports under /docs/. Follow the links below for command syntax, configuration, and implementation details. ## Guides and architecture - [Documentation](https://scribevcs.com/docs/index.md): Guides are grouped by the part of Scribe they describe: native client workflows, workspaces, the optional web stack, server operations, and implementation references. - [Architecture](https://scribevcs.com/docs/architecture.md): Scribe is a centralized version-control system for large game projects. The server is authoritative; clients keep working copies and lightweight local metadata under .scribe/_state/. .scribe/ itself i - [Background jobs](https://scribevcs.com/docs/background-jobs.md): The web stack runs a dedicated worker service: its own program (apps/worker) and image, built on the same packages/service code as the API, with its own healthcheck, connection pools and secret bounda - [Branches and conflict resolution](https://scribevcs.com/docs/branches.md): A branch is a named line of development within a repository. Use ordinary add, edit, delete, move, and submit commands to work on it, then merge its changes into another branch. main is the protected - [Cherry-pick one change](https://scribevcs.com/docs/cherry-pick.md): Cherry-pick applies one ordinary accepted change from another branch in the same repository. Use it to backport a crash fix to a release branch without taking an unfinished feature, or bring a shared - [Client workflows](https://scribevcs.com/docs/client-usage.md): For every command, option, default, and exit code, see the client CLI reference. This guide explains how to use those commands together and what happens to your working files. - [Dependencies](https://scribevcs.com/docs/dependencies.md): This reference explains the direct third-party dependencies, their enabled features and licences, and their impact on Scribe's formats. Dependency choices keep storage and protocol code separate and u - [Durability, publication, and recovery](https://scribevcs.com/docs/durability-and-recovery.md): This document describes the durability guarantees, their storage assumptions, and how interrupted operations recover. For operator commands, see backup and restore. - [Flows: automation defined in the repository](https://scribevcs.com/docs/flows.md): A flow is a YAML file under .scribe/flows/. It is ordinary versioned content: it lives on a branch, changes with a submit, and can be reviewed in a proposal like any other file. The web interface read - [Gateway routing ledger v2](https://scribevcs.com/docs/gateway-format.md): This format is independent of repository, object, and workspace formats. Adding a gateway changes none of their bytes. The gateway root contains: - [Ignore rules and path semantics](https://scribevcs.com/docs/ignore-and-paths.md): Scribe applies the same repository path rules on every platform. Ignore rules control discovery of untracked files; they never hide tracked changes. - [JSON output for automation](https://scribevcs.com/docs/json-output.md): Five of the six shipped executables (scribe, scribe-server, scribe-auth, scribe-gateway, and scribe-ctl) and the development tool scribe-perf accept global --json, before or after a subcommand. scribe - [Local clusters with scribe-ctl](https://scribevcs.com/docs/cluster-usage.md): For every controller command and option, see the controller CLI reference. This guide covers the cluster definition, setup, and service lifecycle workflows. - [Logging](https://scribevcs.com/docs/logging.md): scribe, scribe-server, scribe-auth, and scribe-runner accept --log-level off|error|warn|info|debug|trace, --log-filter 'warn,scribe_server=info,scribe_objects=debug', --log-format text|json, -v (debug - [Merge and cherry-pick with a partial working copy](https://scribevcs.com/docs/partial-view-merging.md): A programmer can merge an engine branch while selecting only Source and Config, without downloading unrelated art. The view controls local files, not which changes count as integrated. Merge still rec - [Migration framework](https://scribevcs.com/docs/migrations.md): Operators use one entry point: scribe-server migrate --data-dir DIR. It preflights every catalog repository, holds the exclusive data-root lock for the whole run, and applies the ordered chain to the - [On-disk format specification](https://scribevcs.com/docs/on-disk-format.md): This specification describes canonical object, repository, and workspace formats. Scribe is unreleased: these layouts may change directly between development revisions, with specifications and byte fi - [Online integrity checking](https://scribevcs.com/docs/online-integrity.md): The serving process gradually verifies the bytes of every indexed object against its full content identity. It uses the same streaming verifier as doctor, including envelope checks, decompression, pay - [Operations](https://scribevcs.com/docs/operations.md): For launch preparation, use the production checklist. For incidents, use troubleshooting; for planned credential and certificate changes, use certificates and credentials. To set up, grow or upgrade a - [Optional repository gateway](https://scribevcs.com/docs/gateway-usage.md): For every gateway command and option, see the gateway CLI reference. This guide covers topology, configuration, placement, and operating the gateway. - [Parallel client transfers](https://scribevcs.com/docs/parallel-transfers.md): Uploads and downloads automatically use a bounded pool of session-bound data connections when enough missing chunks are queued. No server setting or format migration is required. Ordinary small transf - [Production deployment checklist](https://scribevcs.com/docs/production-deployment.md): Use this after the tutorials or the manual setup guides, before opening access to a team. - [Project orchestration](https://scribevcs.com/docs/project-workflows.md): Run these commands from the parent workspace of a project with versioned repository mounts. The current workspace view selects participating children. Each repository retains its own history, permissi - [Proposals: review a branch integration](https://scribevcs.com/docs/proposals.md): A Proposal is Scribe's optional web review workflow. It describes the result of integrating a source branch into a target branch, following new submits automatically. The interface uses familiar Revie - [Public repositories on authenticated storage](https://scribevcs.com/docs/public-repositories.md): An authenticated storage server can host private and public repositories on the same TLS endpoint. Repositories default to private. Public visibility permits anonymous discovery, metadata/history/bran - [Run Scribe](https://scribevcs.com/docs/manual.md): There are three ways to run the Scribe services, and every way grows the same deployment in the same order: one storage server, then shared authentication, then a gateway in front of more storage serv - [Scribe for Git and Perforce users](https://scribevcs.com/docs/scribe-git-perforce.md): Use this page to translate familiar workflows into Scribe commands. The tables compare everyday use cases, not interchangeable commands. Perforce examples use the centralized P4 workflow; depot paths, - [Server setup and maintenance](https://scribevcs.com/docs/server-usage.md): For every command and option, see the server CLI reference. This guide covers configuration and service behavior. To set a server up, use scribe-ctl (tutorial 1, then add authentication) or run it by - [Shared authentication and repository permissions](https://scribevcs.com/docs/auth.md): For every service and administration command and option, see the auth CLI reference. Client login and trust options are in the client CLI reference. This guide explains identities, permissions, TLS tr - [Shared repository configuration](https://scribevcs.com/docs/repository-config.md): .scribe/config.toml holds versioned project settings. It lives in Scribe's .scribe/ namespace at the repository root, where everything except .scribe/_state/ is ordinary versioned content; .scribe/_st - [Synthetic concurrency benchmark](https://scribevcs.com/docs/concurrency-benchmark.md): tools/concurrency.js measures a ladder of exact concurrent client counts against fresh, isolated Scribe servers. It reports throughput, p50/p95/p99/max latency, errors, per-worker progress, and the hi - [Testing Scribe](https://scribevcs.com/docs/testing.md): Scribe's tests check that accepted history survives failures, local work is protected during sync, and clients behave consistently across supported platforms. This guide explains how to run the checks - [Troubleshooting](https://scribevcs.com/docs/troubleshooting.md): Find the symptom, check the cause, then retry the affected operation. Examples use the tutorial deployment; adjust paths and endpoints. - [Verified object repair](https://scribevcs.com/docs/object-repair.md): scribe-server repair-objects repairs damaged or missing object bytes from a verified copy, without restoring older metadata. It preserves accepted history, repository and root incarnations, branches, - [Versioned repository mounts](https://scribevcs.com/docs/repository-mounts.md): A repository can compose independent repositories as virtual directories. The parent owns its files and the mount declarations; each child retains its own history, permissions, locks, working copy, an - [Versions, migration, backup, and restore](https://scribevcs.com/docs/migration-backup-restore.md): The offline commands here take the exclusive data-root lock and refuse to run while scribe-server serve or another maintenance command owns the root. restore and restore-checkpoint take the lock of th - [Web interface](https://scribevcs.com/docs/web-interface.md): The quickest start is scribe-ctl: setup --runtime docker --web runs the web interface in Docker beside a new cluster and provisions it; follow tutorial 5: start the web interface and see run it with s - [Wire format specification: TCP v2 and secured v4](https://scribevcs.com/docs/wire-format.md): Normative description of the bytes exchanged between scribe and scribe-server, and of the auth protocol SAU2 that storage servers, gateways, and clients use to reach scribe-auth. Reference implementat - [Workspace and collaboration administration](https://scribevcs.com/docs/workspace-administration.md): Use the client CLI to administer collaboration state from any computer: list workspace registrations, retire an old registration, or release abandoned locks. Use the server CLI on the storage host for - [Workspace views and profiles](https://scribevcs.com/docs/workspace-views.md): A workspace view selects repository-relative files and directories to materialize. It controls sync and which paths can be opened for ordinary edits or submitted from local files. Merge and cherry-pic ## Tutorials - [1. Start with a minimal server](https://scribevcs.com/docs/tutorials/01-minimal-server.md): All tutorials · Next: add authentication - [2. Add authentication and repository roles](https://scribevcs.com/docs/tutorials/02-add-auth.md): Previous: minimal server · All tutorials · Next: gateway scaling - [3. Scale across storage instances with a gateway](https://scribevcs.com/docs/tutorials/03-add-gateway.md): Previous: authentication · All tutorials · Next: operate the cluster - [4. Operate the cluster with scribe-ctl](https://scribevcs.com/docs/tutorials/04-use-ctl.md): Previous: gateway scaling · All tutorials · Next: web interface - [5. Start the web interface with scribe-ctl and Docker](https://scribevcs.com/docs/tutorials/05-start-web-interface.md): Previous: operate the cluster · All tutorials - [Daily work with a game and a shared engine](https://scribevcs.com/docs/tutorials/work-with-mounts.md): This walkthrough uses a fictional project, Orbit, to show when ordinary workspace commands are enough and when scribe project helps. The same workflow applies to an application with a shared library o - [Scribe tutorials](https://scribevcs.com/docs/tutorials.md): Build one deployment in five stages with scribe-ctl, the operations tool. Start with a single storage server and two working copies, add identity and access control, spread repositories across two sto - [Work offline](https://scribevcs.com/docs/tutorials/work-offline.md): All tutorials · Client workflow reference ## manual - [Certificates and credentials](https://scribevcs.com/docs/manual/certificates.md): Previous: web interface · Manual setup · Next: upgrades - [Run Scribe by hand on bare metal](https://scribevcs.com/docs/manual/bare-metal.md): Manual setup · Next: Docker Compose - [Run Scribe by hand with Docker Compose](https://scribevcs.com/docs/manual/docker-compose.md): Previous: bare metal · Manual setup · Next: web interface - [Run the web interface by hand](https://scribevcs.com/docs/manual/web-interface.md): Previous: Docker Compose · Manual setup · Next: certificates and credentials - [Upgrade a deployment by hand](https://scribevcs.com/docs/manual/upgrades.md): Previous: certificates and credentials · Manual setup ## CLI reference - [scribe CLI reference](https://scribevcs.com/docs/reference/cli/scribe.md): Version-control client. - [scribe-auth CLI reference](https://scribevcs.com/docs/reference/cli/scribe-auth.md): Identity service and auth administration. - [scribe-ctl CLI reference](https://scribevcs.com/docs/reference/cli/scribe-ctl.md): Scribe's operations tool. - [scribe-gateway CLI reference](https://scribevcs.com/docs/reference/cli/scribe-gateway.md): Repository routing gateway. - [scribe-runner CLI reference](https://scribevcs.com/docs/reference/cli/scribe-runner.md): Executes Scribe flow jobs for a web API. - [scribe-server CLI reference](https://scribevcs.com/docs/reference/cli/scribe-server.md): Storage service and offline maintenance.