실행되는 모습
실제 세션을 찍은 화면입니다. 장치와 폰을 같은 순간에 보여 주고, 명령어마다 따로 찍은 영상도 있습니다.
이 페이지의 녹화는 실제 동작하는 에이전트, 실제 멀티플렉서, 그리고 세 번째 장면은 실제 Claude Code를 상대로 찍었습니다. 하나하나가 한 번에 찍은 것이고 연출은 없습니다.
두 화면이 같이 나오는 장면은 두 번 찍은 것이 아닙니다. st는 클라이언트마다 한 세션의
자기 뷰를 주므로, 터미널과 폰은 같은 순간 같은 셸을 보고 있습니다. 터미널 쪽은
asciinema 녹화라 글자를 그대로 선택할 수 있고, 폰 쪽은 영상입니다.
공유 시작
st는 링크와 QR을 찍고 프롬프트를 돌려줍니다. 세션은 st가 아니라 멀티플렉서의
것이어서 거기에 붙은 모든 연결보다 오래 살아남습니다 — 이 연결을 포함해서요.
on the machine
on the phone, at the same moment
폰에는 아무것도 설치하지 않았습니다. 주소는 에이전트 자신의 것이고, 끝의 ?k=는
터미널을 한 번 여는 토큰입니다. 그다음부터는 쿠키가 열어 둡니다.
에이전트를 붙이기
폰에 터미널을 두는 이유는 거기서 타이핑하기 위해서가 아닙니다. 장치에서 이미 실행 중인 것에 닿고, 폰을 주머니에 넣은 뒤에도 계속 실행될 것을 시작하기 위해서입니다.
on the phone
저 녹화에서 키 바가 없으면 막히는 곳이 두 군데입니다. 신뢰 질문은 ↑와 Enter로 고르는
목록이고, Claude Code에서 빠져나오려면 Esc가 필요합니다. 폰 키보드에는 둘 다 없습니다.
한 세션에 에이전트가 여럿일 때
Claude Code의 agent teams 는
팀메이트마다 tmux 페인을 하나씩 줄 수 있습니다. st 가 지켜보는 단위가 바로 그
페인이라 여기서 알아둘 만합니다. 실험 기능이고 기본은 꺼져 있습니다:
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
claude --teammate-mode autoauto 는 이미 tmux 안이면 페인을 나누고 아니면 한 터미널 안에서 실행됩니다. 그래서
st 가 공유 중인 세션 안에서 띄우면 팀메이트마다 페인이 생깁니다.
st 입장에서는:
- 팀메이트 하나하나가 독립된 에이전트입니다. 각자 별개의 Claude Code
프로세스로 별개의 페인에서 실행되기 때문에,
st ls의AGENTS가 그만큼 세고 앱에도 따로따로 보입니다. - 서브에이전트는 다릅니다. 서브에이전트는 한 세션 안에서 실행되고 Claude Code
자체의 패널에 뜨지 페인을 따로 갖지 않습니다.
st에는 에이전트 하나가 서브에이전트를 안에 두고 실행되는 것으로 보입니다. - 끝난 것은 접혀 있습니다. 브라우저의 창 시트와 앱의 창 목록에서 에이전트의 서브에이전트와 리더의 팀메이트는 서브에이전트 · 실행 중 2, 끝남 5 같은 머리 줄 아래에 있습니다. 실행 중인 것이 있으면 펼쳐져 있고 없으면 접혀 있습니다. 끝난 것은 맨 아래 끝난 서브에이전트 5개 묶음에 최근 것부터 들어가고, 열기 전에는 접혀 있습니다. 열고 닫은 상태는 탭(또는 앱)이 열려 있는 동안 그대로 갑니다.
- 팀이 tmux 세션을 남길 수 있습니다. Claude Code 문서에도 세션이 끝난 뒤
남을 수 있다고 적혀 있습니다. 남으면
st ls에 여느 세션처럼 보이고,tmux kill-session -t <이름>으로 지웁니다.
폰 키보드에 없는 키
Ctrl·Alt·Esc·Tab·화살표·Fn이 없고, 창을 쪼개거나 pane 사이를 오갈 방법도 없습니다. 키 바에는 그 키들이 있고, 마지막 줄로 창을 쪼개고 pane 사이를 오갑니다.
on the phone
pane은 누를 때마다 다음 pane으로 갑니다. 방향을 지정하려면 Ctrl-b 다음 화살표가 그대로
동작합니다 — ctrl을 누르고 b, 그다음 화살표입니다.
iPhone·Android 앱의 키 바에는 pane에서 실행 중인 에이전트를 위한 줄도 있습니다. Codex의 질문에 답하는
⇧← ⇧→, Claude Code의 권한 모드 ⇧tab, 되감기 esc esc, 선택지 1 2 3과 그 밖의
에이전트별 키입니다. st가 보는 에이전트를 따라가고 에이전트가 실행될 때 나타나며, 키를 길게 누르면
무엇을 보내는지 보여 줍니다. 에이전트 키 참고.
명령어
st 하나면 공유가 시작됩니다. 나머지는 이미 공유 중인 터미널을 위한 것입니다. 명령어마다
녹화를 하나씩 뒀고, 만든 방식은 이 페이지의 다른 장면과 같습니다 — 실제 바이너리, 실제
세션, 두 번 찍은 것 없음.
st | 공유 시작, 링크와 QR 출력 |
st url | 링크와 QR 코드 다시 출력 |
st ls | 멀티플렉서가 실행하는 세션들과 각각에 붙은 장치 |
st status | 이 장치의 터미널(pty), 메모리, 멀티플렉서(st 0.3.92 이상) |
st ptys | 더는 아무도 쓸 수 없는 터미널(유령 셸). st ptys clean으로 끝냅니다(st 0.3.92 이상) |
st attach | 지금 이 터미널을 공유 중인 세션에 붙이기 |
st exit | 공유 중지 |
st login | 로그인 — 재시작해도 이 장치의 링크가 같아집니다 |
st logout | 로그아웃 |
st whoami | 누구로 로그인했는지 |
st machines | 이 계정의 모든 장치와 각각의 링크 |
st restart | 세션은 그대로 두고 공유를 다시 시작(설치) |
st rename | 계정에서 이 장치를 부르는 이름(계정과 링크) |
st ui | 이 머신을 터미널 한 화면에: 세션, 에이전트, 실행, 계정의 머신, 문서, CI(st ui, st 0.4.0) |
st hooks | st가 Claude Code, Codex, Gemini CLI, opencode, Pi, Kimi Code, Qwen Code의 상태를 알게 하기(에이전트 훅) |
st doc | 문서를 폰과 태블릿으로(문서) |
st ci | 이 커밋의 GitHub Actions 실행. 잡의 로그는 st ci log(st 0.3.94 이상) |
st usage | 에이전트의 플랜 한도(AI 사용량과 지난 세션) |
st history | 지난 Claude Code와 Codex 세션(AI 사용량과 지난 세션) |
st goal | Claude Code pane이 목표를 두고 계속 일하게 하기(목표와 사용량 가드, st 0.3.113 이상) |
st orch | 이 pane이 코디네이터가 되어 워커들의 실행(run)을 이끌기(오케스트레이션) |
st worker | 워커를 띄우고, 기다리고, 한 일을 읽고 병합하기(워커) |
st project | 에이전트들의 실행을 .sophonz 파일 하나로 남기고 다시 열기(워커, st 0.3.98 이상) |
st task | 작업을 순서대로 두고, 앞 작업이 끝나면 다음 작업 시작하기(작업, 범위, worktree) |
st gate | 에이전트의 pane에서 사람에게 결정을 묻기(결정 게이트) |
st skills | 지금 st에 들어 있는 코디네이터용·워커용 안내문(에이전트 스킬과 플러그인) |
st plugin | 오케스트레이션용 Claude Code 플러그인과 Codex 스킬(에이전트 스킬과 플러그인) |
st upgrade | 이 바이너리를 최신 릴리스로 교체 |
st rollback | 이전 버전으로 되돌리기(설치) |
st restore | 스냅샷에서 tmux 세션을 다시 차리기(멀티플렉서) |
st service | 재시작해도 공유가 계속 실행되게 하기(설치) |
st relay | 릴레이(Pro의 sophonz 릴레이)를 거쳐 이 장치에 닿게 하기(set, reset) |
st route | 이 장치에 닿는 길: tailscale, cloudflare, relay 중 하나(st 0.3.93 이상) |
st awake | 에이전트가 일하는 동안 장치가 잠들지 않게 하기 |
st version | 버전 출력 |
다른 페이지로 링크된 명령은 여기서 녹화하지 않고 그 페이지에서 설명합니다. 모든 명령과 플래그는 st 명령 레퍼런스에 있습니다.
st
빈 터미널, 그리고 몇 초 뒤의 링크와 QR 코드. 세션은 멀티플렉서의 것이라 이 명령이 끝나도 남아 있습니다.
on the machine
st url
링크와 QR 코드를 다시 출력합니다. 링크를 다시 찾는 사람은 대개 QR이 있던 화면을 잃어버린
참이니까요. 끝의 ?k=는 터미널을 한 번 여는 토큰입니다.
on the machine
st ls
멀티플렉서가 무엇을 실행하고 있고 각 세션에 누가 붙어 있는지 보여 줍니다. 움직일 수 있는
목록이고 q로 나가며 Enter로 붙습니다. 에이전트 팀이 끝났는데 Claude Code 팀원이 아직
실행 중인 세션에는 team ended가 붙습니다.
AGENTS 열은 그 세션에서 코딩 에이전트가 실행 중인 페인의 수입니다. 없으면
비워 둡니다 — 대개는 비어 있습니다. 화면에 보이는 창만이 아니라 모든 창을 세므로,
한 세션에서 에이전트 여럿이 실행 중이면 목록에서 바로 보입니다.
on the machine
st attach
장치가 자기가 공유 중인 세션에 들어가는 방법입니다. 멀티플렉서는 st 안에 실려 오므로,
tmux도 zellij도 없는 장치에서는 이것이 유일한 입구입니다. Ctrl-b d로 나오면 세션은 계속
실행됩니다.
on the machine
st exit
공유를 멈춥니다. 에이전트와 터널은 사라지고 세션은 남습니다. 그다음 st url은 출력할 것이
없습니다.
on the machine
st login
로그인하면 매번 새 주소가 아니라, 재시작해도 같은 주소 하나를 갖게 됩니다. 장치 코드 방식입니다 — 페이지를 열고 코드를 승인합니다.
on the machine
st whoami, st machines, st logout
나머지 계정 명령어를 로그인하지 않은 장치에서 실행한 모습입니다.
on the machine
st upgrade
설치된 자리에서 바이너리 자신을 최신 릴리스로 교체합니다. 이미 실행 중인 에이전트는 자기가 연 사본을 그대로 씁니다. 그런 다음, 교체하기 전 버전 이후로 달라진 점을 보여 줍니다(st 0.3.78 이상).
on the machine
st doc
문서를 폰이나 태블릿으로 넘깁니다. st doc notes.md, 또는 cat plan.md | st doc --title Plan.
문서는 장치에 사본으로 남고(원래 파일에는 쓰지 않습니다) 앱에는 제목만 알립니다. 문서를 보세요.
st awake
에이전트가 일하는 동안 장치가 저절로 잠들지 않게 합니다. 그래서 턴이 중간에 끊기지 않고, 폰에서도 계속 터미널에 접속할 수 있습니다(st 0.3.71 이상). 직접 켜기 전까지는 꺼져 있습니다. 노트북을 깨워 두면 배터리가 닳기 때문입니다.
st awake # 지금 모드와, 지금 깨워 두고 있는지
st awake working # 에이전트가 일하는 동안
st awake agents # 에이전트가 일하거나 답을 기다리는 동안
st awake off # 하지 않음(기본값)모드는 ~/.sophonz/awake.json에 저장되어 다시 시작해도 유지됩니다. st가 꺼져 있을 때 바꾸면
st가 시작될 때 적용됩니다. 막는 것은 유휴 타이머뿐입니다. 화면은 꺼질 수 있고, 이미 잠든 장치를
깨우지는 않으며, st가 멈추면 함께 풀립니다. macOS는 caffeinate, Linux는 systemd-inhibit,
Windows는 시스템 자체 호출을 씁니다. 셋 중 어느 것도 없는 장치에서는 깨워 둘 방법이 없다고 알려 줍니다.
st version
on the machine
st --help
명령어와 플래그 전부를, 바이너리에서 직접. 어느 명령 뒤에 --help를 붙이거나 st help <명령>을 치면 그 명령의
도움말만 보여 주고 아무것도 실행하지 않습니다. st upgrade --help는 업그레이드하지 않습니다(st 0.3.90).
on the machine
플래그
--no-tunnel은 공개 주소를 만들지 않고 이 컴퓨터 안에만 둡니다. st가 127.0.0.1에서만 연결을 받으므로 이 컴퓨터에서만 열 수 있습니다. --session은 세션을
이름으로 공유해서 한 장치가 여러 개를 가질 수 있게 합니다. --mux는 tmux, zellij,
psmux, none 중에서 고릅니다.
on the machine