Skip to content

akshayvkt/aiwrapped

Repository files navigation

AI Wrapped

Generate a "Spotify Wrapped"-style summary of your Claude and ChatGPT conversation history.

Live site: aiwrapped.co

Privacy First

Your full conversations stay on your device.

  • Your ZIP file is parsed entirely client-side using JavaScript
  • Conversation content is never uploaded to any server
  • The only data stored (for sharing) is the aggregated stats you see on the cards
  • Persona generation sends session titles and the first 3 messages from a small sample of conversations to the Claude API

This repo is open-source so you can verify these claims yourself. Key files to review:

  • lib/parseClaudeExport.ts - Claude export parsing (runs in browser)
  • lib/parseChatGPTExport.ts - ChatGPT export parsing (runs in browser)
  • lib/calculateStats.ts - Statistics computation (runs in browser)
  • app/api/persona/route.ts - What gets sent to Claude API for persona generation

Features

  • Upload your Claude or ChatGPT data export
  • See animated cards with your AI usage stats:
    • Total conversations and messages
    • Time span of your AI journey
    • Peak usage hours and days
    • Longest conversations
    • Your AI persona (generated by Claude)
  • Share your wrap with a unique link
  • Download individual cards as images

Run Locally

# Clone the repo
git clone https://github.com/akshayvkt/aiwrapped.git
cd aiwrapped

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your values

# Run development server
npm run dev

Open http://localhost:3000 in your browser.

Environment Variables

Create a .env.local file with these variables:

# Anthropic API (required for persona generation)
ANTHROPIC_API_KEY=your_anthropic_api_key

# Supabase (required for sharing feature)
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key

# Mixpanel (optional - for analytics)
NEXT_PUBLIC_MIXPANEL_TOKEN=your_mixpanel_token

# Base URL (for share links)
NEXT_PUBLIC_BASE_URL=http://localhost:3000

Getting the keys

Tech Stack

  • Framework: Next.js 15 (App Router) + React 19
  • Styling: Tailwind CSS 4 + Framer Motion
  • Database: Supabase (PostgreSQL)
  • AI: Anthropic Claude API
  • Analytics: Mixpanel

How to Get Your Data Export

Claude

  1. Go to claude.ai/settings
  2. Scroll to "Export Data"
  3. Click "Export" and wait for the email
  4. Download the ZIP file

ChatGPT

  1. Go to chat.openai.com
  2. Settings → Data Controls → Export Data
  3. Click "Export" and wait for the email
  4. Download the ZIP file

License

MIT License - see LICENSE for details.


Built by Dysun Inc

About

Your journey with ChatGPT and Claude, visualized.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages