Remote locations
A remote location is a Linux server (x86_64 or aarch64) reached over SSH. Jojo installs its daemon on the server, and the server's projects and sessions appear in the same sidebar as your computer's. The server's sessions keep running when your window disconnects, and any computer that adds the same server sees the same projects and sessions.
Requirements
- An entry for the server in
~/.ssh/configthat logs in with a key, without a password prompt. Jojo uses your system'ssshand stores no passwords. - A normal login shell for the server account, such as
/bin/bash. A shell that runs each SSH connection in its own temporary container (RunCloud's jailed shell,/bin/rc-shell) cannot keep the daemon running; see Troubleshooting.
Adding a remote location
- At the bottom of the sidebar, click Remote location.
- Choose the server's alias from the list, which is read from
~/.ssh/config, or choose Other and typeuser@host. - Jojo runs six steps and reports each one:
- Connect: checks that SSH logs in without a prompt.
- Platform: reads the server's processor type.
- Install: uploads the daemon to
~/.local/bin/jojod, or upgrades an older one. - Start: starts the daemon through the account's login shell.
- Linger: checks that systemd lets the daemon outlive your last SSH login. Without lingering the daemon and its sessions may end when you log out; this step warns but does not stop the install.
- Hooks: registers Jojo's hooks in the server's
~/.claude/settings.json, and warns when Claude Code is not installed there.
- Add projects on the new location with the + on its heading.
Reconnecting and removing
- The window reconnects by itself when the network returns. Right-click the heading and choose Reconnect to try at once.
- Remove remote location… removes it from the sidebar and leaves the daemon and sessions on the server. Remove and uninstall from server… also stops the daemon there, which ends its sessions, removes Jojo's Claude Code hooks from the server, and deletes
~/.local/bin/jojodand~/.jojo. Both ask for confirmation and list the running sessions first.