AI 코딩 세션을 다른 에이전트로 옮기는 txcript, 대화 중간에 하네스 교체
코딩 에이전트마다 대화 기록이 따로 쌓이는 문제를 겨냥한 오픈소스 도구가 나왔다. GitHub의 skillsynchq/txcript는 한 에이전트에서 진행하던 세션을 다른 에이전트로 넘겨 이어서 진행할 수 있게 해주는 변환 라이브러리 겸 CLI다. 스스로를 "AI 채팅을 위한 Pandoc"이라고 소개하는데, 문서 변환기가 서로 다른 워드프로세서 사이를 메워주듯 에이전트 하네스 사이의 세션 포맷 차이를 흡수하겠다는 구상이다.
지원 대상에는 Claude Code, Codex, OpenCode, Cursor 등이 이름을 올렸다. 예를 들어 Claude Code에서 작업하던 세션을 찾아 Codex로 이어가려면 목록 조회와 이어하기 두 줄이면 된다. `txcript list --from claude_code`로 세션 ID를 확인한 뒤 `txcript continue <session-id> --with codex`를 실행하면, txcript가 대상 에이전트의 네이티브 세션 파일을 새로 만들고 기록된 작업 디렉터리에서 해당 에이전트를 실행한다. 원본 세션은 그대로 남는다.
이전되는 정보는 메시지뿐만이 아니다. 추론 과정, 도구 호출과 그 결과, 이미지, 메타데이터, 토큰 사용량까지 공통 모델로 표현한다. 다만 실제로 살아남는 범위는 원본이 기록한 내용과 대상 에이전트가 표현할 수 있는 능력에 따라 달라진다. 에이전트 고유의 레코드나 대상이 지원하지 않는 필드는 변환 과정에서 사라질 수 있다.
세션을 다루는 부가 기능도 갖췄다. `query`로 로컬 세션 이력을 검색하고, `view`로 터미널에서 대화를 읽고, `crop`으로 이력을 잘라 새 사본을 만들 수 있다. `export`는 세션을 JSON으로 내보내는데, 이 파일을 다른 장비로 옮겨 `txcript continue ./run.json --with claude_code`처럼 이어받는 방식도 지원한다. 프로젝트 파일은 별도로 함께 옮겨야 한다.
개발자용 인터페이스는 세 갈래다. Rust 라이브러리로는 ClaudeCode와 Codex 같은 하네스 타입을 지정해 트랜스크립트를 상호 변환하거나, 각 에이전트의 자체 저장소에서 세션을 탐색·로드·저장하는 Store 구현을 쓸 수 있다. JavaScript 패키지는 Node와 Bun용으로 미리 빌드된 WebAssembly를 포함하며, 세션 텍스트를 메모리에서 변환·검색하고 파일과 저장소 관리는 애플리케이션에 맡긴다. CLI는 macOS, Linux, Windows용 바이너리를 릴리스 페이지에서 받거나 Rust 1.96 이상 환경에서 cargo로 설치한다.
MCP 서버 모드도 있다. `txcript mcp`를 실행하면 MCP 클라이언트가 과거 세션을 목록화하고 검색하고 읽을 수 있는데, 이때 제공되는 도구는 읽기 전용이다.
배경에는 코딩 에이전트 생태계의 파편화가 있다. Claude Code, Codex, Cursor 등은 각자 세션 저장 레이아웃과 레코드 스키마를 독립적으로 발전시켜 왔고, 사용자는 특정 도구에 쌓인 컨텍스트를 다른 도구로 옮기려면 대화를 복사해 붙여넣는 수밖에 없었다. txcript는 이 지점에서 포맷별 매핑과 한계를 문서화하고 공통 트랜스크립트 모델을 중간 계층으로 두는 접근을 택했다. 네이티브 어댑터가 없는 에이전트도 Simple이라는 교환용 JSON 형식으로 참여할 수 있다.
실무에서 주의할 점은 몇 가지다. 변환은 대화 이력만 옮기며, 시스템 지시문과 도구 정의는 대상 에이전트가 자기 것을 새로 공급한다. 따라서 같은 프로젝트 파일이 양쪽 환경에 준비돼 있어야 하고, 대상 에이전트는 미리 설치·로그인된 상태여야 한다. 또한 로컬 탐색은 기본적으로 현재 로그인된 계정의 세션을 건너뛰며, Claude 채팅이나 ChatGPT 세션을 읽으려면 `--from claude_chat`, `--from chatgpt`를 명시해야 한다. 이 두 소스는 비공개 웹 API를 사용하고 기존 앱 로그인을 재사용하므로 요구사항과 제약이 별도 문서로 안내된다. 네이티브 로드·저장과 변환은 정보 보존 보장 수준이 서로 다르므로, 각 포맷의 주의사항을 확인하는 편이 안전하다.
관련 글
- 장시간 Claude Code 에이전트, '참모장' 패턴으로 컨텍스트 한계 넘는다장시간 자율 코딩에서 단일 Claude Code 세션은 한 시간을 넘기면 컨텍스트 압축과 자기 보고 오류로 무너진다. 조정 세션과 실행 세션을 분리하고 상태를 외부 영속 보드에 두는 '참모장(Chief of Staff)' 패턴이 그 대안으로 제시됐다. 핵심은 에이전트의 보고를 지시가 아닌 증거로 취급하고 명령을 재실행해 검증하는 것이다.
- Runner 0.11 공개, pi 통합하고 MCP 서버 대신 CLI로 에이전트를 제어한다여러 코딩 에이전트를 하나의 미션에서 협업시키는 도구 Runner가 0.11 버전을 공개했다. pi를 새로 통합하고, 자체 MCP 서버를 걷어내는 대신 runner 명령줄 도구로 모든 조작을 통일했다.
- Claude Code, CLAUDE.md 없으면 AGENTS.md를 프로젝트 지침으로 읽는다Claude Code가 프로젝트에 CLAUDE.md가 없으면 AGENTS.md를 지침 파일로 대신 읽는다. 여러 코딩 에이전트가 같은 규약을 공유할 수 있게 됐지만 Bedrock·Vertex·Foundry 환경에서는 아직 지원되지 않는다.
- tmux 상태줄에 AI 에이전트 작업 상태를 직접 표시하기tmux 상태줄에서 여러 AI 에이전트 세션의 작업·대기·유휴 상태를 한눈에 구분하는 방법을 다룬다. pane_title과 pane_current_command가 왜 신뢰할 수 없는지, 프로세스 트리와 화면 스크래핑으로 상태를 분류하는 폴러 스크립트를 정리한다.
- AI 코딩 에이전트·칸반·코드 리뷰를 한 창에 묶은 macOS 워크스페이스 'Orchestrator' 베타 공개MIT 라이선스로 공개된 macOS 데스크톱 워크스페이스 Orchestrator가 0.2.0-beta.2 베타를 배포했다. 코딩 에이전트 대화, 저장소 파일 탐색, 칸반 보드, 로컬 코드 리뷰를 한 창에 묶은 것이 특징이다.