SYS 04원리와 장점
세션마을
떠 있는 세션을 캐릭터로 보는 로컬 도구
동시에 떠 있는 AI 세션들을 한 화면의 마을로 보여 주는 로컬 페이지입니다. 누가 일하는 중이고 누가 답을 기다리는지 한눈에 보고, 창을 찾아다니지 않고 그 자리에서 말을 걸거나 확인창에 답합니다.
01문제
창이 많아질수록 기다리는 세션을 놓쳤다
Claude Code와 Codex 세션을 여러 개 띄워 두면 어느 창이 일하는 중이고 어느 창이 내 답을 기다리는지 하나씩 열어 봐야 알 수 있습니다. 확인창 하나를 놓치면 그 세션은 답이 올 때까지 멈춰 있습니다.
세션끼리 주고받은 메시지도 각자의 기록 속에 흩어져 있었습니다. 세션들이 어떻게 이어져 일하는지 한눈에 보고, 그 화면 안에서 바로 이어 주고 싶었습니다.
02원리
어떻게 돌아가나
세션 목록과 상태를 읽습니다
Claude Code가 내주는 세션 목록(claude agents --json)과 세션 등록 파일의 상태를 읽고, 각 세션의 대화 기록은 끝부분만 읽기만 합니다. 페이지는 4초마다 새 상태를 받아 작업 중, 입력 필요, 쉬는 중, 끝남을 캐릭터의 움직임으로 그립니다.
Codex는 기록 파일을 쥔 프로세스로 확인합니다
Codex에는 세션 등록 파일이 없어서, Windows에 이 대화 기록 파일을 쥐고 있는 프로세스가 있는지 물어 살아 있는 창만 보여 줍니다. 파일이 바뀐 시각으로 짐작하지 않습니다.
기분과 레벨도 기록으로 정합니다
세션마다 성격과 레벨이 있고, 기분은 칭찬, 테스트 통과, 연달아 난 도구 오류처럼 기록에 남은 일로만 바뀝니다. 시간이 지났다고 기분이 바뀌지는 않습니다.
확인창 내용은 훅이 적어 둡니다
Claude Code는 선택창과 실행 허락 창의 내용을 답을 받은 뒤에야 기록에 남깁니다. 그래서 확인창이 뜰 때마다 PermissionRequest 훅이 도구 이름과 질문만 파일로 적어 둡니다. 훅은 아무것도 결정하지 않고, 서버는 기다림이 시작된 시각과 맞는 기록이 하나일 때만 그 내용을 믿습니다.
터미널에 키 입력으로 직접 칩니다
보내기를 누르면 서버가 그 세션의 콘솔 입력에 키를 써 넣습니다. 창이 앞에 없어도 되고, 받는 세션에는 사람이 직접 친 입력과 똑같이 들어갑니다. 한 세션의 말을 다른 세션에 이어 줄 때도 같은 길로 전달합니다.
치기 직전에 한 번 더 확인합니다
보내기 전에 세션이 작업 중인지, 확인창이 떠 있는지 보고, 키를 치기 바로 전에 그사이 상태가 바뀌지 않았는지 다시 봅니다. 같은 세션에 들어가는 요청은 줄을 세워 하나씩 처리하고, Tab이나 ESC 같은 제어 문자는 막습니다.
들어갔는지 기록과 대조합니다
친 글이 그 세션의 대화 기록에 사람 입력으로 남았는지 확인해 알려 주고, 확인창에 답했다면 기록된 답이 고른 답과 같은지 대조합니다. 언제 어느 세션에 무엇을 쳤는지는 모두 로그에 남습니다.
03장점
그래서 좋은 점
한눈에 보입니다
세션이 몇 개든 한 화면에서 누가 일하고 누가 기다리는지 보입니다. 답이 필요한 세션은 맨 앞으로 나옵니다.
창을 찾지 않고 답합니다
선택창, 실행 허락, 계획 승인에 그 세션 카드에서 바로 답합니다. 휴대폰에서도 열 수 있어 자리를 떠나 있어도 됩니다.
모르면 대신 누르지 않습니다
확인창이 겹쳤거나 무엇을 기다리는지 알 수 없으면 터미널로 안내합니다. 실행 허락은 이번 한 번 허락과 거절만 고를 수 있고, 항상 허락이나 자동 모드 전환은 페이지에서 고르지 않습니다.
Claude Code를 고치지 않습니다
공식 명령의 세션 목록, 읽기만 하는 대화 기록, 아무것도 결정하지 않는 훅, 운영체제의 콘솔 입력만 씁니다. Claude Code 자체에는 손대지 않습니다.
밖에서는 들어올 수 없습니다
서버는 이 PC 안에서만 열리고, 주소와 출처를 검사하며, 켤 때마다 새로 만든 토큰이 있어야 요청을 받습니다. 대화 내용은 HTML로 해석하지 않고 글자로만 그립니다.
돈이 들지 않습니다
외부 npm 패키지 없이 Node 기본 기능으로 돌고, 캐릭터의 수다는 누군가 페이지를 보고 있을 때만 이 PC의 로컬 모델이 만듭니다. 글꼴도 로컬에 두어 바깥으로 요청하지 않습니다.
04한계
아직 하지 않는 것
- Codex 세션은 확인창을 기록으로 알 수 없어 작업 중일 때만 막고, 친 글이 들어갔는지도 확인하지 못합니다.
- 선택창 답은 창이 막 뜬 그대로라고 보고 키를 누릅니다. 터미널에서 먼저 움직였다면 다른 답이 들어갈 수 있어, 입력 뒤 기록된 답을 꼭 보여 줍니다.
- 키 순서는 지금 쓰는 Claude Code 버전에서 확인한 것입니다. 업데이트로 확인창 모양이 바뀌면 다시 확인해야 합니다.