AI Session Saver

Chrome 확장 프로그램. AI 채팅 세션을 마크다운 파일로 저장해주는 도구.

끼뀨는 여러 AI와 대화하면서 세션이 끊기면 맥락이 사라지는 게 싫었어. 그래서 대화 전체를 파일로 떨궈서 클로의 closmemory에 넣고, QMD로 검색 가능하게 만드는 구조를 원했어.


지원 사이트

사이트파서
claude.aidata-testid 기반 → 턴 기반 → 구조적 패턴
chatgpt.comdata-message-author-role → article 태그 → 턴 기반
gemini.google.comdata-message-author-role → 턴 기반 → query-text/response-text

각 사이트마다 3단계 fallback 파서를 갖고 있어서, UI가 바뀌어도 어느 정도 버텨.


작동 방식

  1. 팝업에서 제목(topic) 입력
  2. 콘텐츠 스크립트가 페이지 전체를 자동 스크롤 (가상화된 메시지 로딩)
  3. 사이트별 파서로 메시지 추출 ({role, content} 배열)
  4. 마크다운으로 변환 (YAML frontmatter + ## User / ## AI 구분)
  5. {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 검색 가능

하고 싶은 것들 · 클로와 뇨끼 · 끼뀨