- Support __Secure-next-auth.session-token.0/.1 split cookies; ChatGPT now issues tokens that exceed the 4KB per-cookie limit and must be sent as two named chunks or the auth endpoint returns no accessToken. Add CHATGPT_SESSION_TOKEN_1 env var; update auth wizard instructions. - Fix Claude conversations exported to wrong directory when project name is present in the listing but absent from the detail endpoint response. Explicitly propagate "project" alongside _-prefixed annotation keys. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
58 lines
2.5 KiB
Plaintext
58 lines
2.5 KiB
Plaintext
# ============================================================
|
|
# AI Chat Exporter — Configuration
|
|
# ============================================================
|
|
# Copy this file to .env and fill in your values.
|
|
# NEVER commit .env to git. It contains secrets.
|
|
|
|
# --- ChatGPT ---
|
|
# How to get: open chatgpt.com in Chrome → F12 → Application tab
|
|
# → Cookies → https://chatgpt.com → find the two cookie chunks:
|
|
# __Secure-next-auth.session-token.0 (starts with "eyJ") → CHATGPT_SESSION_TOKEN
|
|
# __Secure-next-auth.session-token.1 (the remainder) → CHATGPT_SESSION_TOKEN_1
|
|
# Token type: JWE. Typically valid for ~7 days.
|
|
CHATGPT_SESSION_TOKEN=
|
|
CHATGPT_SESSION_TOKEN_1=
|
|
|
|
# ChatGPT Projects (optional): comma-separated list of project gizmo IDs.
|
|
# Project conversations are NOT included in the default /conversations listing.
|
|
# How to find: open chatgpt.com → click a Project → look at the browser URL:
|
|
# https://chatgpt.com/g/g-p-<ID>-<slug>/project → copy "g-p-<ID>"
|
|
# Example: CHATGPT_PROJECT_IDS=g-p-68c2b2b3037c8191890036fb4ae3ed9f,g-p-anotherproject
|
|
CHATGPT_PROJECT_IDS=
|
|
|
|
# --- Claude ---
|
|
# How to get: open claude.ai in Chrome → F12 → Application tab
|
|
# → Cookies → https://claude.ai → find "sessionKey" → copy Value
|
|
# Token type: opaque string. Typically valid for ~30 days.
|
|
CLAUDE_SESSION_KEY=
|
|
|
|
# --- Output ---
|
|
# Where exported Markdown files are written (default: ./exports)
|
|
EXPORT_DIR=./exports
|
|
|
|
# Output folder structure. Options:
|
|
# provider/project/year (default) → exports/claude/my-project/2024/file.md
|
|
# provider/project → exports/claude/my-project/file.md
|
|
# provider/year → exports/claude/2024/file.md (ignores projects)
|
|
OUTPUT_STRUCTURE=provider/project/year
|
|
|
|
# --- Joplin ---
|
|
# Automate importing exported conversations into Joplin as notes.
|
|
# Requires Joplin desktop running with the Web Clipper service enabled.
|
|
# How to get the token:
|
|
# Joplin → Tools → Options → Web Clipper → copy "Authorization token"
|
|
JOPLIN_API_TOKEN=
|
|
# API URL (default port is 41184; change only if you've customised it)
|
|
JOPLIN_API_URL=http://localhost:41184
|
|
# Request timeout in seconds (default: 30). Increase if Joplin times out on
|
|
# large conversations. Example: JOPLIN_REQUEST_TIMEOUT=60
|
|
# JOPLIN_REQUEST_TIMEOUT=30
|
|
|
|
# --- Cache ---
|
|
# Where the sync manifest is stored (default: ./cache, inside the install directory)
|
|
CACHE_DIR=./cache
|
|
|
|
# --- Logging ---
|
|
# Log file path. Set to "none" to disable file logging.
|
|
LOG_FILE=./cache/logs/exporter.log
|