A Go-based system for importing, organizing, and analyzing ChatGPT conversation exports. Processes ZIP exports, extracts conversations by date, and generates 9-dimensional psychological/behavioral analyses with optional AI enhancement.
- 9-Dimensional Analysis Framework - Comprehensive analysis across meaning, signals, shadows, lies, truths, questionable truths, actionable items, doubts, and topics of interest
- Date-based Organization - Messages and analyses organized by date (YYYY-MM-DD)
- Seen Status Tracking - Database-backed tracking of viewed analysis pages
- Optional AI Enhancement - OpenAI/Anthropic integration for enhanced analyses
- Aggregated Analysis - Actionables, questions, cross-file patterns, and synthesis
- RESTful API - Full REST API for all operations
- Go 1.21 or higher
- SQLite (included with Go SQLite driver)
- Disk space for data storage (configurable)
- Clone the repository:
git clone <repository-url>
cd chatgpt-autopsy-go- Install dependencies:
go mod download- Configure environment variables (optional):
cp .env.example .env
# Edit .env with your configurationConfiguration is done via environment variables with the prefix CHATGPT_AUTOPSY_:
CHATGPT_AUTOPSY_PORT- Server port (default: 8080)CHATGPT_AUTOPSY_HOST- Server host (default: 0.0.0.0)
CHATGPT_AUTOPSY_DB_PATH- Database file path (default: data/chatgpt_autopsy.db)
CHATGPT_AUTOPSY_MAX_FILE_SIZE- Maximum upload file size in bytes (default: 500MB)CHATGPT_AUTOPSY_MAX_EXTRACTION_SIZE- Maximum extraction size (default: 2GB)
OPENAI_API_KEY- OpenAI API keyANTHROPIC_API_KEY- Anthropic API keyCHATGPT_AUTOPSY_AI_ENHANCEMENT_ENABLED- Enable AI enhancement (default: false)
See .env.example for all available configuration options.
go run cmd/server/main.goThe server will start on http://localhost:8080 by default.
POST /api/v1/upload- Upload ChatGPT export ZIP fileGET /api/v1/uploads- List all uploadsGET /api/v1/uploads/:id- Get upload detailsDELETE /api/v1/uploads/:id- Delete upload
GET /api/v1/conversations- List conversationsGET /api/v1/conversations/:id- Get conversation with messages
GET /api/v1/dates- List all analysis datesGET /api/v1/analysis/:date/:type- Get analysis for a date and type
GET /api/v1/health- Health checkGET /api/v1/ready- Readiness check
# Upload a ChatGPT export ZIP file
curl -X POST http://localhost:8080/api/v1/upload \
-F "file=@chatgpt_export.zip"
# List uploads
curl http://localhost:8080/api/v1/uploads
# Get analysis dates
curl http://localhost:8080/api/v1/dates
# Get analysis for a specific date
curl http://localhost:8080/api/v1/analysis/2024-01-15/meaningchatgpt-autopsy-go/
├── cmd/server/ # Application entry point
├── internal/
│ ├── api/ # HTTP handlers, routes, middleware
│ ├── models/ # Database models
│ ├── database/ # Database connection and migrations
│ ├── services/ # Business logic
│ └── config/ # Configuration management
├── data/ # Data storage (uploads, extracted files, analysis)
└── web/ # Web frontend (optional)
- Upload - User uploads ChatGPT export ZIP file
- Extract - ZIP file is extracted with security validation
- Parse - ChatGPT JSON is parsed, conversations and messages extracted
- Thread - Messages are grouped by date into threads
- Analyze - 9-dimensional analyses are generated per date
- Extract - Actionables and questions are extracted
- Cross-Analyze - Patterns across dates are analyzed
- Synthesize - Comprehensive synthesis is generated
go test ./...go build -o bin/server cmd/server/main.go- SQLite database (single writer limitation)
- Local file storage only
- No authentication in initial version
- Polling required for status updates (no WebSocket)
[Your License Here]
For issues and questions, please open an issue on GitHub.