Select the types of activity you want to include in your feed.
feat: server lifecycle + docs overhaul
tandem up/down/status/logs for daemon management without systemd. Control socket (Unix domain socket, JSON lines). Signal handling. 19 new tests (34 total). README restructured, systemd section removed.
···11[package]
22name = "jj-tandem"
33-version = "0.1.0"
33+version = "0.2.0"
44edition = "2021"
55description = "jj workspaces over the network — one server, many agents, real files"
66license = "MIT"
+10-42
README.md
···99## Install
10101111Published on [crates.io](https://crates.io/crates/jj-tandem) as `jj-tandem`.
1212+Requires a Rust toolchain and the [Cap'n Proto compiler](https://capnproto.org/install.html).
12131314```bash
1415cargo install jj-tandem
1516```
16171717-This installs the `tandem` binary. Requires a Rust toolchain and
1818-[Cap'n Proto compiler](https://capnproto.org/install.html) (`capnp`).
1919-2020-To build from source:
1818+Or build from source:
21192220```bash
2323-git clone https://github.com/laulauland/tandem.git
2424-cd tandem
2121+git clone https://github.com/laulauland/tandem.git && cd tandem
2522cargo build --release
2626-# binary at target/release/tandem
2723```
28242925## Quickstart
30263127```bash
3232-# Start a server (on your VPS, or locally for testing)
2828+# On your server (VPS, or localhost for testing)
3329tandem up --repo ~/project --listen 0.0.0.0:13013
3434-3535-# Check it's running
3630tandem status
37313838-# On agent machines: initialize a workspace
3939-tandem init --tandem-server=your-vps:13013 ~/work
3232+# On each agent's machine
3333+tandem init --tandem-server=your-server:13013 ~/work
4034cd ~/work
4135echo 'pub fn auth() {}' > auth.rs
4236tandem new -m "feat: add auth"
4343-4444-# View logs from the daemon
4545-tandem logs
4646-4747-# Stop the server
4848-tandem down
4937```
50385151-Every jj command works through `tandem` — `log`, `new`, `diff`, `file show`,
5252-`bookmark`, `describe` — because tandem implements jj-lib's store traits
5353-as RPC stubs. The server holds a real jj+git repo.
3939+That's it. The agent is now using jj against the remote store — `tandem log`,
4040+`tandem diff`, `tandem file show`, `tandem bookmark` all work because tandem
4141+implements jj-lib's store traits as RPC stubs. The server holds a real jj+git
4242+repo, so `jj git push` on the server ships to GitHub.
54435544---
5645···148137docker stop tandem-server && docker rm tandem-server
149138docker network rm tandem-net
150139```
151151-152152-### With systemd
153153-154154-Use `tandem serve` (foreground mode) for process managers.
155155-156156-```ini
157157-[Unit]
158158-Description=tandem server
159159-After=network.target
160160-161161-[Service]
162162-ExecStart=/usr/local/bin/tandem serve --listen 0.0.0.0:13013 --repo /srv/project
163163-Restart=on-failure
164164-User=tandem
165165-166166-[Install]
167167-WantedBy=multi-user.target
168168-```
169169-170170-`tandem serve` also creates a control socket, so `tandem status`, `tandem logs`,
171171-and `tandem down` work against it too.
172140173141### With Claude Code / AI agents
174142