Everywhere
Linked computers
Your Mac and your PC linked to each other, so the phone paired with either sees both computers' files and work goes to whichever you name.
FreeMacWindowsPhoneJevie on a second computer
Choose an example to copy it, then try it in Jevie.
Use itHow it worksLimitsWhere it's kept
Use it
link a computer
On the first computer: a one-time code (and the same code as a picture), good once for ten minuteslink to jvl1.…
On the other computer, with the code pasted; pasting the code alone does the samemy computers
This one and the linked ones, online or offline, when each was last seenon my pc: run the tests in jevie
The rest of the sentence is asked on the PC; its answer comes back here as it is written, titled with the PC's nameask my mac to find the invoice from march
The same, on the Mac@DESKTOP-4F2A list my downloads
A computer named by its namerun the tests on my pc
The same, said the other way roundunlink DESKTOP-4F2A
Forgotten on both sides; linking again needs a new codeon every computer: brew upgrade
The command on this computer and every linked one at once, each in a terminal of its own; one yes here starts them allrun nix flake update on all my computers
The same, said the other way roundon all my macs: softwareupdate -l
Only the Macs, this one too if it is oneon every computer and the team: git pull
Your team's Macs listed too, never run on- on the phone: tap the gear at the top right, then a computer under ComputersAsk asks that computer from then on, and Files browses its folders
- on the phone: Work → FilesThe chosen computer's folders; tap a file to see it, save it, or play a video
- on the phone, a Mac chosen: Work → its nameIts whole screen live; Take over to click and type on it (Take over). Not for a PC yet
- on the phone, the PC chosen:
on my mac: what's in my documents
Runs on the Mac all the same; a sentence that names a computer goes where it names, whichever is chosen - on the phone: tap a file in another computer's answer (
on my pc: what is in my projects
, then plan.md)It opens from that computer, to read or save
Your computers on the wall
- on the session wall, ⇧⌘P → Computers…Every computer of yours running Jevie, its sessions under its name in the side, offline ones greyed with when each was last seen; pick a session to open it in a tile here
- Computers… → Let My Other Computers Reach This MacThis Mac's sessions offered to your own Tailscale login only (
jevie-term remote on) - Computers… → type
me@my-server→ Add me@my-serverJevie put on a server or VM over SSH, in a tile you watch; sign in at the link it prints and it shows up under its name jevie-term add me@my-serverThe same from a terminal- an agent asking on another computer reaches this Mac's notch and
needs you
as one here does
Another of your computers is found by itself when it is signed in to your Tailscale and its terminals are on; nobody else's machine ever is (only a login allow: names in ~/.jevie/self/terminals.md). Each is heard through one held request, so nothing is polled: a session asking, stopping, starting or ending arrives at once, a tool's step within 15 seconds. Adding a server needs SSH with your key (no password is ever typed for it), Node 22, rsync and Rust's cargo there; Go too for Jevie's own Tailscale, else that machine's Tailscale is used.
How it works
Each computer names itself from its host name and its kind (Mac, PC). Linking happens on both sides at once: the computer that gave the code is reached at its phone address (the tunnel the phone uses, ~/.jevie/tunnel.json), the other one introduces itself there with the code's secret, its own name and address and a key it made, and is answered with a key of the first one's. Each keeps the other in ~/.jevie/peers.json, readable only by you: the key it sends, and only a fingerprint (a hash) of the key it is sent, so a copy of the file opens nothing.
A linked computer's key opens a short list on the other: whether it is up, its name, folders listed, a file sent or a video played, a sentence asked (the answer streamed back), the sessions and the island read, a message to a session, a command run for on every computer
(and that run read back, never another terminal's), its screen watched and, only after Take over, clicked and typed on, and unlinking itself. Everything else refuses it, and it is never accepted beside the computer's own local key. What it asks is treated as asked from your phone: nothing whose reach is the whole machine runs on its word alone, a page opens on your side rather than on a screen nobody is at, its words never answer an agent's question, and approvals are asked where the work runs.
A sentence one computer passed on is never passed on again, so two computers cannot bounce it between them.
A sentence that names a computer (on my pc: …
, ask the mac to …
, @DESKTOP-4F2A …
, … on my mac
) is sent by the phone to the computer it is paired with, whichever is chosen, and that one decides in code where it goes: a linked computer's name or kind passes the rest on; its own name or kind (on my mac
said to the Mac) answers the rest right there, so the phone with the PC chosen can still ask the Mac by name. A kind names this computer only while no linked one is of that kind too, and one word left over (get the mac address
) is a thing named, not a request.
A command on every computer (on every computer: …
) is asked of each computer first, with nothing run: each one's own approvals decide, so one where changes are off, or where you said never
to that command, says so in its row and is left out. The rest wait for one yes here; then each starts the command in a terminal held by its own session hub, in your login shell, on that computer's own wall. A job here keeps one row per computer: running; needs you, when its terminal asks for a password or a yes or no (the last line of its screen, or the program saying it waits for you, as any terminal's tile shows); done, its terminal closing itself three seconds after it ends cleanly; failed, with its exit code and last lines, its terminal left open with a shell under the output.
A computer that does not answer, or whose Jevie is too old for this, says so in its row and is never asked again behind your back; one that stops answering mid-run is marked unreachable after three tries to read it.
The phone reaches the other computer through the one it is paired with (/peers/<id>/…), so it stays on one address and one pairing; the computer in between adds its key and passes the request and the answer on as they come, a video's ranges included.
Limits
- Both computers need phone access on (a tunnel) to reach each other; a computer without one can link to another but cannot be reached back. Without a tunnel the code works only for a second Jevie on the same computer.
- An asleep or offline computer answers nothing;
my computers
and the phone's dot say so. - Two Jevies too far apart in version do not talk:
my computers
, the phone's computer list and anon my pc: …
say which one is older (Studio's Jevie is older than this computer's; update Jevie on Studio, then try again.
) instead of failing. The same is said between team Macs, and on the phone when its page is older than its computer. - In the palette, a row in another computer's answer that points at a file does not open it here; its sentence is asked on that computer again. On the phone the file opens from that computer, to read and save (not to open on the computer or talk about).
- A long answer that becomes a job runs and finishes on that computer; you are told there.
- On every computer: only this computer's terminal is a tile on this wall. A linked computer's terminal is on its own wall: answer its password there (the row says it needs you). Its row here follows it, read every second and a half.
- On every computer: a team Mac never runs a command said in the room, so
and the team
lists its members and runs nothing on them. The phone cannot start a command on every computer; a yes from a coding agent or a plan's step is not yours, and nothing runs on it. - On every computer: a yes is good for two minutes and for that exact command; a computer that was asked and not told within that time needs the sentence again.
- Pictures of a PDF's page and a video made small for the phone (stills, streams) are this computer's only; another computer's video plays from the file itself.
Where it's kept
~/.jevie/peers.json (the linked computers) and ~/.jevie/peer-codes.json (codes not yet used, hashed).
In Jevie, help computers
answers from this page as you type.
Related
Updated 3 November 2026 · Something wrong or missing? Tell us