jj workspaces over the network
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

prepare for crates.io publish: add metadata, LICENSE, exclude artifacts

+65 -11
+1
.gitignore
··· 15 15 # OS 16 16 .DS_Store 17 17 Thumbs.db 18 + opensrc/
+15 -1
Cargo.toml
··· 1 1 [package] 2 - name = "tandem" 2 + name = "jj-tandem" 3 3 version = "0.1.0" 4 4 edition = "2021" 5 + description = "jj workspaces over the network — one server, many agents, real files" 6 + license = "MIT" 7 + repository = "https://github.com/laulauland/tandem" 8 + homepage = "https://github.com/laulauland/tandem" 9 + readme = "README.md" 10 + keywords = ["jj", "jujutsu", "vcs", "distributed", "collaboration"] 11 + categories = ["development-tools", "command-line-utilities"] 12 + exclude = [ 13 + "opensrc/", 14 + "qa/", 15 + "demos/", 16 + ".fp/", 17 + ".github/", 18 + ] 5 19 6 20 [[bin]] 7 21 name = "tandem"
+21
LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) 2026 laulauland 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, subject to the following conditions: 11 + 12 + The above copyright notice and this permission notice shall be included in all 13 + copies or substantial portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+28 -10
README.md
··· 4 4 > protocol, on-disk format, and CLI surface may change. Don't use it for 5 5 > data you can't regenerate. Back up your repos. 6 6 7 - jj workspaces over the network. One server, many agents, real files. 7 + jj workspaces over the network. One server, many agents in many vms, real files. 8 8 9 9 ``` 10 10 tandem serve --listen 0.0.0.0:13013 --repo ~/project # server ··· 32 32 ## How it works 33 33 34 34 ``` 35 - ┌──────────┐ Cap'n Proto RPC ┌──────────────┐ 36 - │ Agent A │◄────────────────────────►│ │ 37 - │ (tandem) │ │ Server │ 38 - └──────────┘ │ (tandem │ 39 - ┌──────────┐ Cap'n Proto RPC │ serve) │ 40 - │ Agent B │◄────────────────────────►│ │──► git push 41 - │ (tandem) │ │ jj+git repo │ 42 - └──────────┘ └──────────────┘ 35 + ┌──────────────┐ ┌──────────────────────────┐ 36 + │ Agent A │ Cap'n Proto RPC │ │ 37 + │ (Machine B) │◄─────────────────────────►│ tandem serve │ 38 + │ │ │ (Machine A) │ 39 + │ ~/work-a/ │ │ │ 40 + │ src/auth.rs │ │ ┌────────────────────┐ │ 41 + │ src/lib.rs │ │ │ Content-Addressed │ │ 42 + └──────────────┘ │ │ Store │ │ 43 + ┌──────────────┐ │ │ │ │ 44 + │ Agent B │ Cap'n Proto RPC │ │ jj+git repo │ │ 45 + │ (Machine C) │◄─────────────────────────►│ │ operations │ │──► git push 46 + │ │ │ │ views │ │ 47 + │ ~/work-b/ │ │ │ op heads (CAS) │ │ 48 + │ src/api.rs │ │ └────────────────────┘ │ 49 + └──────────────┘ │ │ 50 + ┌──────────────┐ │ │ 51 + │ Agent C │ Cap'n Proto RPC │ │ 52 + │ (Machine D) │◄─────────────────────────►│ │ 53 + │ │ │ │ 54 + │ ~/work-c/ │ └──────────────────────────┘ 55 + │ tests/*.rs │ 56 + └──────────────┘ 43 57 ``` 58 + 59 + Each agent has a full working copy on its local disk (fast reads/writes). 60 + The commit store lives on the server. When Agent A commits, Agent B sees it 61 + instantly in `tandem log` — no fetch, no pull, no merge. 44 62 45 63 The `tandem` binary has two modes: 46 64 ··· 197 215 198 216 ### Remote machines: sprites.dev / exe.dev / SSH 199 217 200 - The real thing. Server on one machine, agents on others. 218 + Server on one machine, agents on others. 201 219 202 220 ```bash 203 221 # Machine 1 — server (your laptop, a VPS, etc.)