에이전트와 상태
st가 따라가는 코딩 에이전트, 에이전트가 상태를 알리는 방법, pane이 가질 수 있는 상태, 앱이 그 상태로 하는 일을 설명합니다.
st는 장치의 tmux 서버에 있는 pane을 모두 살펴보고, 그 안에서 실행 중인 코딩 에이전트를 알아봅니다. 에이전트마다 상태를 기록하고, 앱은 그 상태를 보여 줍니다.
터미널 자체를 공유합니다
프롬프트에서 실행 중이던 에이전트, 빌드, 로그가 그대로 폰에서 이어집니다. 별도로 연동할 항목은 없습니다. 공유 대상은 셸 자체이며, 셸 안에서 실행되는 프로그램이 아닙니다.
무엇을 입력하든
내 셸 · tmux, psmux 또는 zellij · 내 장치
지원하는 에이전트
| 에이전트 | st가 따라가는 방법 |
|---|---|
| Claude Code | 훅, 그리고 화면 |
| Codex | 훅과 notify 프로그램, 그리고 화면 |
| Gemini CLI | 훅(st 0.3.71 이상), 그리고 화면 |
| opencode, Pi | 훅(st가 써 넣는 플러그인·확장), 그리고 화면 |
| Kimi Code, Qwen Code | 훅, 그리고 화면 |
| GitHub Copilot CLI, Aider, goose | 찾기는 하지만 아직 훅이 없습니다 |
훅은 장치마다 한 번 설치합니다.
st hooks install
st hooks status # 찾은 에이전트 모두와, 훅이 들어갔는지st를 처음 실행할 때 설치할지 묻고, 앱에서도 설치할 수 있습니다. 훅이 없어도 st는 화면을 읽어 대부분의 상태를 맞힙니다. 훅이 있으면 턴, 권한 요청, 서브에이전트를 정확하게 알 수 있습니다. 훅이 무엇을 보내고 무엇을 절대 보내지 않는지는 에이전트 훅에 있습니다.
상태
| 상태 | 뜻 |
|---|---|
| working | 턴이 진행 중입니다. 에이전트는 멈췄지만 그 에이전트가 띄운 서브에이전트가 아직 일하고 있을 때도 이 상태입니다. |
| waiting | 내 응답을 기다립니다. 권한 질문, 일반 질문, 승인할 계획이 여기에 해당합니다. |
| done | 마지막 턴이 끝났고 그 뒤로 아무것도 입력되지 않았습니다. |
| error | 마지막 턴이 오류로 끝났습니다. |
| idle | 에이전트는 열려 있지만 턴을 시작하지 않았거나, 턴이 끝난 뒤 내가 한 번 확인했습니다. |
| unknown | st가 모르는 프로그램이거나, 훅 없이는 읽을 수 없는 에이전트입니다. |
기다리는 에이전트가 묻는 내용을 st가 읽을 수 있으면 상태에 질문과 선택지가 함께 실립니다. 덕분에 폰에서 바로 답할 수 있습니다.
세션의 상태는 그 안의 pane 가운데 가장 급한 상태를 따르고, 장치의 상태는 그 장치의 세션 가운데 가장 급한 상태를 따릅니다. 급한 순서는 waiting, error, working, done, idle입니다.
상태가 보이는 곳
- 창과 세션 옆. 데스크탑 앱, 웹 터미널, 폰 앱의 창 목록에 상태 점이 붙고, 에이전트가 나를 기다리는 창에는
?가 붙습니다. - 폰 알림. 장치가 로그인돼 있으면 에이전트가 물을 때(선택지가 버튼으로 붙습니다)와 턴이 끝나거나 실패했을 때 알림이 옵니다. 짧은 턴(기본 30초 미만)과, 그 기기에서 이미 보고 있는 세션은 알리지 않습니다. 방해 금지 시간과 장치별 끄기는 앱 설정에 있습니다.
- 계정에 하나뿐인 라이브 액티비티(iPhone)나 Live Update(Android). 장치마다 한 줄씩입니다. 이름, 상태, 개수, 시간만 싣고 터미널의 내용은 절대 싣지 않습니다.
- iPhone·Android 위젯. 같은 이름과 상태를 보여 줍니다.
자세한 내용은 앱별 문서에 있습니다. iPhone, Android, 데스크탑 앱.
서브에이전트와 팀
Claude Code의 서브에이전트는 부모 에이전트 안에서 실행되며 자기 pane이 없습니다. st는 훅으로 서브에이전트를 파악해 부모 에이전트 아래에 나열하고, 종류와 전달받은 짧은 설명, 실행 중인지 끝났는지를 함께 보여 줍니다. Claude Code 에이전트 팀은 팀원마다 pane을 하나씩 씁니다. 팀원은 각각 독립된 에이전트이고, 리드 아래에 나옵니다. 두 경우 모두 실행되는 모습에서 볼 수 있습니다.
다른 에이전트가 띄운 워커도 자기 창에서 실행되는 보통 에이전트이고, 상태도 똑같습니다. 워커는 오케스트레이션에서 다룹니다.
채팅
Claude Code나 Codex가 실행 중인 pane은 화면 대신 대화 형태로 읽을 수 있습니다. 내 메시지와 에이전트의 답이 나오고, 에이전트가 쓴 도구는 하나씩 한 줄로 접혀 나옵니다. 데스크탑 앱, 웹 터미널, 폰 앱에서 Terminal | Chat으로 전환합니다. st는 에이전트가 장치에 남기는 대화 기록을 읽어 장치의 주소로 제공하고, 컨트롤 플레인으로는 보내지 않습니다. 채팅에 쓴 글은 에이전트 자신의 입력창에 들어가며, 에이전트가 질문을 띄우고 있으면 그 위에 입력하지 않습니다. st 0.3.57 이상이 필요합니다.
사용량과 지난 세션
st usage와 앱은 Claude Code와 Codex가 플랜의 5시간 한도와 주간 한도를 얼마나 썼는지, 언제 초기화되는지를 보여 줍니다. 80 %와 95 %에 이르면 폰에 알림이 옵니다. st history와 앱의 History는 지난 Claude Code와 Codex 세션을 나열하고, 그중 하나를 새 창에서 이어 갈 수 있게 합니다. AI 사용량과 지난 세션을 보세요.