CTK: 한 곳에서 모든 AI 대화를 관리하세요
Source: Dev.to
Overview
CTK (Conversation Toolkit)는 다중 제공자 AI 대화를 관리하기 위한 강력한 플러그인 기반 시스템입니다. 대화를 가져오고, 저장하고, 검색하고, 통합 트리 형식으로 내보낼 수 있으며, 제공자별 세부 정보를 보존합니다.
여러 AI 어시스턴트를 사용한다면 다음과 같은 문제를 겪었을 가능성이 높습니다:
- ChatGPT 대화는 OpenAI 웹 앱에만 존재합니다
- Claude 대화는 Anthropic 인터페이스에 별도로 저장됩니다
- GitHub Copilot 채팅 기록은 VS Code 저장소에 묻혀 있습니다
- 로컬 LLM(Ollama 등)은 표준 내보내기 형식이 없습니다
결과: 귀중한 대화가 호환되지 않는 여러 플랫폼에 흩어져 있어 검색이 어려우며, 손실 위험이 있습니다.
CTK는 모든 대화를 위한 보편적인 트리 표현을 제공합니다:
User: "What is Python?"
└── Assistant: "Python is a programming language..."
└── User: "How do I install it?"
└── Assistant: "You can install Python by..."
핵심 인사이트: 선형 채팅은 단일 경로 트리이며, 분기된 대화(예: ChatGPT의 “재생성” 기능)는 다중 경로 트리로, 모든 분기 구조를 보존하면서 일관된 인터페이스를 제공합니다.
설정
pip install conversation-tk
여러 공급자에서 가져오기
ctk import chatgpt_export.json --db my_chats.db
ctk import claude_export.json --db my_chats.db --format anthropic
아름다운 테이블을 사용한 검색
ctk search "python async" --db my_chats.db --limit 10
인터랙티브 채팅 – 모든 대화와 대화하기
ctk chat --db my_chats.db
chat 명령은 대화형 인터페이스를 생성하여 다음과 같은 작업을 할 수 있게 합니다:
- 내 기록에 대해 질문하기 – 예: “지난 달에 Claude와 파이썬 데코레이터에 대해 어떤 이야기를 나눴지?”
- 요약 얻기 – 예: “머신러닝에 관한 최근 대화를 요약해 줘.”
- 패턴 찾기 – 예: “ChatGPT 대화에서 가장 자주 등장하는 주제는 뭐야?”
- 작업 수행하기 – 예: “비동기 프로그래밍에 관한 모든 대화에 별표를 달아줘.”
LLM은 전체 대화 데이터베이스에 접근할 수 있으며, 도구 호출을 통해 자연어로 검색, 필터링 및 조작을 수행합니다.
LLM‑Powered Tool Calling
ctk say "show me starred conversations" --db chats.db
ctk say "find discussions about async python" --db chats.db
ctk say "star the last conversation about machine learning" --db chats.db
LLM은 사용자의 명령을 해석하고 적절한 CTK 도구를 호출하여 별표 지정, 태그 지정, 내보내기와 같은 자연어 작업을 가능하게 합니다.
제공자 지원
| 제공자 | 브랜치 지원 |
|---|---|
| ChatGPT | ✅ 전체 트리 (재생성을 보존) |
| Claude | ✅ 전체 트리 |
| GitHub Copilot | 선형 |
| Google Gemini | 부분적 |
| Generic JSONL | 선형 (로컬 LLM용) |
핵심 보장
- 100 % 로컬 – 데이터가 기기를 떠나지 않습니다.
- 분석 및 텔레메트리 없음.
- 선택적 비밀 마스킹을 통해 안전하게 공유할 수 있습니다.
Terminal UI for Visual Management
- Rich 테이블 뷰로 대화를 탐색합니다.
- 상태를 나타내는 이모지 플래그: ⭐ (즐겨찾기) 📌 (고정) 📦 (보관됨).
- 대화 분기를 위한 트리 뷰.
- 대안을 탐색하기 위해 대화를 포크합니다.
- MCP 도구 지원.
Export Formats
JSONL for Training
ctk export training.jsonl --db chats.db --format jsonl
Path Selection for Branching Conversations
ctk export out.jsonl --db chats.db --path-selection longest
CTK는 AI 대화를 장기적으로 보존하도록 설계되었습니다. 플랫폼 변화에도 견딜 수 있는 형식으로 내보내세요:
- HTML5 – 자체 포함형이며 모든 브라우저에서 작동합니다.
- Markdown – 일반 텍스트이며 어디서든 읽을 수 있습니다.
- JSON – 구조화된 데이터이며 수십 년 후에도 쉽게 파싱할 수 있습니다.
저장소 및 문서
- GitHub:
- 전체 문서: 저장소 README를 참조하세요.