UPTERM(1)

πŸ“¦ version 0.41.0, in arch rolling

πŸ’– NAME πŸ’–

upterm-session-set β€” change a session's join timeout. This is from the Upterm Manual, and we're gonna make it make sense, bestie. ✨

🌸 SYNOPSIS 🌸

upterm session set NAME|ID [flags]

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so: change a session's join timeout, given its name or session ID. That's the assignment. πŸ’…

NAME|ID is the session's name β€” the one upterm host printed, or the one --name gave it β€” or its session ID. upterm session list shows both, no cap.

--join-timeout D ends the session D from now unless a guest joins first. It replaces any join timeout already set, including one given to upterm host --join-timeout, so the way that each call restarts the window: running it again with the same duration extends the deadline. 0 disables it. Before the session is ready, the timeout counts from readiness. ⏳

A guest who joins, however briefly and whether by terminal or SFTP, claims the session: the automatic join timeout is disabled for the rest of its life, and a later set says so and changes nothing. After that, nothing ends the session but its command exiting or upterm session stop. Periodt.

upterm session wait NAME blocks until the session ends; interrupting it leaves the session running. upterm session stop NAME ends it.

Durations are shown compact and normalised: 90m shows as 1h30m. Cute.

Exit-status tea β˜•: it exits 0 when the session took the change, was already claimed, is ending, or has already ended; 4 when no session has the name; and 1 for any other failure β€” including a change that could not be confirmed, which may still have taken effect: running set again restarts the window, and upterm session info NAME shows what the session holds. 🫢

✨ OPTIONS ✨

  • -h, --help[=false] β€” help for set
  • --join-timeout=0s β€” end the session this long from now unless a guest joins first (e.g. 10m). Replaces any join timeout already set; 0 disables it.

🧚 OPTIONS INHERITED FROM PARENT COMMANDS 🧚

  • --debug[=false] β€” enable debug logging (log file: /build/.upterm/upterm.log). A non-empty DEBUG turns it on too.

πŸŽ€ EXAMPLE πŸŽ€

Okay bestie, here's the example in all its exact-command glory β€” debug a failed build, open the session first, give people 10 minutes to join only if the build fails, and keep the build's exit status. Safe under set -e and in zsh, where $status is read-only:

# Debug a failed build: open the session first, give people 10 minutes to
# join only if the build fails, and keep the build's exit status. Safe under
# set -e and in zsh, where $status is read-only:
upterm host --detach --accept --name build -- bash
build_exit_code=0
make || build_exit_code=$?
if [ "$build_exit_code" -ne 0 ]; then
  # Ten minutes for someone to join; once they have, it runs until they exit.
  if upterm session set build --join-timeout 10m; then
    upterm session wait build || true
  fi
fi
upterm session stop build || true   # ends it either way; never masks the build's result
exit "$build_exit_code"

# Give 20 more minutes from now, replacing the current window:
upterm session set build --join-timeout 20m

# Turn the join timeout off:
upterm session set build --join-timeout 0

# Give a session 10 minutes, given its session ID:
upterm session set d3k5fia7m4us73ehblug --join-timeout 10m

🌈 SEE ALSO 🌈

🌟 HISTORY 🌟

2-Nov-2026 β€” Auto generated by spf13/cobra. Iconic. πŸ’…


πŸŽ€ Footer cutie check for this UPTERM(1) page: Upterm 0.0.0+dev β€” Nov 2026. Byeeee, bestie. πŸ’–βœ¨
πŸ“¦ where this page comes from