본문으로 건너뛰기

Recall: Claude/Codex 대화 전체 검색 및 재개 — 잊어버린 대화를 찾아서

정석

Recall

“저번에 Claude랑 배포 스크립트 작성했던 대화 어디 갔지?”

Claude Code, Codex, OpenCode — AI 코딩 어시스턴트와의 대화는 점점 쌓여갑니다. 하지만 그중에서 특정 내용을 찾으려면? 스크롤하고 스크롤하고… 또 스크롤해야 합니다.

Recall은 이 문제를 Rust로 풀어냈습니다. 148개 이상의 스타를 받은 이 도구는 전체 텍스트 검색으로 모든 대화를 검색하고, Enter 키 한 번으로 바로 이어서 작업할 수 있습니다. MCP? 필요 없습니다.


문제의식: AI 대화의 검색 가능성

Claude Code를 쓰면서 겪는 흔한 상황들:

지금까지는 파일 시스템을 뒤지거나, 기억에 의존하거나, 포기해야 했습니다. Recall은 이 세 가지를 모두 해결합니다:

  1. 검색 — 모든 대화의 내용을 전체 텍스트로 검색
  2. 재개 — 찾은 대화를 바로 이어서 계속
  3. 단순함 — MCP 설정 없이, 그냥 실행하면 됨

핵심 기능

🔍 전체 텍스트 검색

모든 대화 내용이 인덱싱됩니다. 사용자 메시지, AI 응답, 코드 블록—모든 것이 검색 대상입니다.

실시간 타이핑 검색으로 입력하는 즉시 결과가 나타납니다. 폴더 범위와 전체 범위를 / 키로 전환할 수 있어, 프로젝트별로 검색하거나 모든 대화를 한 번에 뒤질 수 있습니다.

검색어: "deploy staging"
→ 3개 세션 발견
→ 2024-03-11: "kubectl apply -f staging.yaml..."
→ 2024-03-08: "staging 서버 배포 파이프라인..."
→ 2024-02-28: "staging 환경 변수 설정..."

⏯️ 원클릭 대화 재개

검색 결과에서 Enter를 누르면, 해당 대화가 바로 이어집니다. 새 창, 새 컨텍스트가 아니라, 정확히 그 지점에서 다시 시작합니다.

세션 ID를 복사하고 싶다면 Tab 키. CLI에서 직접 claude --resume <session-id> 같은 명령어를 쓸 때 유용합니다.

⌨️ 키보드 중심 인터페이스

모든 조작이 키보드로 이루어집니다:

동작
세션 탐색
Pg↑ Pg↓메시지 스크롤
Ctrl+E메시지 확장 (접힌 코드 펼치기)
Enter대화 재개
Tab세션 ID 복사
/범위 전환 (폴더/전체)
Esc종료

마우스 없이도 모든 것을 처리할 수 있습니다. 개발자가 쓰기에 딱 맞는 인터페이스입니다.


에이전트에게 검색 요청하기

Recall은 MCP 없이도 에이전트와 협업할 수 있습니다. CLI 명령어를 직접 호출하면 됩니다:

recall search --help

에이전트에게 이렇게 요청할 수 있습니다:

“마지막으로 staging 배포한 대화 찾아줘. recall search --help 참고해서.”

에이전트가 Recall CLI를 실행하고, 결과를 분석해서, 관련 세션을 찾아줍니다. MCP 프로토콜 설정, 서버 실행, 포트 관리—이런 것들이 전혀 필요 없습니다.


재개 명령어 커스터마이징

기본적으로 Recall은 각 에이전트의 표준 재개 명령어를 사용합니다. 하지만 환경 변수로 완전히 커스터마이징할 수 있습니다:

# Claude Code — YOLO 모드로 재개
export RECALL_CLAUDE_CMD="claude --dangerously-skip-permissions --resume {id}"

# Codex — 승인 건너뛰기
export RECALL_CODEX_CMD="codex --dangerously-bypass-approvals-and-sandbox resume {id}"

{id} 자리에 세션 ID가 자동으로 들어갑니다. 이렇게 하면 재개할 때마다 권한 확인을 건너뛰고 바로 작업을 이어갈 수 있습니다.


지원 플랫폼

Recall은 주요 AI 코딩 어시스턴트들을 모두 지원합니다:

플랫폼지원
Claude Code✅ 전체 지원
Codex CLI✅ 전체 지원
OpenCode✅ 전체 지원
Factory (Droid)✅ 전체 지원

각 플랫폼의 세션 저장 위치를 자동으로 감지해서, 설정 없이 바로 사용할 수 있습니다.


설치

macOS / Linux (Homebrew)

brew install zippoxer/tap/recall

Windows (WinGet)

winget install zippoxer.recall

Cargo (Rust)

cargo install --git https://github.com/zippoxer/recall

바이너리 다운로드

GitHub Releases에서 플랫폼별 바이너리를 직접 다운로드할 수 있습니다.


사용법

설치 후 터미널에서:

recall

이게 전부입니다. 인터랙티브 TUI가 실행되고, 바로 검색을 시작할 수 있습니다.

첫 실행 시 기존 대화들을 인덱싱하는 데 몇 초가 걸릴 수 있습니다. 이후에는 증분 인덱싱으로 빠르게 동작합니다.


실제 사용 시나리오

시나리오 1: 잊어버린 배포 대화 찾기

상황: 2주 전에 staging 배포하면서 Claude랑 작업했음
문제: 그때 쓴 커맨드가 기억 안 남

해결:
1. recall 실행
2. "staging deploy" 검색
3. 3개 결과 중 하나 선택 → Enter
4. 대화 이어서 "저번에 썼던 커맨드 다시 보여줘"

시나리오 2: 버그 수정 히스토리 추적

상황: 특정 버그를 여러 번 수정했는데, 어떤 접근이었는지 확인 필요

해결:
1. recall 실행
2. "TypeError null" 검색
3. 관련 세션 5개 발견
4. 각 세션을 Tab으로 ID 복사하며 비교
5. 가장 최근 성공한 수정 내용을 찾아 재사용

시나리오 3: 에이전트에게 검색 위임

상황: 대화가 너무 많아서 직접 찾기 어려움

해결:
에이전트에게 요청:
"pls find me the last conversation where we deployed to staging, use `recall search --help`"

에이전트가:
1. recall CLI 실행
2. 결과 분석
3. 가장 관련성 높은 세션 ID 반환
4. 바로 재개하거나 내용 요약

Rust 선택의 이유

Recall이 Rust로 작성된 것은 우연이 아닙니다:

TUI는 Rust 생태계의 강력한 터미널 라이브러리들로 구현되어, 키보드 입력 반응성이 매우 빠릅니다.


아키텍처 개요

Recall의 작동 방식:

1. 세션 디스커버리
   ├── Claude Code: ~/.claude/projects/*/sessions/
   ├── Codex: ~/.codex/sessions/
   ├── OpenCode: ~/.opencode/sessions/
   └── Factory: ~/.factory/sessions/

2. 인덱싱
   ├── JSON 메타데이터 파싱
   ├── 메시지 텍스트 추출
   └── 전체 텍스트 인덱스 구축

3. 검색
   ├── 실시간 쿼리 처리
   ├── 스코어링 및 랭킹
   └── 결과 렌더링

4. 재개
   ├── 세션 ID 추출
   ├── 환경 변수 확인 (커스텀 명령어)
   └── 해당 에이전트 CLI 실행

마치며: 기억의 연속성

AI 코딩 어시스턴트와의 대화는 단순한 채팅이 아닙니다. 코드, 결정, 맥락이 담긴 작업 기록입니다. Recall은 이 기록들을 검색 가능하게 만들고, 언제든 다시 이어서 작업할 수 있게 해줍니다.

148+ 스타, Rust의 성능, MCP 없는 단순함. 설치는 30초, 검색은 즉시.

“저번에 뭐 했더라?” — 이제 Recall이 대답합니다.


🔗 관련 정보

이전
App Store Connect CLI: iOS/macOS 배포를 터미널에서 완전 자동화
다음
cokacdir: AI 기반 자연어 명령어를 지원하는 모던 터미널 파일 매니저