Pick a machine reachable by both teammates, with durable local storage and enough space for project history. It can be a spare computer, a workstation, or a server you control. One current node represents one shared project.
mkdir -p ~/corotation-current
cd ~/corotation-current
cor current
The default listener is [::]:8787, with an IPv4 fallback if IPv6
is unavailable. Data lives in .laplace/current. To choose another
location, run cor current --data /path/to/storage and keep
using that location for server maintenance commands.
Connections use encrypted SSH directly. There is no separate HTTP listener or shared password. Current prints its SSH host fingerprint; each teammate verifies it once.
Authorize your workstation's public key on current. On its first start, current authorizes the first conventional local public key if available; remote workstations need their own keys added:
cor keys add /path/to/your-key.pub
On your workstation, open your existing game project and connect. Use a real address reachable from your machine:
cor remote add YOUR_SERVER:8787
cor work
Compare the prompted SSH fingerprint with current's output. Corotation remembers
the host pin and authenticates with your ssh-agent or conventional local key.
Use --identity /path/to/key to choose a key, and
ssh-add to unlock encrypted keys.
The first worker uploads the project’s non-ignored files. Leave it running until the first exchange completes before inviting a teammate to catch up.
Approve your SSH key once. Corotation saves a separate device identity and uses it for future commands and reconnects. Your personal key stays in your password manager.
cor login
cor work
New connections enroll automatically. Saved identities work in other folders on this machine and remain private under ~/.config/laplace/identities. Each key is restricted to one repository; changes and sessions are still attributed to you.
cor devices
cor devices revoke FINGERPRINT
cor logout
Use cor login --renew to replace a lost or revoked device key. Revoking your personal key on current also disables its devices. Upgrade current first to enable saved identities.
Have your teammate give you their public .pub key, then authorize
it on current:
cor keys add teammate.pub --person alice --name "Alice"
Give them the server address and host fingerprint. They keep their private key
on their own machine. An empty directory can connect with the same
remote add and work commands.
If they already have the project with corotation.json, they can
simply run:
cor work
Matching existing files are adopted on first join. Different existing files are preserved as conflicts, so use an empty folder when you want an unambiguous copy of current.
Share corotation.json, not .laplace/. Each machine
needs its own client state, credentials, chunk cache, and recovery records.
cor remote add studio ssh://YOUR_HOST:8787
cor remote list
cor remote use studio
Use --local on remote add to keep an address only on
your machine. Local settings override shared settings. Use
--offline if you need to save an address before current is
reachable; identity is checked when connecting.
An existing workspace cannot switch to a different repository identity. Alternate addresses must reach the same current repository; use a new folder for a different project.
Start cor work in your project, then use your normal tools.
The command discovers project settings from parent directories, including when
you start from src/.
Use cor status or cor conflicts from another
terminal while the worker runs. Stop the worker before sync or
resolve, because only one writing client process may own a
workspace at a time.
Keep current running for the team to exchange changes, and schedule your own independent backups. Current is a foreground command; Corotation does not currently install a system service or login daemon.
cor keys list
cor keys remove SHA256:...
Revocation applies to new requests on existing connections. Already admitted requests may finish. All authorized keys have project read/write access; session ownership is tied to the key, so use a separate key for each person.
cor remote add YOUR_SERVER:8787 --identity /path/to/key --host-key SHA256:...
Corotation keeps its host pins in .laplace/local.json, independently
of OpenSSH's known_hosts. SSH config aliases, certificates,
shells, and forwarding are not supported.
When upgrading from token authentication, finish open sessions first and upgrade both ends. Re-add each remote with its SSH address; the same current data directory preserves repository identity and history. Legacy sessions remain readable but their old author labels cannot grant SSH ownership.
cor keys add alice-laptop.pub --person alice
cor keys assign SHA256:... alice
cor team rename alice "Alice Chen"
A person can have several SSH keys. Name a key once on current; session authors still come from authentication. Existing keys work without a name, and revoking a key preserves its history.
cor whoami
cor team --web
The dashboard shows people, authorized and revoked keys, accepted changes, and sessions. Select a person to filter their history. Expand a change for file previews and its session review command. It is a private local snapshot fetched over SSH; rerun to refresh. No web server or additional login is needed.
Use cor team in a terminal or
cor team --json from an agent. Counts start when accounting
is enabled and cover accepted packages, including work outside sessions. They
do not represent online presence or bandwidth usage. See the
team command reference for
paging and exports.
cor repo create my-game
cor repo create another-project
cor keys --repo my-game add teammate.pub --person alice
cor remote add ssh://YOUR_SERVER:8787/my-game
cor work
Repository names select isolated projects on the same address and SSH port.
Files, chunk storage, sessions, checks, baselines, and access lists are
separate. Creation copies default's current team once, or takes explicit
--key FILE.pub flags. Later membership changes stay in the chosen
repository.
Discover accessible projects with
cor repo list --remote ssh://YOUR_SERVER:8787. Bare server
URLs keep using the original default repository, so existing data
does not need to move. Use a separate local folder for each project.