
“저번에 Claude랑 배포 스크립트 작성했던 대화 어디 갔지?”
Claude Code, Codex, OpenCode — AI 코딩 어시스턴트와의 대화는 점점 쌓여갑니다. 하지만 그중에서 특정 내용을 찾으려면? 스크롤하고 스크롤하고… 또 스크롤해야 합니다.
Recall은 이 문제를 Rust로 풀어냈습니다. 148개 이상의 스타를 받은 이 도구는 전체 텍스트 검색으로 모든 대화를 검색하고, Enter 키 한 번으로 바로 이어서 작업할 수 있습니다. MCP? 필요 없습니다.
문제의식: AI 대화의 검색 가능성
Claude Code를 쓰면서 겪는 흔한 상황들:
- “어제 작업한 API 엔드포인트 대화가 어디 있더라…”
- “저번 주에 쿠버네티스 설정 논의했던 세션 찾아야 하는데…”
- “버그 수정하면서 Claude랑 나눴던 대화 다시 보고 싶어…”
지금까지는 파일 시스템을 뒤지거나, 기억에 의존하거나, 포기해야 했습니다. Recall은 이 세 가지를 모두 해결합니다:
- 검색 — 모든 대화의 내용을 전체 텍스트로 검색
- 재개 — 찾은 대화를 바로 이어서 계속
- 단순함 — 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로 작성된 것은 우연이 아닙니다:
- 속도: 수천 개의 대화 파일을 인덱싱해도 빠름
- 안전성: 메모리 안전성으로 파일 시스템 접근 시 문제 최소화
- 크로스 플랫폼: macOS, Linux, Windows 모두 네이티브 바이너리로 배포
- 단일 바이너리: 런타임 의존성 없이 바로 실행
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이 대답합니다.
🔗 관련 정보
- GitHub: https://github.com/zippoxer/recall
- 개발자: zippoxer
- 언어: Rust
- 지원 플랫폼: Claude Code, Codex CLI, OpenCode, Factory (Droid)
- 설치: Homebrew, WinGet, Cargo, Binary