9P by hanityx 2일전 | ★ favorite | 댓글 5개

안녕하세요. 여러 AI 도구를 같이 쓰면서 불편했던 부분을 풀어보려고 ThreadLens라는 오픈소스 도구를 만들고 있습니다.

처음 계기는 Codex 스레드 정리였습니다. UI에서는 archive만 되고, 정말 지우려면 로컬 파일을 직접 찾아야 하는 상황이 있었거든요. 나중에 보니 openai/codex에도 "archive 말고 delete가 필요하다"는 비슷한 요청이 올라와 있어서, 저만 겪는 불편은 아니겠다고 생각했습니다.

그 뒤로 Codex, Claude같은 여러 AI를 번갈아 쓰다 보니 또 다른 문제가 생겼습니다. "그때 AI랑 나눈 대화가 어디 있지?" 하고 각 도구의 숨김 폴더를 뒤지거나 rg로 transcript를 찾는 일이 자주 생겼고, 로컬 세션 로그도 계속 쌓여서 용량 정리와 외장 백업을 매번 직접 챙기기 번거롭더라고요.

이런 흐름을 한곳에서 처리하려고 합니다.

  • Codex, Claude, Gemini, Copilot의 로컬 세션을 한곳에서 검색하기
  • 세션별 transcript, 작업 경로, 파일 크기, 수정 시각을 한 화면에서 보기
  • 묶음 백업과 영향 분석을 거쳐 정리하기 (영향 분석은 아직 Codex 중심)
  • provider별 세션 구조가 어디서 어떻게 읽히는지 routing/parser로 확인하기

Local-First로 계정이나 클라우드 업로드는 없습니다. 이미 내 컴퓨터에 있는 세션 파일을 읽어서 로컬 API, 웹 UI, 데스크톱 앱, TUI에서 보여주는 구조입니다.

만들다 보니 단순히 "삭제 버튼"만 있는 건 별로라고 느꼈습니다. 특히 Codex 스레드는 지우기 전에 "이걸 지워도 괜찮은가?"를 먼저 보고 싶었습니다. 그래서 영향 분석은 OpenAI/Claude 쪽 문서와 실제 이슈에서 참고할 수 있는 신호를 가져오고, 점수 가중치는 제품 안에서 보수적으로 잡았습니다.

긴 context, tool-heavy history, cwd 유무, 오래된 세션뿐 아니라, 다른 세션이 이 스레드를 부모/자식/포크 관계로 직접 참조하는지나 로그 안에서 언급하는지도 같이 봅니다. 그래서 삭제 전에 고아 후보인지, 다른 세션과 이어져 있는지, 지워도 괜찮아 보이는지 먼저 확인할 수 있게 했습니다.

현재는 macOS DMG, Windows exe, Linux AppImage를 올려두었고, 소스로도 실행할 수 있습니다.
아직 데스크톱 빌드는 unsigned라 OS 경고가 뜰 수 있습니다. Provider별 탐색 로직과 전반적인 UX는 계속 보완 중입니다.

피드백이나 기여 응원 모두 환영합니다!! 다른 로컬 AI 세션 포맷을 쓰고 있다면 그것도 알려주세요. 우선순위를 잡는 데 도움이 될 것 같습니다:)

GitHub: https://github.com/hanityx/threadlens

최고에요! 지금 정말 필요하던거였습니다!!

댓글까지.. 제가 더 감사해요! UI에서 한국어도 됩니다 i18 기반 다국어입니다. 앞으로 더 열심히 깎아보겠습니다!

@hanityx 혹시 다른 provider를 추가할 수 있는 가이드를 만들어주실 수 있을까요? (opencode나 다른걸 더 넣어보고싶은데) docs/PROVIDER_SUPPORT.md 의 정보는 직접 취합하신건가요? apps/api-ts/src/domains/providers/matrix.ts 에는 직접 추가를 해야하나요? 인터페이스를 분리한다면 조금 더 편해질 것 같아서요.

matrix.ts만 추가하면 새 provider가 붙는 구조는 아니고, provider 목록, 경로 안전성, 세션 찾기, transcript/search 처리, actions, health, 테스트, 문서 생성을 같이 맞춰야 합니다.

docs/PROVIDER_SUPPORT.md는 직접 수정하는 문서가 아니라 shared contracts의 provider registry와 문서 생성 스크립트 기준으로 자동 생성됩니다. provider별 지원 범위와 실제 로직과 어긋나지 않게 하려는 목적입니다.

안 그래도 API 쪽 search/transcript 로직이 꽤 커져서 분리/정리 작업을 보고 있었는데, 이번에 provider를 추가하기 쉽게 내부 adapter 및 가이드까지 같이 정리하고 OpenCode도 안전하게 read-only 지원부터 검토해볼게요. 로컬 세션 경로나 샘플 및 관련 정보를 이슈로 남겨주시면 계속 이어서 보겠습니다!

분리만 해주시면, CONTRIBUTING.md와 가이드에 따라 제가 opencode를 올려보겠습니다.