AI Session Saver
Chrome 확장 프로그램. AI 채팅 세션을 마크다운 파일로 저장해주는 도구.
끼뀨는 여러 AI와 대화하면서 세션이 끊기면 맥락이 사라지는 게 싫었어. 그래서 대화 전체를 파일로 떨궈서 클로의 closmemory에 넣고, QMD로 검색 가능하게 만드는 구조를 원했어.
지원 사이트
| 사이트 | 파서 |
|---|---|
| claude.ai | data-testid 기반 → 턴 기반 → 구조적 패턴 |
| chatgpt.com | data-message-author-role → article 태그 → 턴 기반 |
| gemini.google.com | data-message-author-role → 턴 기반 → query-text/response-text |
각 사이트마다 3단계 fallback 파서를 갖고 있어서, UI가 바뀌어도 어느 정도 버텨.
작동 방식
- 팝업에서 제목(topic) 입력
- 콘텐츠 스크립트가 페이지 전체를 자동 스크롤 (가상화된 메시지 로딩)
- 사이트별 파서로 메시지 추출 (
{role, content}배열) - 마크다운으로 변환 (YAML frontmatter +
## User/## AI구분) {ai}-{date}-{topic}.md파일명으로 다운로드
파일 구조
ai-session-saver/
manifest.json # Chrome MV3 매니페스트
popup/
popup.html # 다크 테마 팝업 UI
popup.js # 팝업 로직
content/
main.js # 진입점 (사이트 감지 + 스크롤 + 메시지 수집)
utils.js # 마크다운 변환, 파일명 생성
parsers/
claude.js # claude.ai 파서
chatgpt.js # chatgpt.com 파서
gemini.js # gemini.google.com 파서
icons/ # 16/48/128px 아이콘
세션 파일 관리 규칙
저장된 파일들은 closmemory의 sessions/ 폴더에서 관리:
sessions/
clo/ # 클로 세션 정리본
nyoki/ # 뇨끼 세션 정리본
app/ # 채팅앱 세션
etc/ # 풀대화 원본 보관
- 풀대화:
sessions/etc/에 보관. 파일명{ai}-{date}-{topic}.md - 정리본:
sessions/루트 또는 에이전트 폴더. 파일명{date}-{model}-{topic}.md - 풀대화와 정리본은
[[]]링크로 서로 연결
현재 상태
- v1.0.0 완성, Chrome에서 테스트 완료
- claude.ai, chatgpt.com, gemini.google.com 모두 작동 확인
- 다운로드된 파일을 closmemory에 넣으면 QMD 검색 가능