sophonz란?

sophonz는 터미널 멀티플렉서를 기반으로 한 에이전트 개발 환경입니다. 내 장치의 코딩 에이전트를 여러 장치에 걸친 하나의 오케스트레이션으로 묶고, 데스크탑, 브라우저, 폰에서 지켜보고 다룹니다.

sophonz는 터미널 멀티플렉서를 기반으로 한 에이전트 개발 환경(ADE)입니다. 코딩 에이전트(Claude Code, Codex, Gemini CLI)는 사용자의 장치에 있는 tmux 세션에서 실행되며, sophonz로 그 에이전트를 지켜보고, 에이전트 사이에 작업을 넘기고, 직접 개입할 수 있습니다. 데스크탑 앱, 브라우저, 폰 어디서든 가능합니다.

장치마다 바이너리 하나, st가 실행됩니다. st는 그 장치의 tmux 세션을 공유합니다. 주로 데스크탑 앱과 iPhone·Android 앱으로 접속하고, 데스크탑이나 폰의 브라우저로도 열 수 있습니다. 무엇으로 열든 같은 세션이라, 폰에서 입력하면 컴퓨터의 터미널도 함께 바뀝니다.

데스크탑 앱에서 코디네이터가 워커 셋을 띄우고, st ui로 그중 하나에 들어가고, 워커가 보고하면 기록과 문서를 읽고, 폰에서 런을 아카이브했다 되살리고, 다른 머신의 에이전트를 런에 넣고, st ui에 머신 4대가 보입니다.

기본 개념

장치st를 실행하는 컴퓨터입니다. 노트북, 데스크탑, 빌드용으로 두는 Mac, 리눅스 서버 등입니다.
세션그 장치의 tmux 세션과 그 안의 창, pane입니다. 연결이 아니라 tmux에 속하므로, 보던 화면이 모두 닫혀도 계속 실행됩니다.
에이전트pane에서 실행되는 Claude Code, Codex, Gemini CLI입니다. 훅을 설치하면 일하는 중인지, 나를 기다리는지, 끝났는지를 st에 알립니다.
코디네이터와 워커일을 나눠 다른 에이전트에게 맡기는 에이전트 하나와, 각자 자기 창에서 그 일을 하는 에이전트들입니다. 워커는 계정에 있는 다른 장치에 있어도 됩니다.
계정없어도 됩니다. 로그인하면 장치마다 바뀌지 않는 링크가 하나씩 생기고, 앱에 내 장치가 모두 나옵니다.

각 개념은 st의 동작 방식에서 자세히 다룹니다.

ADE로서의 특징

  • 멀티플렉서 기반이므로 벤더에 종속되지 않습니다. 세션은 평범한 tmux 세션입니다(Windows에서는 psmux). 장치의 어떤 터미널에서든 그 세션에 붙으면 에이전트가 일하던 자리에서 그대로 이어서 작업할 수 있고, sophonz를 쓰지 않게 되더라도 세션과 에이전트는 사용자의 것으로 남습니다. 어떤 터미널(iTerm, Warp 등)에서든 st attach <장치>/<세션>으로 다른 장치의 세션에도 붙을 수 있습니다. 에이전트도 이미 쓰고 있는 것을 각자의 로그인과 설정 그대로 사용합니다. 세션, 창, pane을 보세요.
  • 여러 장치의 에이전트를 하나의 오케스트레이션으로. 코디네이터 에이전트가 작업을 나눠 워커에게 맡기고, 워커는 각자 자기 창에서 일합니다. 워커는 이 장치에도, 계정의 다른 장치에도 있을 수 있으며, 실행 전체가 하나의 트리로 보이고 그 자리에서 바꿀 수 있습니다. 오케스트레이션을 보세요.
  • 재시작한 뒤에도 이어 갑니다. st는 10초마다 세션의 스냅샷을 저장합니다. 컴퓨터가 재시작되면 사용자가 승인한 뒤 세션을 다시 구성하고, Claude Code와 Codex는 대화를 이어 갑니다. tmux 서버가 죽었을 때를 보세요.
  • 핸드오프가 기록으로 남아 오케스트레이션을 감사할 수 있습니다. 에이전트가 다른 에이전트에게 넘긴 브리프는 보낸 시각과 받는 쪽이 담긴 마크다운 파일로 보관됩니다. 실행의 기록에는 모든 핸드오프, 워커마다의 결과, 그리고 트리의 모든 변경(데려오기, 놓아 주기, 이름 변경)이 누가 요청했는지와 함께 남습니다. 데스크톱 앱과 웹 터미널의 에이전트 그래프 옆 History 탭이 이를 보여 주며, 한 줄을 누르면 핸드오프 문서 자체가 열립니다. 핸드오프는 남습니다를 보세요.
  • 오케스트레이션 전체를 파일 하나로. st project save는 실행 하나를 .sophonz 파일 하나로 저장합니다. 에이전트 트리, 기록, 핸드오프 문서, 마지막 요약, 각 에이전트의 대화가 무엇이었는지가 들어갑니다. st project open은 이 장치나 다른 장치에서 그 실행을 다시 열어, 에이전트마다 자기 창을 다시 만들고 그 장치에 대화가 있으면 이어 갑니다. 데스크톱 앱에서는 **File → Open / Save / Archive Project…**입니다. 실행을 파일 하나로를 보세요.
  • 어디서든 지켜보고 개입합니다. 데스크탑 앱, 브라우저, iPhone·Android 앱이 같은 세션을 엽니다. 창마다 상태 점이 붙고, 에이전트가 질문하거나 일을 마치면 선택지가 버튼으로 붙은 알림이 오며, iPhone에는 계정 전체를 보여 주는 라이브 액티비티가 뜹니다. 에이전트와 상태를 보세요.
  • 폰에서도 쓸 만한 터미널. Ctrl, Esc, Tab, 화살표가 있는 키바, 긴 프롬프트를 쓰는 시트, 앱의 받아쓰기, 에이전트의 대화를 채팅으로 보는 화면이 있습니다. 다른 창을 보는 폰은 크기를 따로 가지므로 데스크탑 화면을 찌그러뜨리지 않습니다.

일반 웹 터미널과 다른 점

  • 끊기지 않는 세션. ttyd는 웹소켓이 닫히는 즉시 셸을 종료합니다. 세션은 멀티플렉서가 유지하므로 화면이 잠기거나 앱을 전환하거나 네트워크가 바뀌어도 동일한 셸로 복귀합니다.
  • 주소가 바뀌어도 유지되는 링크. 무료 터널 주소는 재시작할 때마다 바뀝니다. 로그인하면 변하지 않는 링크 하나로 해당 장치에 접속할 수 있습니다. 터미널을 여는 토큰은 장치 외부로 전송되지 않습니다.
  • 사전 설치가 필요 없는 구성. bun, ttyd, 멀티플렉서를 별도로 설치할 필요가 없습니다. st에 모두 포함되어 있습니다. tmux를 우선 사용하며, 장치에 설치된 tmux가 있으면 그것을 사용합니다. 두 브라우저가 한 세션의 서로 다른 창에 동시에 접속할 수 있는 백엔드는 tmux뿐입니다. Windows에서는 psmux를 사용합니다.

구성

  1. 내 장치. st가 에이전트를 기동하고 멀티플렉서 세션을 ttyd에 연결합니다. ttyd는 루프백 주소에만 바인딩됩니다.
  2. 터널. Free에서는 Cloudflare quick tunnel이 실행할 때마다 바뀌는 공개 주소를 만들고, Pro에서는 sophonz 릴레이가 고정 주소를 제공합니다. 장치의 tailnet을 대신 사용할 수도 있습니다(st route). 셸 앞에는 st의 공유 토큰이 있으며, Cloudflare Access를 함께 둘 수도 있습니다.
  3. 브라우저. 프록시가 터치 키바, 세션 목록, 캐시되는 Nerd Font를 포함한 화면을 전달합니다. 연결은 장치 쪽에서 외부로 수립되므로, 들어오는 연결을 대기하는 포트나 경유할 SSH 클라이언트가 없습니다.

대상

코딩 에이전트를 내 장치에서 실행해 두고, 책상을 떠나서도 지켜보고 싶은 사람을 위한 도구입니다. 권한 질문에 폰으로 답하고, 어느 에이전트가 끝났는지 확인하고, 회사에서 시작한 세션을 집에서 노트북으로 이어 갈 수 있습니다. 에이전트를 쓰지 않더라도 폰에서 내 장치의 터미널을 쓰고 싶은 사람에게도 맞습니다.

다루지 않는 것

  • 모델이나 에이전트가 아닙니다. st는 이미 쓰고 있는 에이전트를 그 에이전트의 로그인과 설정 그대로 실행합니다. 지켜보고 대신 입력해 줄 뿐, 생각은 에이전트가 합니다.
  • 빌려 쓰는 서버가 아닙니다. 컴퓨터를 빌려 드리지 않습니다. 세션과 에이전트, 코드는 내 장치에 있고 앱은 클라이언트입니다. 계정은 각 장치에 접속할 주소를 알고 알림을 보낼 뿐입니다.
  • SSH 클라이언트가 아닙니다. 열어 둘 포트도, 띄울 SSH 서버도 없습니다. 장치가 터널로 바깥에 연결하고, 앱은 그 터널로 들어옵니다. 실행 방식를 보세요.
  • git을 대신하지 않습니다. 워커마다 git worktree를 줄 수는 있지만, 장치 사이에 코드를 옮기는 일은 여전히 함께 쓰는 원격 저장소가 맡습니다.

설치

장치마다 바이너리 하나만 설치합니다. ttyd, tmux, zellij와 웹 페이지가 그 안에 들어 있고, 장치에 tmux가 있으면 그쪽을 씁니다.

curl -fsSL https://dl.sophonz.io/install.sh | sh

다음으로