AI 코딩 세션을 다른 에이전트로 옮기는 txcript, 대화 중간에 하네스 교체

Lobsters24일 전조회 5

코딩 에이전트마다 대화 기록이 따로 쌓이는 문제를 겨냥한 오픈소스 도구가 나왔다. 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를 사용하고 기존 앱 로그인을 재사용하므로 요구사항과 제약이 별도 문서로 안내된다. 네이티브 로드·저장과 변환은 정보 보존 보장 수준이 서로 다르므로, 각 포맷의 주의사항을 확인하는 편이 안전하다.

관련 글