Files
waggle-os/docs/HARVEST-EXPORT-MANUAL.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

293 lines
10 KiB
Markdown

# Harvest Export Manual — All Marko's AI Accounts
**Purpose:** Step-by-step guide to export conversation data from every AI platform for harvest into Waggle.
**Time estimate:** ~30-45 minutes total across all platforms.
**Output:** One folder per platform in `D:\Projects\waggle-os\harvest-imports\`
---
## Prep: Create the import folder
```
mkdir D:\Projects\waggle-os\harvest-imports
mkdir D:\Projects\waggle-os\harvest-imports\chatgpt
mkdir D:\Projects\waggle-os\harvest-imports\claude-web
mkdir D:\Projects\waggle-os\harvest-imports\claude-desktop
mkdir D:\Projects\waggle-os\harvest-imports\claude-code
mkdir D:\Projects\waggle-os\harvest-imports\gemini
mkdir D:\Projects\waggle-os\harvest-imports\perplexity
mkdir D:\Projects\waggle-os\harvest-imports\cursor
```
---
## 1. ChatGPT (chatgpt.com)
**Adapter:** `chatgpt-adapter.ts` (shipped, production-tested)
**Format:** JSON (conversations + memories + custom instructions)
### Steps:
1. Go to https://chatgpt.com
2. Click your profile icon (bottom-left) → **Settings**
3. Click **Data controls**
4. Click **Export data****Export**
5. You'll get an email (usually within 5-30 minutes) with a download link
6. Download the ZIP file
7. Extract it — you'll get a folder with:
- `conversations.json` (this is the main file)
- `user.json` (account info)
- `model_comparisons.json` (optional)
- `message_feedback.json` (optional)
- `chat.html` (visual backup, not needed)
8. Copy `conversations.json` to `D:\Projects\waggle-os\harvest-imports\chatgpt\`
**What gets harvested:** All conversations, custom instructions, memories, message content with timestamps.
---
## 2. Claude Web (claude.ai) — marolinik@gmail.com account
**Adapter:** `claude-adapter.ts` (shipped, production-tested)
**Format:** JSON
### Steps:
1. Go to https://claude.ai
2. Log in with **marolinik@gmail.com**
3. Click your profile icon (bottom-left) → **Settings**
4. Scroll to **Account** section
5. Click **Export Data**
6. Confirm the export
7. You'll get an email with a download link (usually 5-15 minutes)
8. Download the ZIP
9. Extract — look for `conversations.json` or similar JSON files
10. Copy all JSON files to `D:\Projects\waggle-os\harvest-imports\claude-web\gmail\`
### Repeat for marko.markovic@egzakta.com account:
1. Log out of claude.ai
2. Log in with **marko.markovic@egzakta.com**
3. Same steps 3-9 above
4. Copy to `D:\Projects\waggle-os\harvest-imports\claude-web\egzakta\`
---
## 3. Claude Desktop App
**Adapter:** `claude-adapter.ts` (same as web — uses same export format)
**Location:** Desktop app stores conversations locally
### Steps:
1. Open Claude Desktop app
2. Menu → **File****Export conversations** (or Settings → Export)
3. If no export button: the desktop app syncs with claude.ai — your web export (step 2) already includes desktop conversations
4. If there's a separate local database:
- Check `%APPDATA%\Claude\` on Windows
- Look for `.db` or `.json` files
- Copy any conversation data to `D:\Projects\waggle-os\harvest-imports\claude-desktop\`
**Note:** Claude Desktop and claude.ai share the same conversation history. If you already exported from claude.ai, you likely have the desktop conversations too. Check for any offline-only conversations.
---
## 4. Claude Code — ALL sessions, ALL projects, BOTH accounts
**Adapter:** `claude-code-adapter.ts` (shipped, 156 frames already harvested)
**Format:** JSONL session transcripts
### Where Claude Code stores sessions:
Sessions are stored per-project in:
```
C:\Users\MarkoMarkovic\.claude\projects\<project-dir-encoded>\*.jsonl
```
### Steps:
#### A. Gather ALL session files across ALL projects:
1. Open a terminal and run:
```bash
# List all projects with session files
find "C:/Users/MarkoMarkovic/.claude/projects" -name "*.jsonl" -type f > D:/Projects/waggle-os/harvest-imports/claude-code/session-list.txt
# Count total sessions
wc -l D:/Projects/waggle-os/harvest-imports/claude-code/session-list.txt
```
2. Copy all JSONL files (organized by project):
```bash
# This copies every session transcript, preserving project structure
cd "C:/Users/MarkoMarkovic/.claude/projects"
for dir in */; do
if ls "$dir"*.jsonl 1>/dev/null 2>&1; then
mkdir -p "D:/Projects/waggle-os/harvest-imports/claude-code/$dir"
cp "$dir"*.jsonl "D:/Projects/waggle-os/harvest-imports/claude-code/$dir"
fi
done
```
#### B. Key projects to verify are included:
| Project dir | What it is |
|-------------|-----------|
| `D--Projects-waggle-os` | Waggle OS (main project — dozens of sessions) |
| `D--Projects-SocialPresence` | Social presence work |
| `D--Projects-HiveMind` | HiveMind project |
| `D--Projects-MS-Claw*` | MS Claw projects |
| `D--Projects-eF` | eF project |
| `D--Projects-ReFarm` | ReFarm project |
| `D--Projects-TCG` | TCG project |
| `D--Projects-Dubai*` | Dubai offering |
| `D--Projects-Egzakta*` | Egzakta investor pitch |
| `C--Users-MarkoMarkovic*` | Various personal projects |
#### C. Also grab the memory files (per-project learned context):
```bash
# Copy all memory directories too
cd "C:/Users/MarkoMarkovic/.claude/projects"
for dir in */; do
if [ -d "${dir}memory" ]; then
mkdir -p "D:/Projects/waggle-os/harvest-imports/claude-code/${dir}memory"
cp -r "${dir}memory/"* "D:/Projects/waggle-os/harvest-imports/claude-code/${dir}memory/"
fi
done
```
#### D. Both accounts:
Claude Code sessions are stored locally regardless of which account you're logged in with. All sessions from both `marolinik@gmail.com` and `marko.markovic@egzakta.com` are in the same `.claude/projects/` directory. The copy above captures both.
---
## 5. Gemini (gemini.google.com)
**Adapter:** `gemini-adapter.ts` (shipped, needs real-data verification)
**Format:** JSON (via Google Takeout)
### Steps:
1. Go to https://takeout.google.com
2. Click **Deselect all** (top of page)
3. Scroll down and check **ONLY** "Gemini Apps" (formerly Bard)
4. Click **Next step**
5. Choose:
- Delivery: **Send download link via email**
- Frequency: **Export once**
- File type: **ZIP**
- File size: **2 GB** (default is fine)
6. Click **Create export**
7. Wait for email (can take minutes to hours depending on volume)
8. Download the ZIP
9. Extract — navigate to `Takeout/Gemini Apps/`
10. You'll find conversation JSON files
11. Copy all files to `D:\Projects\waggle-os\harvest-imports\gemini\`
---
## 6. Perplexity (perplexity.ai)
**Adapter:** `perplexity-adapter.ts` (shipped in S3, production-tested)
**Format:** JSON (threads with citations)
### Steps:
1. Go to https://perplexity.ai
2. Click your profile icon → **Settings**
3. Scroll to **Account** section
4. Look for **Export data** or **Download your data**
5. If no export button available:
- Go to https://perplexity.ai/settings/account
- Look for a data export option
- If still not available: Perplexity may not have a bulk export yet
6. **Alternative:** Use the Perplexity API to fetch your thread history:
- Check if you have API access at https://perplexity.ai/settings/api
- Threads can be fetched programmatically
7. Copy any exported JSON to `D:\Projects\waggle-os\harvest-imports\perplexity\`
**Note:** If Perplexity doesn't offer bulk export, we can build a browser-based scraper or use the API. Let me know and I'll build it.
---
## 7. Cursor (cursor.sh)
**Adapter:** NOT BUILT YET (I'll build it when you're ready)
**Format:** SQLite database + workspace logs
### Steps:
1. Cursor stores conversations locally in:
- Windows: `%APPDATA%\Cursor\User\`
- Look for: `workspaceStorage/`, `globalStorage/`, or `state.vscdb`
2. Navigate to `C:\Users\MarkoMarkovic\AppData\Roaming\Cursor\User\`
3. Look for:
- Any `.sqlite` or `.db` files
- `workspaceStorage\*\state.vscdb` (per-workspace state)
- `globalStorage\*\` directories with conversation data
4. Copy the entire relevant folder:
```bash
mkdir -p "D:/Projects/waggle-os/harvest-imports/cursor"
cp -r "C:/Users/MarkoMarkovic/AppData/Roaming/Cursor/User/workspaceStorage" "D:/Projects/waggle-os/harvest-imports/cursor/"
cp -r "C:/Users/MarkoMarkovic/AppData/Roaming/Cursor/User/globalStorage" "D:/Projects/waggle-os/harvest-imports/cursor/"
```
**Note:** I'll reverse-engineer the format and build the adapter once you've copied the data.
---
## 8. Microsoft Graph (email + calendar + files) — FUTURE
**Connector:** NOT BUILT YET (OAuth2 + REST API needed)
**What it covers:** Outlook email, Calendar events, OneDrive/SharePoint files
### Prep (for when I build the connector):
1. Go to https://portal.azure.com
2. Navigate to **App registrations****New registration**
3. Name: "Waggle OS Local"
4. Redirect URI: `http://localhost:3333/api/oauth/callback`
5. Supported account types: "Accounts in this organizational directory only"
6. After creation, note:
- **Application (client) ID**
- **Directory (tenant) ID**
7. Go to **Certificates & secrets****New client secret** → copy the value
8. Go to **API permissions** → Add:
- `Mail.Read`
- `Calendars.Read`
- `Files.Read.All`
- `User.Read`
9. **Admin consent** if required by your Egzakta tenant
**I'll build the full OAuth flow + Graph API connector.** Just prep the app registration.
---
## Checklist
| # | Platform | Export method | Where to put it | Done? |
|---|----------|-------------|-----------------|-------|
| 1 | ChatGPT | Settings → Export | `harvest-imports/chatgpt/` | [ ] |
| 2 | Claude Web (gmail) | Settings → Export | `harvest-imports/claude-web/gmail/` | [ ] |
| 3 | Claude Web (egzakta) | Settings → Export | `harvest-imports/claude-web/egzakta/` | [ ] |
| 4 | Claude Desktop | Check if separate from web | `harvest-imports/claude-desktop/` | [ ] |
| 5 | Claude Code (ALL) | Copy ~/.claude/projects/*.jsonl | `harvest-imports/claude-code/` | [ ] |
| 6 | Gemini | Google Takeout → Gemini Apps | `harvest-imports/gemini/` | [ ] |
| 7 | Perplexity | Settings → Export | `harvest-imports/perplexity/` | [ ] |
| 8 | Cursor | Copy AppData/Cursor/ | `harvest-imports/cursor/` | [ ] |
| 9 | MS Graph | Azure App Registration | (prep only — connector not built) | [ ] |
## Keys to add to Waggle vault
| Key | For | How to get |
|-----|-----|-----------|
| `OPENAI_API_KEY` | GPT-5 judge | https://platform.openai.com/api-keys |
| `GOOGLE_API_KEY` | Gemini 2.5 Pro judge | https://aistudio.google.com/apikey |
---
## When you're done
Drop me a message with:
1. "Exports ready" — I'll start the harvest pipeline on everything
2. Which API keys you've added to vault
3. Budget confirmation for the full $2-3K test
I'll continue building while you prep:
- Wire persona denylist (Phase 0)
- Build Cursor adapter
- Fix remaining review majors
- Prep the harvest pipeline for bulk ingest