Choose a current machine

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.

Connect the first project

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.

Remember this device

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.

Bring in a teammate

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.

Keep workspace state local

Share corotation.json, not .laplace/. Each machine needs its own client state, credentials, chunk cache, and recovery records.

Manage remote addresses

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.

Your daily routine

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.

Revoke access

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.

Scripted setup and upgrades

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.

Know who is who

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.

Several projects, one server

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.