본문 바로가기
FrostK
테마 색상
로그인

읽는 데 9분Cat

Atuin Threads로 대화를 옮길 때, 지침과 코드 상태는 따로 확인해요

IT AI 개발도구
Atuin Threads로 대화를 옮길 때, 지침과 코드 상태는 따로 확인해요

Claude Code와 나눈 대화를 Codex로 옮기면, 앞서 정한 작업 규칙도 함께 따라갈까요? Atuin Threads는 다른 코딩 에이전트에서 대화를 이어 주지만, 공개 코드에는 원래 실행기가 넣은 시스템 지침과 환경 설명을 버리고 대상의 기본 모델로 재개한다고 적혀 있어요. 옮겨지는 대화와 다시 맞춰야 할 작업 조건이 달라요.

Atuin 팀이 만든 Threads는 Atuin 18.24부터 제공하는 세션 검색·동기화 기능이에요. 여기서 세션은 한 작업을 두고 주고받은 대화와 도구 사용 이력이에요. 공식 문서와 고정 커밋의 변환 코드를 대조해, 다른 도구로 넘길 때 어디까지 이어지는지 살펴봤어요.

화면에서는 무엇을 고르나요?

공식 발표의 첫 데모 영상에는 왼쪽 세션 목록과 오른쪽 대화 미리보기가 나와요. sync로 찾은 세션을 선택하면 원래 도구인 Codex로 재개하거나, 같은 이력의 새 세션을 만들거나, Claude Code·opencode·Pi로 이어가는 선택지가 열려요. 영상에서 선택 표시가 Pi와 opencode로 이동하는 모습도 볼 수 있어요. 제작자가 공개한 화면이며, 작업을 마친 결과까지 보여 주는 장면은 아니에요.

시작점은 atuin resume예요. 수집을 켜지 않았다면 설정을 안내하고, 수집한 세션을 검색해 다시 열 수 있어요. 다른 에이전트로 이어갈 때는 그 에이전트가 해당 컴퓨터에 설치돼 있어야 해요. 세션 수집은 선택 사항이고, 동기화는 종단간 암호화를 사용한다고 공식 발표가 설명해요. 호스팅 서버 대신 자체 서버를 쓰거나 로컬에만 보관할 수도 있어요.

다만 목록의 ‘재개’와 다른 도구로 ‘이어가기’는 동작이 달라요. 같은 도구의 기존 세션을 여는 경우와 달리, 다른 도구로 이어가면 대상 형식의 새 세션을 만들어요. 원래 세션 파일을 그대로 복사하는 방식이 아니에요.

질문과 답변은 이어지고, 시스템 지침은 빠져요

코딩 에이전트는 모델에 대화를 보내고 파일 읽기나 셸 실행을 연결하는 프로그램이에요. 이런 실행기를 하네스라고 불러요. 하네스마다 세션 형식과 도구 이름이 달라서, Threads는 기록을 대상이 읽을 수 있는 모양으로 바꿔요.

고정 커밋의 continuation.rs 설명과 실제 변환 분기를 함께 보면, 전환 전 점검할 항목이 나뉘어요.

항목 다른 하네스로 이어갈 때 전환 전에 할 일
사용자 질문과 에이전트 답변 대화로 가져와요 다음에 할 일과 미완료 항목을 마지막에 남겨요
도구 호출과 결과 입력·결과가 수집된 호출은 옮겨요. 대응 도구가 있으면 대상 도구로 바꿔요 다음 작업에 필요한 도구가 대상에도 있는지 봐요
하네스가 넣은 시스템 지침과 환경 설명 변환 과정에서 제외해요 대상이 읽을 프로젝트 규칙과 지침을 확인해요
원래 모델 이어받지 않고 대상 기본값을 써요 실제 선택된 모델을 확인해요
작업 디렉터리 경로 존재 여부와 체크아웃 이름 등에 따라 정해요 연결된 폴더의 저장소와 코드 상태를 확인해요

실제 코드도 일반 텍스트를 처리할 때 사용자와 assistant 역할만 옮기고, 하네스가 주입한 나머지 역할의 텍스트는 제외해요(690~695행). 새 세션의 모델 필드는 None으로 만들어 원래 모델을 지정하지 않아요(359~370행).

그래서 대화에 직접 쓴 “이 파일은 건드리지 말아 줘”는 사용자 발화로 옮겨질 수 있어요. 반면 원래 하네스가 별도로 넣은 규칙은 이 경로에서 빠져요. 프로젝트 지침 파일이나 연결 도구 설정은 대상 쪽에서 무엇을 읽고 사용할지 따로 점검하는 편이 좋아요.

대화와 수집된 도구 이력은 새 세션으로 옮기고, 시스템 지침·모델·작업 경로와 코드 상태는 대상에서 확인하는 비교
다른 하네스로의 대화 이식과 실제 작업 조건 점검을 나눠 봤어요.

도구 이력에도 조건이 있어요. 대상에 대응 도구가 없으면 과거 기록으로 읽되 같은 도구를 다시 호출할 수는 없어요. 입력이나 결과가 없는 호출, 제공자 서버에서 실행한 일부 도구는 짧은 메모로 바뀌어요. 공식 문서상 이미지도 수집에서 빠지고, 개별 도구 입력·출력은 64 KiB에서 잘려요. 화면을 보고 내린 판단을 이어야 한다면 원본 이미지도 다시 준비해야 해요.

폴더를 찾았어도 같은 코드인지는 확인해요

다른 컴퓨터에서는 프로젝트 경로부터 달라지기 쉬워요. resolve_cwd와 in_checkout는 다음 순서로 재개할 위치를 정해요.

  1. 원래 디렉터리가 이 컴퓨터에도 있으면 그곳을 써요.
  2. 없으면 현재 Git 체크아웃의 폴더 이름과 원래 경로를 대조해요. 같은 이름 뒤의 하위 경로를 연결하고, 조건에 따라 체크아웃 루트를 써요.
  3. 연결할 곳을 찾지 못하면 현재 디렉터리를 써요. 원래 경로를 모를 때도 현재 위치를 써요.

이 함수가 비교하는 것은 경로 구성 요소와 디렉터리 존재 여부예요. 이 경로 선택만으로 원격 저장소나 커밋의 동일성이 보장되지는 않아요. 같은 이름의 폴더라도 다른 저장소일 수 있고, 같은 저장소라도 브랜치나 수정 중인 파일이 다를 수 있죠.

예를 들어 서버에서 수정하던 api 폴더의 세션을 노트북의 api 폴더에 연결했다고 해 볼게요. 이것은 경로 선택 방식에서 도출한 예시예요. 대화에 남은 “테스트를 고쳤다”는 기록을 현재 파일의 상태로 받아들이기 전에, 어느 저장소의 어느 버전인지 확인해야 해요. 변환 코드가 새 세션 앞에 넣는 안내에도 “파일이 바뀌었을 수 있으니 의존하기 전에 확인하라”는 문장이 있어요(146~155행).

전환할 때는 대상의 지침과 모델을 확인하고, 작업 폴더에서 원격 저장소·브랜치·커밋·미커밋 변경을 확인한 뒤 파일을 다시 읽게 해 보세요. 제 생각엔 Threads가 특히 유용한 순간은 다른 에이전트에 조사 과정을 넘길 때예요. 앞서 시도한 방법과 실패 이유는 가져오고, 실제 수정을 시작할 조건은 대상에서 다시 맞추는 식이에요.

확인한 범위

  • 기준일: 2026년 11월 12일이에요.
  • 직접 한 것: 공식 발표와 18.24 문서를 대조하고, 커밋 b2232a88e9e744ce2f628f6fb0d38cf06dca7c75의 세션 변환과 경로 선택 코드를 읽어 전환 점검표를 만들었어요. 공식 데모의 네 프레임에서 세션 검색·미리보기·대상 선택 화면을 확인했어요.
  • 읽은 것: Threads 발표, 18.24 Threads 문서, continuation.rs의 동작 설명과 변환 분기, resumer.rs의 경로 선택 함수예요.
  • 확인하지 못한 것: 실제 하네스 간 전환과 동기화, 대상의 프로젝트 지침 로딩은 실행해 보지 않았어요. 모든 도구의 변환 호환성이나 Git 관련 기능 전체를 조사하지는 않았어요. 코드 분석은 위 고정 커밋 기준이에요.

출처

Atuin Threads: All your agent sessions on every machine
Atuin Threads: one searchable, synced history for every agent session, on every machine Start a task in Claude Code, then resume it in Codex
Threads - Atuin Docs

세션 변환 코드 · 작업 경로 선택 코드