UPTERM(1)
π UPTERM(1) β the Upterm Manual, bestie edition
okay so you opened the manual page for upterm and honestly? good for you. this is the upterm-join girlie of the family and she's about to explain herself. π
β¨ NAME β¨
upterm-join β join a session as a guest, and rejoin it after a drop π«Ά
πΈ SYNOPSIS πΈ
upterm join [flags] TARGET
π¦ DESCRIPTION π¦
So here's the vibe: upterm join joins a session as a guest, and β this is the iconique part β it rejoins it whenever the connection drops. no cap. it just keeps coming back. main character energy. π
TARGET is the connect string on the host's β€ Join: line. that's it. that's the whole thing you need from them.
Once you're in a session, the keyboard shortcuts are lowkey essential, so pay attention bestie:
~.at the start of a line leaves (or whatever you set with--escape-char)- on Unix,
~^Zsuspendsupterm join;fgresumes it π΄ - while it's waiting to rejoin, Enter retries at once and Ctrl+C stops
π¨ fr fr important:upterm joindoes not read~/.ssh/config. so per-hostIdentityFile,UserandProxyJumpdon't apply, the target can't be a host alias, and FIDO keys work only through the agent. if you need any of that, use-i, or plainssh. not me being the bearer of bad news π
Another thing to know: a forced command (upterm host --force-command) starts again on each rejoin, and nothing the previous one did is undone. it's giving fresh start, but like, the files are still there. π
Exit statuses, because exit codes are the love language of Unix:
- the session's status when one arrives
0when you leave (~.)130when stopped255when it can't join β including a usage or configuration error π
β¨ OPTIONS β¨
--escape-char="~"β the character that starts upterm's keys at the start of a line, or'none'to turn them off entirely. your escape hatch, literally π-h,--help[=false]β help for join. the classic.--known-hosts="~/.ssh/known_hosts"β known keys of relays. an unknown relay key gets shown to you for confirmation, just likesshdoes it. π-i,--private-key=[~/.ssh/id_{ed25519,ed25519_sk,ecdsa,ecdsa_sk,dsa,rsa}]β identity files. supplying this makes the list the whole set, like OpenSSH'sIdentitiesOnly: each file must load, a public key (.pub) file selects that key in the SSH agent, and other agent keys are not offered. by default? the agent's keys are offered first, then the listed files that exist and the agent doesn't hold, and a generated key when there are neither. slay, sensible defaults β¨--proxy=""β HTTP proxy to reach the relay through (e.g.http://proxy.example.com:3128). works withssh,wsandwssrelays. without it,wsandwssuseHTTPS_PROXY/HTTP_PROXY, andsshgoes direct. π--skip-host-key-check[=false]β accept an unknown relay key and record it without asking (similar to SSH'sStrictHostKeyChecking=accept-new). a changed key is still refused. bestie, that part is not up for debate. π«--wait[=false]β on the first join, wait for a host as a rejoin does, with no 30 s limit. patience is a virtue and this flag has plenty π§ββοΈ
π OPTIONS INHERITED FROM PARENT COMMANDS π
--debug[=false]β enable debug logging (log file:/build/.upterm/upterm.log). a non-emptyDEBUGturns it on too. for when you need to know why, you know? π
π₯ EXAMPLE π₯
# Join a session, with the connect string the host shares:
upterm join ssh://ID@uptermd.upterm.dev
# The same; a target without a scheme is ssh:
upterm join ID@uptermd.upterm.dev
# Join over a WebSocket, through an HTTP proxy:
upterm join wss://ID@uptermd.upterm.dev --proxy http://proxy.example.com:3128
# Wait for a host that hasn't connected yet, with no 30 s limit:
upterm join --wait ID@uptermd.upterm.dev
look at her go. four examples, all of them eating. π
π SEE ALSO π
upterm(1) β go read the parent, she misses you.
β HISTORY β
2-Nov-2026 β Auto generated by spf13/cobra. iconic of cobra honestly.
and that's the whole page bestie π
β¨ β this was the Upterm Manual, brought to you by Upterm 0.0.0+dev, dated Nov 2026. go forth and join some sessions. π«Άπ
π¦ where this page comes from
- arch rolling: upterm 0.41.0-1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms