Docs

Getting started

On Linux or macOS (x86_64 or arm64):

curl -fsSL https://sh.lvcs.sh | sh

It installs lvcs to ~/.local/bin (LVCS_INSTALL_DIR moves it) after checking it against the release's SHA256SUMS, then runs lvcs install, which starts your one per-user daemon as a service (a systemd user unit on Linux, a launchd agent on macOS) that hosts every project you init or join. lvcs uninstall removes the service and leaves your projects alone. To build from source instead (Rust 1.98, pinned in rust-toolchain.toml): cargo build --release -p lvcs, then lvcs install with that binary.

# In an existing git checkout with no uncommitted changes:
cd ~/code/my-project
lvcs init --listen /ip4/0.0.0.0/tcp/4001
# prints: lvcs init owner=<participant> project=<project-id> peer_id=<PeerId>

On another machine with lvcs installed, join the same project from any peer:

lvcs join <project-id> --root ~/code/my-project --bootstrap /ip4/<address>/tcp/4001/p2p/<PeerId>

Edits in the owner's checkout reach the other machine live. A joined participant reads, and writes once the owner grants it (the participant= that lvcs join printed); until then lvcs status shows its edits refused as out_of_scope, naming this command:

# On the owner's machine:
lvcs grant <participant> write
# prints: {"grant":"<grant id>",...}; lvcs revoke <grant id> takes it back

To see a project in your browser, run lvcs auth login in it and open the link it prints on the device; confirm the code it shows matches the terminal's.

Other useful commands:

  • lvcs key new creates a participant key, for example for an agent.
  • lvcs fork <name> --from main makes an isolated workspace.
  • lvcs status shows your orientation: mirrors, grants, open holds and asks, unread notifications, stale saves, failing actions, peers, and the last error with its next step.
  • lvcs explain <value> explains any error code, rule, recovery, or path, offline.
  • lvcs audit checks every stored change's signature and grant.
  • lvcs replay --check replays the journal.
  • lvcs mcp --as <participant> serves the API to an agent as MCP tools.

The Claude Code plugin lives in clients/claude-code and installs through this repository's marketplace (.claude-plugin/marketplace.json). The VS Code extension lives in clients/vscode.