st 명령 레퍼런스
사람이나 에이전트가 치는 st 명령을 모두 모았습니다. 플래그와 인자는 st 0.3.116에 있는 그대로(0.4.0에서 더해진 것은 따로 표시해) 적고, 각 명령을 설명하는 페이지를 함께 달았습니다.
아래 명령은 모두 사람이나 에이전트가 직접 치는 것입니다. st --help는 이 목록의 요약을 바이너리에서 바로 출력하고, st worker, st task, st gate, st doc --help는 각자의 사용법을 보여 줍니다.
플래그 값은 띄어 씁니다(--name=api-tests가 아니라 --name api-tests).
괄호 안의 버전은 그 명령이나 플래그가 처음 들어간 st입니다. 지금 정식 릴리스는 0.3.116이고, (st 0.4.0)이라고 적은 것은 0.4.0이 나오기 전까지 릴리스 후보(st upgrade --channel rc)에만 있습니다.
명령이 동작하는 곳
- 어디서나.
st자체, 계정 명령,st hooks,st plugin,st skills,st usage,st history,st status,st ptys,st ci, 관리 명령,st orch accept-remote가 여기에 듭니다. - st가 공유 중일 때.
st ls,st url,st attach,st exit,st restart는 공유 중일 때만 됩니다. 공유 중이 아니면 "not sharing — run st first"라고 알립니다. - st가 공유하는 세션의 pane 안에서. 나머지
st orch,st worker,st task,st gate명령은 모두 여기서만 됩니다. 자기가 실행 중인 pane($TMUX_PANE)을 읽기 때문에 다른 곳에서는 "run this inside a tmux pane of a session st shares"라며 거절합니다.st gate ask는 그 pane이 에이전트의 pane이어야 합니다. st doc은 어디서나 됩니다. st의 tmux 안에서 치면 어느 pane, 어느 에이전트에서 왔는지 함께 적고, st가 실행 중이 아니면~/.sophonz/outbox에서 기다립니다.
공유
| 명령 | 하는 일 | 안내 |
|---|---|---|
st | 공유를 시작하고 링크와 QR 코드를 보여 줍니다. 공유 중에 다시 치면 같은 화면을 다시 보여 줍니다 | 공유하기 |
st ls | 세션과 각 세션에 붙은 사람을 보여 주고, 이어서 계정의 다른 장치 세션도 보여 줍니다(st 0.3.98). 커서를 옮겨 고르는 목록이라 Enter로 붙고, d로 장치 하나의 연결을 끊고(세션 위에서는 그 세션의 모든 장치), r로 새로 고치고, q로 나갑니다. --plain은 한 번만 출력합니다(파이프로 보낼 때도 이렇게 나옵니다) | 실행되는 모습 |
st ui [뷰] | 이 머신을 터미널 한 화면에: 세션, 윈도우, pane, 에이전트와 그 런, 계정의 머신, 플랜 한도와 자원. :로 어떤 st 명령이든 실행합니다(st 0.4.0) | st ui |
st url | 접속 링크와 QR 코드를 보여 줍니다. 파이프로 보내면 링크만 나옵니다 | 실행되는 모습 |
st status | 이 장치의 터미널(pty), 메모리, 멀티플렉서와 업로드 한 줄을 보여 줍니다. 업로드 줄에는 ~/.sophonz/uploads에 든 것, 디스크의 남은 공간, 업로드를 얼마나 두는지가 나옵니다. pty를 80% 이상 쓰면 경고하고, 95% 이상이거나 하나도 남지 않으면 빨갛게 표시합니다. macOS에서는 pty 수가 어림값이라 조금 높게 나옵니다. --exact는 정확히 셉니다(바쁜 Mac에서는 몇 초 걸립니다)(st 0.3.92) | |
st ptys | 더는 아무도 쓸 수 없는 터미널(pty), 즉 유령을 tty마다 한 줄씩 오래된 것부터 보여 줍니다. 유령은 반대쪽 끝을 아무도 잡고 있지 않고, 그 위에 내 셸이 쉬고 있기만 한 pty입니다(st 0.3.92) | |
st ptys clean <tty>… | 그것들을 끝내면 어떻게 되는지 보여 주기만 하고 아무것도 끝내지 않습니다. --all은 모든 유령에 대해 같은 일을 하고, --yes는 실제로 끝냅니다. SIGHUP, 다음에 SIGTERM을 보내고 SIGKILL은 보내지 않습니다 | |
st attach [이름] | 이 터미널을 공유 중인 세션(또는 이름)에 붙입니다. st의 tmux 안에서는 그 세션으로 전환합니다 | 실행되는 모습 |
st attach <머신>/<세션> [--window <n>] | 이 터미널(iTerm, Warp 등 무엇이든)을 계정의 다른 머신에 있는 세션에 붙입니다. 앱처럼 그 머신의 터널을 거칩니다. ~.로 나오고 ~?로 키 목록을 봅니다. st의 tmux 안에서는 그 세션으로 전환합니다(st 0.3.98). --window <n>은 n번 창을 앞에 둡니다(st 0.4.0) | 실행되는 모습 |
st exit | 공유를 멈춥니다. 세션은 계속 실행됩니다. 아직 누가 붙어 있으면 거절하고, --force(-f)면 그래도 멈춥니다. st stop도 같습니다 | 실행되는 모습 |
st restart | 공유를 멈추고 이 바이너리로 다시 시작합니다. 세션과 주소는 그대로입니다. 주소를 지킬 수 없으면 먼저 묻고, --yes(-y)면 묻지 않습니다 | 설치 |
st가 받는 플래그는 st의 플래그에 있습니다.
계정
| 명령 | 하는 일 | 안내 |
|---|---|---|
st login | 장치 코드로 로그인합니다. 그러면 이 장치는 다시 시작해도 링크가 바뀌지 않습니다. --force는 다른 사람으로 로그인합니다 | 로그인과 링크 |
st logout | 로그아웃합니다 | 로그인과 링크 |
st whoami | 누가 로그인했는지 보여 줍니다 | 로그인과 링크 |
st machines | 이 계정의 모든 장치와 각 장치의 링크를 보여 줍니다 | 로그인과 링크 |
st rename <이름> | 계정에서 이 머신을 부르는 이름을 정합니다. st rename <slug> <이름>은 계정의 다른 머신 이름을 바꾸고, --reset은 호스트 이름으로 되돌립니다 | 머신 이름 바꾸기 |
문서
| 명령 | 하는 일 |
|---|---|
st doc <파일> | .md나 .txt 파일(1 MB까지)을 폰과 태블릿에 건넵니다. cat notes.md | st doc처럼 파이프로도 됩니다 |
st doc <파일> --title T | 제목을 따로 줍니다(기본은 첫 제목줄) |
st doc <파일> --folder a/b | 폴더에 넣습니다. st doc add <파일>은 st doc <파일>과 같습니다 |
st doc ls [폴더] [--tree] | 이 장치가 보관하는 문서를 보여 줍니다 |
st doc ls --by where|run|date | 같은 문서를 거기서 뽑아낸 트리로 보여 줍니다. 세션 / 창 / 에이전트 세션, 실행 / 워커, 또는 날짜별입니다(st 0.3.113) |
st doc ls --here | 이 pane의 폴더에 있는 문서만 보여 줍니다(st 0.3.113) |
st doc here | 이 pane의 문서가 어디로 가는지 보여 줍니다. 세션, 창, pane, 에이전트와 볼트 폴더입니다(st 0.3.113) |
st doc cat <문서> | 본문을 표준 출력으로 내보냅니다(st 0.3.93) |
st doc rm <문서>… | 문서를 지웁니다(st 0.3.90) |
st doc mv <문서> <폴더> | 옮깁니다(/가 맨 위). --title T는 이름을 바꿉니다. <문서>는 id, 제목, 폴더/제목 중 하나입니다 |
st doc mkdir <폴더> | 폴더를 만듭니다. 비어 있어도 남습니다 |
st doc mvdir <원래> <새> | 폴더를 안의 것과 함께 옮기거나 이름을 바꿉니다 |
st doc rmdir <폴더> | 빈 폴더를 지웁니다 |
st doc migrate | 문서를 Obsidian 볼트 ~/.sophonz/vault/machine으로 옮깁니다. 세션과 창 폴더에, 파일은 자기 이름으로 들어갑니다. --undo는 ~/.sophonz/docs로 되돌립니다(st 0.3.113) |
보관하는 것은 ~/.sophonz/docs(st doc migrate 뒤에는 볼트)에 둔 사본입니다. 원래 파일은 한 번 읽기만 하고 쓰지 않습니다. 문서는 st doc을 실행한 머신에 딸립니다. 자세한 내용은 문서에 있습니다.
코딩 에이전트
| 명령 | 하는 일 | 안내 |
|---|---|---|
st hooks install [에이전트…] | 이 머신의 코딩 에이전트가 st에 알리게 합니다. 이름을 주지 않으면 st가 훅을 걸 수 있는 에이전트(claude, codex, gemini, opencode, pi, kimi, qwen) 중 이 머신에 있는 것에 모두 겁니다 | 에이전트 훅 |
st hooks uninstall [에이전트…] | st의 훅을 다시 뺍니다(Claude Code면 상태 줄도) | 에이전트 훅 |
st hooks status | 찾은 에이전트마다 훅이 들어가 있는지 보여 줍니다 | 에이전트 훅 |
st hooks auto [on|off] | st가 시작할 때 오래된 훅을 최신으로 맞출지 정합니다 | 에이전트 훅 |
st hooks install --usage | st가 Claude Code의 상태 줄이 되어 5시간·주간 한도를 앱에 보냅니다. 원래 상태 줄도 그대로 보입니다. 되돌리기는 st hooks uninstall --usage | AI 사용량과 지난 세션 |
st usage | 에이전트의 플랜 한도를 얼마나 썼는지, 언제 초기화되는지 보여 줍니다 | AI 사용량과 지난 세션 |
st usage guard on|off|status | 주간 한도를 한 주보다 빨리 쓰고 있거나 거의 다 썼으면 루프(st goal, Claude의 /goal)의 턴을 멈춥니다. Claude Code만 따릅니다(st 0.3.113) | AI 사용량과 지난 세션 |
st goal [set <글>|set --file <파일>|clear] | Claude Code pane이 목표를 두고 계속 일하게 합니다. 턴이 끝날 때마다 st의 Stop 훅이 목표를 다시 건네고, st goal clear까지 이어집니다. 혼자 치면 그 pane의 목표를 보여 줍니다. --pane %N은 같은 tmux 서버의 다른 pane입니다(st 0.3.113) | AI 사용량과 지난 세션 |
st usage poll on|off | Claude Code와 Codex가 이 장치에 둔 로그인으로 st가 몇 분마다 Anthropic과 OpenAI에 직접 물을지 정합니다(기본 on) | AI 사용량과 지난 세션 |
st history | 지난 Claude Code·Codex 세션을 보여 주고, 세션마다 이어 가는 명령을 붙입니다. --cwd <폴더>(.이면 이 폴더), --agent claude|codex를 받습니다 | 지난 세션 |
st ci | 이 checkout 커밋의 GitHub Actions 실행을 한 줄씩 보여 줍니다. 장치의 gh로 읽습니다(st 0.3.94) | |
st ci log | 이 커밋 실행 중 한 잡의 로그를 보여 줍니다. --job <id>는 그 잡(-R을 주면 어느 저장소든), --failed는 --job이 없을 때 실패한 잡, --follow는 실행되는 동안 단계를 따라가다 끝나면 로그를 보여 주고, --all은 실패한 단계만이 아니라 모든 단계의 줄을, -R <owner/repo>는 저장소를 고릅니다(github.com이 아니면 HOST/OWNER/REPO). 아직 실행 중인 잡에는 로그가 없습니다 | |
st plugin install|status|uninstall | Claude Code 플러그인(/sophonz:orchestrate)과 Codex 스킬 sophonz-orchestrate, sophonz-worker를 설치하고, 상태를 보고, 제거합니다 | 에이전트 스킬과 플러그인 |
st skills get orchestrate|worker|all | 지금 st에 들어 있는 코디네이터용·워커용 안내문을 출력합니다 | 에이전트 스킬과 플러그인 |
st --skill | 실행한 에이전트에게 맞는 안내문을 한 번에 출력합니다. st가 띄운 워커면 워커용, 아니면 코디네이터용입니다. st skills만 쳐도 같습니다(st 0.4.0) | 에이전트 스킬과 플러그인 |
st awake [off|working|agents] | 에이전트가 일하는 동안(working), 또는 일하거나 답을 기다리는 동안(agents) 장치가 잠들지 않게 합니다. 모드 없이 치면 지금 모드를 보여 줍니다. 기본은 off입니다 | st awake |
st hook과 st statusline은 에이전트의 훅과 Claude Code가 실행합니다. 사람이 칠 일은 없습니다.
오케스트레이션
보통 사람이 아니라 코디네이터 에이전트가 칩니다. 워커 id는 그 워커의 tmux pane id(%15)이고, 다른 장치의 워커는 장치를 앞에 붙입니다(ci-mac/%15). st worker list에 보이는 이름(api-tests, ci-mac/api-tests)도 id로 쓸 수 있습니다(st 0.3.90). 여기 명령은 모두 --json을 받습니다.
st orch
| 명령 | 하는 일 | 안내 |
|---|---|---|
st orch start --objective "<목표>" | 이 pane을 코디네이터로 하는 실행(run)을 만듭니다. 실행이 없으면 첫 st worker start가 만듭니다 | 오케스트레이션 |
st orch status | st worker list와 같습니다 | 오케스트레이션 |
st orch accept-remote on|off|status | 이 장치가 계정의 다른 장치에서 워커를 받을지 정합니다. 기본은 꺼져 있습니다 | 다른 장치의 워커 |
st orch history [--run r-…] [--all] [--limit N] | 무엇을 누구에게 언제 맡겼는지, 누가 끝냈는지, 누구에게 알렸는지 보여 줍니다(st 0.3.92). 트리의 변경(데려오기, 놓아 주기, 이름 변경, 역할)도 누가 요청했는지와 함께 보여 줍니다(st 0.3.98) | 오케스트레이션 |
st orch unarchive <run> | 물러난 실행(~/.sophonz/orch/archive)을 되돌립니다. 그 에이전트들은 키로 다시 찾습니다(st 0.3.97) | 오케스트레이션 |
st project save [<run>] [-o <file>] [--with-conversations] [--force] | 실행 하나를 .sophonz 파일 하나로 저장합니다. 기록, 히스토리, 핸드오프 문서, 과제 파일, 마지막 요약, 대화 id가 들어가며, --with-conversations는 대화 기록까지 넣습니다(st 0.3.98) | 워커 |
st project archive [<run>] [-o <file>] [--with-conversations] | 저장한 뒤 실행을 ~/.sophonz/orch/archive로 은퇴시킵니다(st 0.3.98) | 워커 |
st project show <file> [--map …] | 파일에 든 것과, 여기서 열면 에이전트마다 무엇을 할지 보여 줍니다(st 0.3.98) | 워커 |
st project open <file> [--map <저장된 폴더>=<여기 폴더>]… | 에이전트마다 같은 트리에 창을 다시 만듭니다. 여기 있는 대화는 이어 가고, 없는 대화는 st가 보관한 것으로 새로 시작합니다. 여기 없는 폴더는 묻고, 물을 수 없으면 아무것도 바꾸지 않고 종료 코드 3으로 끝납니다(st 0.3.98) | 워커 |
st worker
| 명령 | 하는 일 | 안내 |
|---|---|---|
st worker start --agent claude|codex|opencode|pi --task <파일|-> | 이 세션의 새 창에 워커를 띄웁니다. --task -는 과제를 표준 입력으로 받습니다. opencode는 st 0.3.102부터, pi는 st 0.3.109부터입니다 | 워커 |
st worker wait [id…] | 워커가 끝나거나, 입력을 기다리거나, 턴을 마칠 때까지 기다립니다. id가 없으면 이 pane의 모든 워커를 기다립니다. --brief는 데려온 워커의 일 대신 브리프를 기다립니다(st 0.3.93). 종료 코드는 0 끝남, 3 누군가 기다림(질문, 게이트), 2 시간 초과입니다. --check-in 3m은 그만큼 지나면 워커마다 상태, 그 상태로 있은 시간, 제목을 들고 돌아오고 워커는 계속 일하게 둡니다(시간 초과처럼 종료 코드 2)(st 0.4.0) | 워커 |
st worker read <id> | 마지막 답과 done 요약을 가져옵니다 | 워커 |
st worker send <id> "<글>" | 워커에게 입력하고, 제대로 들어갔는지 확인합니다. 그 pane이 내 실행의 워커가 아니면(복원 뒤의 옛 id) 보내지 않고 내 워커들의 id를 알려 줍니다. --force면 그래도 보냅니다(st 0.3.90) | 워커 |
st worker send <id> --file <파일|-> ["<메모>"] | 한 줄보다 긴 글을 보냅니다. st가 사본(과 문서)을 남기고, 워커에게는 그 위치를 알려 주는 한 줄만 입력합니다. --title T는 문서 제목입니다(st 0.3.93) | 워커 |
st worker send <id> --doc <문서> | 이 머신이 보관하는 문서를 같은 방식으로 보냅니다(st 0.3.93). 지금 입력할 수 없으면(누가 거기서 치고 있으면) 워커의 inbox에서 기다리고, st가 그렇다고 알립니다(st 0.3.113) | 워커 |
st worker done --summary "<한 줄>" | 워커가 끝났다고 보고합니다(끝내지 못했으면 blocked: …). --outcome succeeded|failed로 결과를 밝힙니다(st 0.3.113) | 워커 |
st worker question [<id>] "<질문>" [--timeout 10m] | pane(기본은 내 코디네이터)에게 묻고 답을 기다립니다. 시간 안에 오지 않으면 종료 코드 2입니다. --resume <질문 id>로 다시 기다립니다(st 0.3.113) | 워커 |
st worker reply <질문 id> "<답>" | st가 입력해 준 질문에 답합니다(st 0.3.113) | 워커 |
st worker inbox | 이 pane에 밀린 것을 보여 줍니다. 입력하지 못한 일, 들어갔는지 확인되지 않은 소식입니다. 보여 주면 가져간 것으로 칩니다. --peek은 보기만 하고, --ack <id>·--ack-all은 가져가고, --wait [--timeout 10m]은 올 때까지 기다립니다(없으면 종료 코드 2)(st 0.3.113) | 워커 |
st worker list | 이 pane의 워커와 그 아래 워커를 트리로, id, 이름, 창, 상태, 과제와 함께 보여 줍니다(st 0.3.90). --depth 1이면 이 pane 바로 아래만 나옵니다. 아래 워커가 목록에 없는 팀장 뒤에는 (team N)이, 코디네이터의 pane이 사라진 워커에는 (parent gone)이 붙습니다(st 0.3.88). --all이면 다른 실행과 다른 장치의 워커까지 모두 보여 줍니다. st 0.3.87까지는 실행 전체를 보여 주었습니다 | 워커 |
st worker stop <id> --yes | 워커의 pane을 닫습니다. st가 띄운, 내 실행의 워커만 닫고, 데려온 워커는 닫지 않습니다 | 워커 |
st worker adopt <id> | 이미 실행 중이던 에이전트를 대화 그대로 이 pane의 워커로 데려옵니다. --parent <id>를 주면 다른 에이전트의 워커가 되고, --owns …는 아래와 같습니다. 자기 워커가 있는 에이전트는 팀째로 들어오고 자기 실행을 유지합니다(st 0.3.88). 턴이 끝나면 브리프를 요청받습니다. --role "<이유>"는 역할을 주고, --no-brief는 브리프를 요청하지 않습니다(st 0.3.93) | 워커 |
st worker about <id> "<역할>" | 데려온 워커의 역할을 정하고 이름 아래에 보여 줍니다. --clear는 역할을 지웁니다(st 0.3.93) | 워커 |
st worker brief --summary "<여러 줄>" | st가 요청하면 데려온 워커가 지금까지 한 일을 말합니다(st 0.3.93) | 워커 |
st worker release <id> | 데려온 워커를 놓아 줍니다 | 워커 |
st worker rename <id> <이름> | 워커의 이름(라벨)을 바꿉니다. 글자, 숫자, -로 24자까지입니다. 다른 워커가 쓰는 이름이나 장치의 이름은 거절하고, tmux 창 제목은 그대로 둡니다(st 0.3.96) | 워커 |
st worker own <id> "<경로>" | 워커가 고칠 수 있는 범위를 정합니다(쉼표로 나누고 *, **를 씁니다). --clear는 범위를 풉니다 | 작업, 범위, worktree |
st worker trees | 이 머신의 모든 worktree를 id(<실행>/<워커>)로 보여 줍니다. 워커가 끝났거나 사라진 것도 나옵니다(st 0.3.107) | 작업, 범위, worktree |
st worker diff <id|tree> | 워커가 자기 worktree에서 바꾼 것을 커밋 여부와 상관없이, 무엇에서부터인지(커밋, 또는 git이 없는 폴더면 st의 스냅샷)와 함께 보여 줍니다. --stat은 요약만 보여 줍니다 | 작업, 범위, worktree |
st worker merge <id|tree> | 그 worktree의 브랜치를 지금 checkout에 병합합니다. 충돌하면 아무것도 병합하지 않습니다. --commit은 남긴 변경을 먼저 커밋하고, --squash는 한 변경으로 스테이징만 합니다 | 작업, 범위, worktree |
st worker clean <id|tree> | worktree와 브랜치를 지웁니다. 커밋이나 병합이 안 된 변경이 있으면 거절하고, --force면 지웁니다. --keep-branch는 브랜치를 남깁니다 | 작업, 범위, worktree |
st worker ask <id|tree> ["<질문>"] | 그 worktree에서 자기 창을 가진 읽기 전용 에이전트를 띄우고, 바뀐 것을 첫 프롬프트에 넣습니다. 워커 자신에게 묻지 않습니다. 다시 물으면 같은 창입니다. --agent claude로 고릅니다(st 0.3.107) | 작업, 범위, worktree |
st worker start --fan N --agent claude,codex --task <파일> | 같은 과제를 워커 2~8명에게 줍니다. 각자 같은 커밋에서 시작하는 자기 worktree를 받고, --agent 목록은 돌아가며 씁니다. --machine <장치>를 함께 주면 모두 그 장치에서 띄웁니다(pick과 diff는 아직 이 장치의 워커만 받습니다) | 워커 |
st worker fan [<id>] | 같은 과제를 받은 워커들을 나란히 놓고 각자 무엇을 바꿨는지, 끝났는지 보여 줍니다 | 워커 |
st worker pick <id> | 그 워커의 것을 병합하고 나머지 워커의 창과 worktree는 정리합니다. --commit은 남긴 변경을 먼저 커밋하고, --keep은 나머지를 남깁니다 | 워커 |
st worker start --machine <장치> … | st orch accept-remote on을 켜 둔 같은 계정의 다른 장치에서 워커를 띄웁니다. id는 <장치>/%N입니다 | 다른 장치의 워커 |
st worker start의 다른 플래그는 이렇습니다.
--name <이름>: 창 이름이자 과제 파일 이름입니다. 소문자, 숫자,-만 남기고 24자에서 자릅니다. 없으면 과제의 첫 줄로 짓습니다.--split: 새 창 대신 코디네이터 옆에 pane을 나눕니다.--cwd <폴더>: 일할 폴더입니다(다른 장치면 그 장치의 경로).--owns "src/x/**,docs/x.md": 고칠 수 있는 범위입니다.--worktree: 워커에게 자기 git worktree와 브랜치st/<실행>/<이름>을 줍니다. git이 없는 폴더는 대신~/.sophonz/shadow/아래 스냅샷을 받고, 큰 폴더면--any-size가 필요합니다(st 0.3.107).
st worker wait: --any는 하나만 맞아도 돌아오고, --for done,waiting,idle은 기다릴 상태를 고릅니다(기본은 셋 다이고 exited는 늘 셉니다). done은 st worker done을 실행한 워커, idle은 그것 없이 턴을 마친 워커라서 --for done만 주면 시간 초과까지 기다릴 수 있습니다. --timeout의 기본은 15m이고, 시간이 다 돼도 실패가 아니라 중간 점검입니다.
--split은 이 장치의 워커에만 씁니다.
st task
| 명령 | 하는 일 | 안내 |
|---|---|---|
st task create <이름> --task <파일|-> | 순서가 있는 작업을 만듭니다. --deps a,b(이미 있는 작업만), --agent claude|codex|opencode|pi, --owns "…", --worktree를 받습니다 | 작업, 범위, worktree |
st task list [--ready] | 작업마다 waiting, ready, running, done, blocked 중 어느 상태인지 보여 줍니다 | 작업, 범위, worktree |
st task start <이름> | 워커에게 맡깁니다. --deps가 끝나지 않았으면 거절합니다. --agent, --split, --cwd 폴더를 받습니다 | 작업, 범위, worktree |
st task wait [--timeout 15m] | 작업이 ready가 되거나, 워커가 묻거나, 모두 끝날 때까지 기다립니다. 종료 코드는 0 시작할 것이 있거나 모두 끝남, 3 워커가 질문 중, 4 막혀서 움직일 것이 없음, 2 시간 초과입니다 | 작업, 범위, worktree |
st gate
| 명령 | 하는 일 | 안내 |
|---|---|---|
st gate ask "<질문>" --option "<A>" --option "<B>" | 이 에이전트의 pane에서 사람에게 결정을 묻고 턴을 멈춥니다. 선택지는 아홉 개까지입니다. --title "<짧은 제목>"으로 제목을 달고, --text로 글 답을 허용합니다. 답은 그 에이전트의 다음 메시지 "Decision gate <id> answered: …"로 옵니다 | 결정 게이트 |
st gate list [--all] | 열린 게이트를 보여 줍니다. --all이면 답했거나 거둔 것까지 보여 줍니다 | 결정 게이트 |
st gate show <id> | 게이트 하나와 그 답을 보여 줍니다 | 결정 게이트 |
st gate answer <id> <번호|"글"> | 여기서 답합니다(번호는 1부터, 번호 뒤의 글은 함께 붙습니다) | 결정 게이트 |
st gate cancel <id> | 게이트를 거둡니다 | 결정 게이트 |
관리
| 명령 | 하는 일 | 안내 |
|---|---|---|
st upgrade | 이 바이너리를 최신 릴리스로 바꾸고 공유를 새 버전으로 옮깁니다. st update도 같습니다. --channel rc|stable은 그 뒤로 릴리스 후보를 따를지 정식 릴리스를 따를지 정하고 ~/.sophonz/upgrade-channel에 남깁니다. rc 빌드는 따로 정하지 않으면 rc를 따릅니다(st 0.4.0) | 설치 |
st rollback | 바로 전 버전으로 돌아갑니다(~/.sophonz/bin에 보관) | 설치 |
st restore | 마지막 스냅샷으로 tmux 세션을 복원하고, 이 장치에 저장된 Claude Code와 Codex의 대화를 이어 갑니다. --list는 스냅샷 목록, --from <id>는 더 오래된 것, --dry-run(-n)은 할 일만 보여 주고, --no-resume-agents는 에이전트 명령을 입력만 합니다. --pending [--json]은 재시작 뒤 대기 중인 스냅샷, --decline은 복원하지 않음입니다. st가 실행 중일 때 tmux 서버가 죽으면 스스로 복원하고, 컴퓨터를 재시작한 뒤에는 사용자를 기다립니다(st 0.3.95). st 0.3.88부터는 --help가 도움말을 보여 주고, 되살리지 못한 세션은 되살리지 못했다고 따로 표시합니다 | 멀티플렉서 |
st service install | 공유를 계속 살려 둡니다. 로그인할 때, 그리고 실행 중이 아닐 때마다 시작합니다(launchd, 또는 systemd --user). 시작할 공유에 쓸 --session, --mux, --command, --no-tunnel, --no-telemetry를 받습니다 | 공유를 계속 살려 두기 |
st service uninstall|status | 살려 두기를 그만두거나(공유 자체는 계속 실행됩니다) 지금 상태를 보여 줍니다 | 공유를 계속 살려 두기 |
st route | 이 장치와 다른 장치에 어떤 경로로 접속하는지 보여 줍니다. st route tailscale은 이 장치의 tailnet에 있는 기기에서만, st route cloudflare는 어디서나 Cloudflare quick tunnel로(기본값), st route relay는 릴레이로(Pro 계정이면 sophonz 릴레이가 자동으로 준비되고, 직접 운영하는 릴레이는 먼저 st relay set), st route cloud는 sophonz cloud의 관리형 터널로(Premium, 아직 제공하지 않음) 접속하게 합니다. 다음 시작(st restart)을 위해 저장됩니다(st 0.3.93) | |
st relay | 이 장치에 어떤 경로로 접속하는지 보여 줍니다. st relay set <릴레이> [--token T]는 릴레이를 거치게 하고(Pro 계정의 장치는 st 0.4.1부터 sophonz 릴레이를 스스로 받아 오므로, 이 명령은 직접 운영하는 릴레이에 씁니다) 그것을 경로로 정합니다(토큰은 ST_RELAY_TOKEN에서 읽거나 묻습니다). st relay reset은 직접 넣은 릴레이를 지우고 Cloudflare quick tunnel을 고르고 거기에 머뭅니다(tailnet을 골라 두었으면 그대로 둡니다). 다른 길은 Tailscale이고, st route로 고릅니다 | |
st set | 프로비저닝용으로 설정을 하나씩 바꿉니다: st set relay-url <주소>, st set relay-token <토큰>(-면 표준 입력에서 읽기), st set uploads-keep <days>는 그보다 오래된 업로드를 지우고, st set uploads-keep forever는 지울 때까지 둡니다(기본값, st 0.3.94), st set <키> --reset. 혼자 치면 모든 설정과 값을 보여 줍니다 | |
st version | 버전을 출력합니다. st --version, st -v도 같습니다 |
st의 플래그
| 플래그 | 하는 일 | 안내 |
|---|---|---|
--session <이름> | 공유할 멀티플렉서 세션(기본 default) | 공유하기 |
--mux <이름> | tmux, zellij, psmux, none, auto(기본은 auto: tmux, 없으면 zellij. Windows는 psmux, 없으면 zellij. st 0.3.103) | 멀티플렉서 |
--command <프로그램> | 새 세션이 셸 대신 실행할 것. 예: st --mux none --command python3 | 멀티플렉서 |
--no-tunnel | 공개 주소 없이 이 장치 네트워크에서만 공유합니다 | 공유하기 |
--no-telemetry | 웹 터미널에서 사용 데이터를 보내지 않습니다(또는 SOPHONZ_TELEMETRY=off) | 텔레메트리 |
--help, -h | 명령 목록을 보여 줍니다 |