TL;DR
rcman은 Claude Code와 Codex CLI의 remote-control 세션을 PM2처럼 관리하는 Node 기반 supervisor입니다. 세션별 프로세스와 PID, session ID, 로그, 원격 제어 URL을 추적하고 충돌 시 재시작하며 부팅 뒤에도 복구합니다. daemon이 종료되어도 세션을 살리기 위해 pipe 대신 일반 파일과 FIFO를 사용하고, systemd transient scope와 별도 cgroup으로 supervisor와 agent의 수명을 분리합니다. Claude Code는 정확한 local session ID에 연결할 수 있지만 Codex CLI는 구조상 머신당 한 세션만 지원하며, Node 18.17 이상과 provider CLI 설치가 필요합니다.
실용적 조언
- Claude Code 세션을 특정 대화에 고정하려면 bridge session ID가 아니라 local transcript UUID를 사용하고 `claude --resume --remote-control` 경로를 선택해야 합니다.
- daemon만 재시작하거나 업그레이드할 때는 `rcman daemon --stop` 또는 `systemctl --user restart rcman`을 사용하고, agent까지 종료하려는 경우에만 `rcman stop`을 실행해야 합니다.
- Codex CLI는 provider 구조상 머신당 한 세션만 지원하므로 여러 Codex thread를 동시에 원격 관리하는 용도로는 현재 한계가 있습니다.
- workspace 신뢰 권한은 시작 과정에서 자동 부여되지 않으므로 필요한 디렉터리를 먼저 `rcman trust .`로 등록해야 합니다.
섹션별 상세
용어 해설
- 원격 제어(Remote Control)
- — 서버에서 실행 중인 coding agent를 휴대전화나 브라우저로 조작하는 기능입니다. rcman은 이 연결을 세션 단위로 유지하고, 프로세스 재시작 뒤에도 같은 세션 ID와 로그를 이어 붙이는 관리 계층으로 활용합니다.
- 의사 터미널(PTY)
- — 프로그램이 실제 터미널처럼 입출력을 주고받게 만드는 가상 터미널 장치입니다. Claude Code의 대화형 UI가 pipe에서 실행되지 않는 제약을 우회하기 위해 rcman이 script(1)로 PTY를 할당합니다.
- 세션 인계(Session Adoption)
- — 감독 프로세스가 종료되거나 교체된 뒤 새 감독 프로세스가 기존 작업 프로세스를 찾아 관리권을 넘겨받는 방식입니다. rcman은 PID, 명령행 서명, 출력 캡처 위치를 state.json에 저장해 실행 중인 agent를 중단하지 않고 다시 연결합니다.
- 컨트롤 그룹(cgroup)
- — Linux에서 프로세스를 그룹으로 묶어 종료와 자원 관리를 적용하는 커널 기능입니다. rcman은 세션을 자체 transient scope에 넣고 KillMode=process를 사용해 daemon을 멈출 때 세션까지 함께 종료되는 문제를 피합니다.
- 프로세스 간 통신(IPC)
- — 서로 다른 프로세스가 데이터를 주고받는 통신 방식입니다. rcman CLI는 Unix socket을 통해 daemon에 newline-delimited JSON 요청을 한 번 보내고, 설치된 CLI와 daemon 사이의 버전 차이도 handshake에서 확인합니다.
코드 예제
npm install -g rcman
rcman service installrcman을 전역 설치한 뒤 현재 시스템의 부팅 서비스 관리자에 daemon을 등록합니다.
rcman config set defaultProvider claude
rcman start my-session ~/projects/foo
rcman start my-session
rcman ls
rcman logs my-session -f기본 provider와 작업 디렉터리를 설정하고 세션을 생성하거나 재개한 뒤 상태와 로그를 확인합니다.
{ "sessions": [ { "name": "my-session", "provider": "claude", "sessionId": "d7b1e2a4-9c3f-4f56-b0aa-6e1c2f3d4a5b", "cwd": "~/projects/foo", "enabled": true, "providerOptions": {"resumeMode": "summary"} } ] }패키지 외부의 ecosystem 파일에 세션 이름, provider, 고정 session ID, 작업 디렉터리, 자동 시작 여부와 재개 방식을 선언합니다.
systemctl --user restart rcman
rcman daemon --stop
rcman stop alldaemon만 재시작하거나 중지해 세션을 유지하고, 실제 agent 세션까지 끝낼 때는 rcman stop을 사용합니다.
$ rcman upgrade
rcman 1.0.2 · daemon running 1.0.1
✔ daemon restarted on 1.0.2 (pid 129203)
✔ 8 session(s) carried across untouchednpm 업데이트 뒤 daemon을 새 버전으로 교체하면서 8개 세션을 중단 없이 인계한 결과입니다.
언급된 도구
AI coding-agent remote-control 세션의 프로세스, 부팅 복구, 로그, registry와 provider adapter를 관리합니다.
정확한 local session ID를 `--resume --remote-control`로 재개하는 provider CLI입니다.
머신 단위 app-server daemon을 통해 remote control을 제공하는 provider CLI입니다.
rcman daemon을 부팅 시 시작하고 세션을 별도 transient scope에서 실행하는 서비스 관리자입니다.
rcman의 세션 관리 방식과 비교되는 Node 프로세스 관리자입니다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.