Nexus AI Chat Importer

by Superkikim
5
4
3
2
1
Score: 56/100

Description

The Nexus AI Chat Importer plugin allows users to seamlessly import ChatGPT conversation export files into Obsidian. It organizes conversations into Markdown files, sorted by date, and updates existing files with new messages. The plugin provides detailed import reports, tracks imported conversations, and supports resetting the import catalog for reprocessing data. Additional features include direct linking to the original conversations in the ChatGPT web app. This tool is ideal for maintaining an organized and searchable record of AI interactions within Obsidian.

Reviews

No reviews yet.

Stats

162
stars
8,988
downloads
21
forks
595
days
4
days
4
days
5
total PRs
0
open PRs
3
closed PRs
2
merged PRs
49
total issues
14
open issues
35
closed issues
128
commits

Latest Version

4 days ago

Changelog

Version 1.6.2 — Perplexity Thread Exporter Compatibility Patch

Version Patch

✨ Improved

  • Perplexity Thread Exporter dual-schema support:
    • metadata + conversations[]
    • status + entries + thread_metadata
  • Shared Perplexity normalization path for both full import and selective metadata extraction.
  • Improved conversation ID stability (context_uuid first) to reduce duplicate-note risk across schema variants.
  • Better nested ZIP guidance when an outer archive only contains inner part*.zip files.

🐛 Fixed

  • Perplexity entries[] exports no longer produce false "no importable conversations" outcomes.

📝 Notes

  • ZIP import remains required (direct JSON import is still not supported).
  • This patch keeps existing behavior unchanged for ChatGPT, Claude, Le Chat, and Gemini.

README file from

Github

Nexus AI Chat Importer

Obsidian GitHub release (latest by date) Downloads License

🌍 Plugin UI and documentation now available in 10 languages

EN DE ES FR IT JA KO PT RU ZH

v1.6.2 improves Perplexity Thread Exporter compatibility: both schema variants are supported (metadata + conversations[] and status + entries + thread_metadata), with explicit guidance for outer ZIP files that contain inner part*.zip archives. See What’s New for details.

📑 Table of Contents

🚀 Getting Started

💡 Using the Plugin

🔧 Advanced

📚 More


⚡ Quickstart

Get started in 2 minutes:

  1. Install the plugin from Obsidian Community Plugins (search "Nexus AI Chat Importer")
  2. Export your chats:
    • ChatGPT: Settings → Data controls → Export data → Download ZIP
    • Claude: Settings → Privacy → Export data → Download ZIP
    • Le Chat: Click your name → Profile → Le Chat: Export → Download
    • Perplexity: Export via Perplexity Thread Exporter (ZIP with perplexity_*.json)
  3. Import: Click the ribbon icon (chat +) in the left sidebar or use command palette → "Import AI conversations"
  4. Select your ZIP file(s) and import mode (all or selective)
  5. Provider is auto-detected from the first supported archive in your selection
  6. Done! Your conversations are now in Nexus/Conversations/

💡 First time? The plugin will show you a welcome dialog with helpful links!


Overview

Import and organize AI chat exports from ChatGPT, Claude, Mistral Le Chat, Perplexity, and more in your local Obsidian vault, so you stay in control of your data.

🔍 Features in a Glance

  • Multi-provider support (ChatGPT, Claude, Le Chat, Perplexity)
  • Selective import with interactive preview
  • Smart deduplication across multiple ZIPs
  • Attachment handling — images, documents, DALL-E, artifacts (provider-dependent)
  • Claude artifact versioning
  • LaTeX math support
  • CLI for automation and headless setups
  • Beautiful formatting with role-specific callouts
  • Detailed import reports
  • Full UI localization in 10 languages

✨ What's New

v1.6.2 — Perplexity Compatibility Patch

New

  • Perplexity Thread Exporter dual-schema support:
    • metadata + conversations[]
    • status + entries + thread_metadata
  • Better nested ZIP guidance when an outer archive only contains inner part*.zip files

🔧 Improved

  • Perplexity conversation IDs are now normalized more reliably (context_uuid first) to avoid duplicate notes across schema variants
  • Selective import metadata extraction now uses the same Perplexity normalization path as full import
  • Archive validation messages for provider mismatch / unsupported format are now centralized for consistency
v1.6.0 — Perplexity + Universal Metadata

New

  • Perplexity provider support (Perplexity Thread Exporter ZIP archives)
  • Per-turn model-aware assistant headers (Assistant · <model>)
  • Universal frontmatter metadata keys:
    • mode (when provider exposes stable mode)
    • models (deduplicated list)

🔧 Improved

  • Perplexity answer Markdown is preserved as-is
  • Related queries can be appended at the end of imported notes
  • Provider auto-detection now recognizes Perplexity archives (perplexity_*.json)
v1.5.x — Highlights

New

  • Full UI localization in 10 languages — automatic, matches your Obsidian language setting
  • Upgrade flow now surfaces current release notes directly inside the plugin

🔧 Improved

  • Le Chat generated images now show a proper "not included in export" callout
  • Missing attachment callouts simplified to a single clean line
  • Support links and branding updated throughout
  • Provider is auto-detected from the first supported selected archive
  • Mixed-provider selections are handled cleanly (unsupported provider files are ignored)
  • Mobile now runs imports in single-archive mode for better runtime stability
  • Desktop and mobile now follow the same ZIP-reading model: scan first, then read only what is needed
  • Import logs now identify the exact phase reached during ZIP scan, metadata extraction, attachment indexing, and streaming import
  • Reports are now split into summary + heavy index + mobile index for better readability

🐛 Bug Fixes

  • ChatGPT numbered exports (conversations-XXX.json) are recognised correctly
  • ChatGPT user-uploaded image extraction restored for multi-ZIP imports
  • Claude export format changes handled correctly
  • Missing message updates in Claude imports are now handled correctly
  • Unsupported ZIP files are classified earlier and skipped with clearer messaging
  • Large archive handling no longer relies on loading the whole ZIP into memory
  • CLI now uses the desktop ZIP backend reliably in Node.js and writes correct plugin version metadata

Upgrading from a previous version triggers required migration tasks automatically.

For full release history, see RELEASE_NOTES.md

☕ Support My Work

Nexus has reached 9,000+ downloads. Right now, only about 5 users per month donate to support development.

I maintain this plugin in my own time, and keeping my dev ecosystem running has ongoing costs. Adding new providers also requires paid subscriptions so I can test and deliver accurate support.

If Nexus is valuable to you, please consider a one-time or monthly donation. Thank you to everyone already supporting the project.

Support my work

Why support?

  • 🚀 Faster development - More time for features and improvements
  • 🐛 Better support - Quicker bug fixes and responses
  • 💡 New features - Your suggestions become reality
  • ❤️ Motivation - Shows that my work is appreciated

✨ Key Features

  • 🎯 Selective Import: Choose exactly which conversations to import with interactive preview
  • 💬 Multi-Provider Support: Full support for ChatGPT, Claude, Le Chat, and Perplexity conversations
  • 🎨 Beautiful Formatting: Custom callouts with role-specific colors and icons
  • 📎 Complete Attachment Handling: Images, documents, DALL-E creations with prompts
  • 🎨 Claude Artifact Versioning: Separate files for each artifact modification
  • 📊 Detailed Reports: Comprehensive import statistics with per-file breakdown
  • 🗂️ Flexible Organization: Separate folders for conversations, attachments, and reports
  • 🌍 International Support: ISO 8601 timestamps, works with all locales
  • ⏱️ Progress Tracking: Real-time feedback during large imports
  • 🔄 Smart Deduplication: Handles multiple ZIP files without creating duplicates

📸 See It In Action

💡 Tip: Screenshots coming soon! For now, try the plugin yourself - it's free and takes 2 minutes to set up.

📥 Installation & Settings

Installation Methods

From Obsidian Community Plugins (Recommended):

  1. Open SettingsCommunity Plugins
  2. Click Browse and search for "Nexus AI Chat Importer"
  3. Click Install, then Enable

Manual Installation:

  1. Download the latest release from GitHub Releases
  2. Extract files to .obsidian/plugins/nexus-ai-chat-importer/
  3. Reload Obsidian and enable the plugin

First-Time Setup

After installing the plugin:

  1. Open SettingsCommunity PluginsNexus AI Chat Importer
  2. Configure your folders (or keep the defaults):
    • Conversations: Where your chat notes will be saved
    • Attachments: Where images and files will be stored
    • Reports: Where import summaries will be created
  3. Configure filename options:
    • Add Date Prefix: Enable to add dates to conversation filenames (e.g., 2024-01-15 - My Chat.md)
    • Date Format: Choose between YYYY-MM-DD (2024-01-15) or YYYYMMDD (20240115)
  4. Choose message timestamp format:
    • Custom date format If Obsidian Locale is not providing the format you want (i.e. english provides US format MM/DD/YYYY), select the format you prefer. The plugin will apply it to messages in conversations while importing

Upgrading from Previous Versions

Good news: The plugin handles everything automatically!

When you upgrade to a new version:

  • ✅ Your settings are migrated to the new format
  • ✅ Your existing conversations are updated with new features
  • ✅ Folders are reorganized if needed (with your permission)
  • ✅ A detailed upgrade report shows you what changed

No manual work required - just install and go!

Plugin Settings

📁 Folder Organization

Choose where your files are stored:

  • Conversations Folder: Your chat notes (default: Nexus/Conversations)
  • Attachments Folder: Images, files, and Claude artifacts (default: Nexus/Attachments)
  • Reports Folder: Import summaries (default: Nexus/Reports)

💡 Tip: You can organize these folders however you like! Put them all together, or spread them across your vault.

🎨 Display Options

Customize how your conversations look:

  • Date Prefix: Add dates to filenames

    • ✅ Enabled: 2024-01-15 - My Conversation.md
    • ❌ Disabled: My Conversation.md
  • Date Format: Choose your style

    • With dashes: 2024-01-15
    • Without: 20240115
  • Message Timestamps: Choose how dates appear in messages

    • Auto (default): Matches your Obsidian language
    • Custom: Pick from ISO 8601, US, European, German, or Japanese
🔄 Moving Your Files

Want to reorganize? No problem!

  1. Change a folder path in settings
  2. Click Save
  3. Choose what to do:
    • Move files: Existing files are moved/merged to the new location
      • For conversation/attachment folder moves, links are updated after migration
    • Leave files: They stay put (but won't be managed by the plugin anymore)

💡 Pro tip: The plugin uses move+merge (not blind overwrite). If the target folder is not empty, migration is blocked to prevent conflicts.

📤 Importing Conversations

Step 1: Get Your Export

ChatGPT:

  1. Open ChatGPT → SettingsData ControlsExport data
  2. Check your email (arrives in a few minutes)
  3. Download the ZIP file

Claude:

  1. Open Claude → SettingsPrivacyExport data
  2. Check your email (arrives in a few minutes)
  3. Download the ZIP file

Le Chat:

  1. Click your name → ProfileLe Chat: Export
  2. Wait for the button to change from "Export" to "Download"
  3. Click Download to get the ZIP file

Perplexity:

  1. Install Perplexity Thread Exporter from the Chrome Web Store: https://chromewebstore.google.com/detail/perplexity-thread-exporte/cnfolggfjfikolipcldcnbbbbbfogegj
  2. Open Perplexity and go to a thread (or your Library): https://www.perplexity.ai/library
  3. Click the extension icon and export your threads
  4. Download the export ZIP that contains perplexity_*.json files
  5. If your download is an outer ZIP that contains part ZIP files (part1of3.zip, etc.), extract that outer ZIP first and import the inner part ZIP files directly
  6. Import ZIP files in the plugin (direct JSON import is not supported)

⚠️ Important (third-party extension disclaimer) Perplexity export support in this plugin currently relies on the third-party Chrome extension Perplexity Thread Exporter (MMV Inc). This extension is not maintained by the plugin author and is outside this project's control. If extension behavior, pricing, limits, output format, or availability changes, imports may be affected and may require plugin updates.

Step 2: Import to Obsidian

Two ways to start:

  • Click the ribbon icon (chat +) in the left sidebar, OR
  • Press Ctrl/Cmd+P → type "Import AI conversations"

Provider Detection Rules (v1.6.x)

  • The plugin auto-detects the provider from the first supported ZIP in your selection
  • Files that don't match that provider are ignored and reported as skipped
  • Unsupported archives are ignored with a clear message instead of breaking the import flow
  • Desktop supports multiple ZIPs in one run (single provider per run)
  • Mobile runs one ZIP per import for reliability

Step 3: Choose Your Import Style

🚀 Quick Import (Import Everything)

Perfect when you want everything imported fast:

  1. Choose your ZIP file(s)
  2. The provider is detected automatically from the first supported archive
  3. Click Import All
  4. Done! ✨
🎯 Selective Import (Pick & Choose)

Perfect when you want control:

  1. Choose your ZIP file(s)
  2. The provider is detected automatically from the first supported archive
  3. Click Select Conversations
  4. Review the list - you'll see:
    • 📝 Conversation title and date
    • 💬 Number of messages
    • 🆕 New / 🔄 Updated / ✅ Unchanged
  5. Filter conversations (optional):
    • 🔍 Search by keyword - Type in the search box to filter by title
    • 📊 Filter by status - Show New, Updated, or Unchanged
    • ♻️ Show existing conversations only - Shows only Updated + Unchanged entries
    • 📅 Sort - By date, title, or status
  6. Select conversations:
    • ✅ Check individual conversations
    • ✅ Use "Select All" / "Deselect All" buttons
  7. Click Import Selected

Important behavior:

  • Selecting an existing conversation (Updated or Unchanged) in selective mode will overwrite and reprocess the matching note.

Cool features:

  • Keyword search - Find conversations by title instantly
  • Smart filtering - Show only what you need
  • Existing-only reprocess filter - Rebuild selected existing notes intentionally
  • Multi-ZIP support (desktop) - Process multiple exports at once
  • Single-ZIP safety mode (mobile) - One archive per run for stable imports
  • Duplicate detection - Automatically finds duplicates across ZIPs
  • Flexible sorting - Organize by date, title, or status

💾 Keep your export ZIPs The plugin imports from your ZIP files but does not store them. If something goes wrong or a future plugin version improves processing, you will need the original ZIP to reimport. Keep at least your most recent export from each provider.

Step 4: Check Your Report

After each import run with at least one supported archive, you get linked report files:

What's in it:

  • Import Summary - stats, archive status, errors, attachments
  • Index Heavy - full conversation index (new / updated / failed tables)
  • Index Mobile - compact list optimized for mobile browsing

Where to find them:

  • <reports>/<provider>/<timestamp> - import summary.md
  • <reports>/<provider>/<timestamp> - index heavy.md
  • <reports>/<provider>/<timestamp> - index mobile.md

💡 Tip: The completion dialog includes a direct link to the summary report.

📊 Understanding Import Reports

Each import now writes three cross-linked reports:

  1. Import Summary
  • Global counters (files, conversations, attachments)
  • Per-archive status table (processed / skipped) with reason
  • Consolidated errors
  1. Index Heavy
  • Full per-conversation listing
  • Separate sections for created, updated, and failed items
  • Best suited for desktop review and audits
  1. Index Mobile
  • Lightweight conversation index
  • Split into ✨ New Notes and 🔄 Updated Notes
  • Faster to open on mobile and small screens

📁 Data Organization

Notes

Location

Conversations are organized by provider, year, and month:

<conversations>/
├── <provider>/
│   └── YYYY/
│       └── MM/
│           └── YYYY-MM-DD - conversation-title.md

Example (with date prefix enabled):

<conversations>/chatgpt/2024/01/2024-01-15 - my-conversation.md
<conversations>/claude/2024/02/2024-02-20 - another-chat.md

Example (without date prefix):

<conversations>/chatgpt/2024/01/my-conversation.md
<conversations>/claude/2024/02/another-chat.md

Attachments

Location

Attachments are organized by provider:

<attachments>/
└── <provider>/
    ├── images/
    ├── documents/
    └── artifacts/  (Claude only)

Example:

<attachments>/chatgpt/images/dalle-abc123.png
<attachments>/claude/artifacts/conversation-title/script_v1.py

conversation-title follows the same naming rules as conversation notes (including date prefix if enabled).

What Gets Imported

Images:

  • User-uploaded photos and screenshots
  • AI-generated images (DALL-E with prompts)
  • Embedded directly in conversation notes

Documents:

  • PDFs, text files, code files
  • Linked in conversation notes

Claude Artifacts (when included in export):

  • Code, documents, and AI-generated content
  • Saved as separate versioned files when content is available
  • Each modification creates a new version (v1, v2, v3...)
  • ⚠️ Note: Claude exports often don't include artifact content - see Provider Limitations

Claude artifact notes include provider-specific frontmatter:

---
nexus: nexus-ai-chat-importer
plugin_version: "1.x.x"
provider: claude
artifact_id: artifact_abc123
version_uuid: 3aa6f6ec-6408-4a30-97d5-3774f289f4f3
version_number: 2
command: update
conversation_id: 09c7...e12f
create_time: 2024-10-21T14:19:11.000Z
format: markdown
aliases: ["Artifact Title", "artifact_abc123_v2"]
---
Missing Attachments

Some attachments may be missing from exports:

  • Older exports: May not include all files
  • Large files: Sometimes excluded from ZIP
  • External links: Not downloadable

The plugin continues importing even with missing attachments. Check import reports for details.


🎨 Conversation Format

Each imported conversation is a Markdown note with three parts.

1. Frontmatter

Rich metadata written at the top of every note:

---
nexus: nexus-ai-chat-importer        # Plugin identifier (do not modify)
plugin_version: "1.x.x"             # Plugin version at import time
provider: chatgpt                    # chatgpt, claude, lechat, or perplexity
aliases: My Conversation Title       # YAML-safe alias for Obsidian linking
conversation_id: abc123...
create_time: 2024-01-15T14:30:22.000Z # UTC ISO 8601
update_time: 2024-01-15T16:45:10.000Z # UTC ISO 8601
---

Note on aliases: Normal titles are written unquoted. Titles that contain YAML-special characters (:, [, {) are automatically wrapped in single quotes — e.g. aliases: 'My Question: An Answer'.

This metadata enables powerful Obsidian features:

  • 🔍 Search & filter by any field
  • 📊 Dataview queries for custom dashboards
  • 📈 Track statistics across conversations
  • 🔗 Link using aliases

2. Header

Title and timestamps, with a link to the original conversation:

# Title: Conversation Title
Created: 2024-01-15 at 14:30:22
Last Updated: 2024-01-15 at 16:45:10
Chat URL: https://chatgpt.com/c/abc123...

Note: If you deleted the conversation online, the link will be dead.

3. Messages

Formatted with custom Obsidian callouts:

> [!nexus_user]
> **User** - 2024-01-15 14:30:22
>
> Your message here...

> [!nexus_agent]
> **Assistant** - 2024-01-15 14:31:05
>
> AI response here...

Callout Types:

  • 👤 nexus_user: Blue callouts for user messages
  • 🤖 nexus_agent: Green callouts for AI responses
  • 📎 nexus_attachment: Amber callouts for attachments
  • nexus_artifact: Purple callouts for Claude artifacts
  • 🪄 nexus_prompt: Red callouts for prompt blocks (including DALL-E prompts)

Viewing Modes:

  • Reading View: Full visual experience with colored callouts
  • Live Preview: Rendered callouts while editing
  • Source Mode: Raw Markdown syntax

Date & Time Formats

The plugin uses two different date formats depending on where they appear:

1. Metadata (Top of File) - Universal Format

The dates at the top of each note use ISO 8601 format (2024-01-15T14:30:22.000Z):

Works everywhere - No matter what language you use ✅ Sorts correctly - Alphabetical order = chronological order ✅ No confusion - Never mix up month and day ✅ Works with Dataview - Perfect for queries and tables ✅ Same timezone - Always UTC (no timezone confusion)

2. Message Timestamps (In Conversation) - Your Choice

The timestamps shown in each message can be customized:

  • Auto (Default): Matches your Obsidian language

    • English → 01/15/2024 2:30:22 PM
    • French → 15/01/2024 14:30:22
    • German → 15.01.2024 14:30:22
  • Custom: Pick your favorite format in Settings

    • Universal: 2024-01-15 14:30:22 (same everywhere, easy to sort)
    • US: 01/15/2024 2:30:22 PM
    • European: 15/01/2024 14:30:22
    • German: 15.01.2024 14:30:22
    • Japanese: 2024/01/15 14:30:22

⚠️ Important: Changing this setting only affects new imports. Your existing notes won't change (to protect your data).

Recommendations

✅ DO:

  • Add your own frontmatter fields and edit message content as needed
  • Manual edits are usually preserved during migrations and incremental updates
  • Keep backups if you plan to reprocess/recreate existing notes
  • Use Reading View for best experience

❌ DON'T:

  • Modify plugin-generated frontmatter fields (nexus, plugin_version, provider, aliases, conversation_id, create_time, update_time)
  • Delete message IDs (hidden in Reading View)
  • Remove messages and expect skipped/incremental runs to always restore them automatically

Why? The plugin uses conversation_id and message IDs to detect updates and avoid duplicates. Modifying them breaks this functionality.


🤖 Provider-Specific Features & Limitations

Each AI provider exports data differently.

⚠️ Export Format Stability

AI providers make export ZIPs available to comply with data portability regulations (GDPR, CCPA, etc.). These exports are not officially documented and providers make no guarantees about format stability — they can and do change without notice.

If a provider changes their export format, the plugin may stop importing correctly through no fault of its own. The plugin author cannot be held responsible for breakage caused by provider-side format changes.

If import behavior changes unexpectedly, please open an issue with clear, precise details: provider, platform/device, plugin version, ZIP size, problem description, and relevant logs or screenshots.

ChatGPT (OpenAI)

✅ Fully Supported:

  • Conversation titles (exported in JSON)
  • User-uploaded attachments (images, documents)
  • DALL-E generated images with prompts
  • Complete message history
  • Custom instructions and model information

Export Format:

  • conversations.json (single-file exports)
  • conversations-XXX.json (split exports)
  • Attachments in the same ZIP

⚠️ Limitations:

  • Very large archives (multi-GB) are increasingly common. Mobile stability cannot be guaranteed in those cases.
  • Desktop usually handles larger archives better, but if you hit limits, please report with ZIP size + logs.

Claude (Anthropic)

✅ Fully Supported:

  • Conversation titles (exported in JSON)
  • User-uploaded attachments (images, documents)
  • Complete message history
  • Artifacts with full content and versioning

⚠️ Limitations:

  • Some artifact/tool outputs may be absent from the provider export itself. Missing source data cannot be reconstructed by the plugin.
  • As with all providers, export schema changes may require plugin updates.

Export Format: Single conversations.json file with all conversations + attachments in ZIP

💡 Tip for Claude Users:

  • Artifacts are fully extracted and saved with versioning - check your artifacts folder
  • If artifact rendering looks wrong after a provider-side change, reimport and report the issue with logs

Le Chat (Mistral AI)

✅ Supported:

  • User-uploaded attachments (images, documents)
  • Complete message history
  • References and citations
  • Custom elements

⚠️ Limitations:

  • No conversation titles: Le Chat exports don't include conversation titles. The plugin automatically generates titles from the first user message (first 50 characters, followed by '...')
  • No generated images: Images created by Le Chat's image generation tool are not included in exports. Only external URLs are provided, which may expire. The plugin will show the generation prompt but cannot download the images
  • Tool calls filtered: Internal tool calls (web_search, etc.) are filtered out as they're not useful for users

Export Format: Individual chat-{uuid}.json files (one per conversation) + attachments in chat-{uuid}-files/ directories

💡 Tip for Le Chat Users:

  • If you want to preserve generated images, download them manually before exporting
  • Consider adding custom titles to your conversations by editing the imported notes' frontmatter

Perplexity (via Perplexity Thread Exporter)

✅ Supported:

  • Thread export archives generated by Perplexity Thread Exporter (perplexity_*.json)
  • Thread Exporter schema variants:
    • metadata + conversations[]
    • status + entries + thread_metadata
  • Answer Markdown preserved as-is
  • Sources/references rendered in assistant messages
  • Related queries appended at the end of notes (when present)
  • Best-effort mode / models metadata when available in export data

⚠️ Limitations:

  • Export creation currently depends on a third-party extension (not affiliated with this plugin)
  • Free/Premium limits, UI flow, and export options are controlled by the extension publisher and may change
  • If the extension output schema changes, the plugin may require updates before imports work again

Export format expected by this plugin:

  • ZIP containing perplexity_*.json thread files (Perplexity Thread Exporter output)
  • If you downloaded an outer ZIP that contains multiple part*.zip files, import those inner part*.zip files directly

💡 Tip for Perplexity users:

  • Keep original export ZIP files so you can reimport after plugin updates
  • If import behavior changes, include sample archive structure and logs when reporting issues

🔄 Reimporting & Updates

You can reimport the same ZIP multiple times. The plugin supports two behaviors:

Default behavior (incremental):

  • ✅ New conversations are created
  • ✅ Existing conversations with new content are updated
  • ✅ Unchanged conversations are skipped
  • ✅ Duplicates are prevented

When to Reimport:

  • You've had more conversations since last export
  • Plugin update adds new features
  • Fix issues from previous import
  • Retry failed attachments

Reprocess behavior (overwrite):

  • Reprocessing an existing conversation note overwrites it with fresh imported content
  • This includes selective reimport when you explicitly select existing conversations
  • Manual edits in overwritten notes (message content and custom frontmatter) are lost

Mobile note:

  • In Full Import mode, if an archive was already imported, mobile lets you choose between:
    • Reprocess and recreate all notes
    • Add/update missing/updated notes
  • In Selective Import, use Show existing conversations only to reprocess specific existing notes.

💻 Command-Line Interface (CLI)

Import conversations without opening Obsidian — useful for automation, large archives, or headless setups.

Installation

The CLI is included in the plugin source. To use it:

  1. Clone or download the repository
  2. Run npm install (plugin dependencies)
  3. Run npm --prefix cli install (CLI dependencies)
  4. Build the CLI with npm --prefix cli run build
  5. Run nexus-cli from cli/dist/ (or add it to your PATH)

Usage

nexus-cli import --vault /path/to/vault --input export.zip --provider chatgpt [options]

CLI note: provider auto-detection is a plugin UI feature. In CLI, --provider is required. Run one provider per command.

Options

Option Description
--vault <path> Path to your Obsidian vault (required)
--input <files...> One or more ZIP export files (required)
--provider <name> Provider: chatgpt, claude, or lechat (required)
--conversation-folder <path> Override conversation folder
--attachment-folder <path> Override attachment folder
--report-folder <path> Override report folder
--date-prefix Add date prefix to filenames
--date-format <fmt> Date format: YYYY-MM-DD or YYYYMMDD
--timestamp-format <fmt> Message timestamp format: locale, iso, us, eu, de, or jp
--dry-run Preview what would be imported without writing files
--verbose Show detailed import progress

Examples

# Import a ChatGPT export
nexus-cli import --vault ~/my-vault --input chatgpt-export.zip --provider chatgpt

# Import a Claude export
nexus-cli import --vault ~/my-vault --input claude-export.zip --provider claude

# Import a Le Chat export
nexus-cli import --vault ~/my-vault --input lechat-export.zip --provider lechat

# Import multiple files with date prefix
nexus-cli import --vault ~/my-vault --input export1.zip export2.zip --provider chatgpt --date-prefix

# Preview without writing (dry run)
nexus-cli import --vault ~/my-vault --input export.zip --provider chatgpt --dry-run

Note: The CLI reuses the same import engine as the plugin. Conversations imported via CLI are fully compatible with the plugin and vice versa.


⚠️ Important Notes

Export format volatility:

  • Providers can change export structures at any time
  • If imports suddenly fail after a provider change, open an issue with logs and archive details

Mobile constraints:

  • Mobile imports run one ZIP at a time
  • Very large archives can exceed memory limits depending on device

Overwrite behavior:

  • Reprocess/recreate modes overwrite target notes
  • Keep backups if you manually edited notes and plan to reprocess

Storage impact:

  • Attachments can significantly increase vault size
  • AI-generated images can be several MB each
  • Consider excluding <attachments>/ from cloud sync if storage/bandwidth is limited

🐛 Troubleshooting

"Invalid file format" error:

  • Only ZIP files are supported (must have .zip extension)
  • Known Issue (Claude + Firefox on Mac): The downloaded file may have a .dat extension instead of .zip
    • Solution: Simply rename the file to change .dat to .zip (do NOT extract and re-compress!)
    • This is a browser/server issue that has been reported to Anthropic
  • If you manually compressed a folder, make sure it's a valid ZIP format

Import stuck or slow:

  • Large archives can take several minutes
  • Check progress dialog
  • On mobile, import one archive at a time
  • If frozen, restart Obsidian and retry

No conversations appear:

  • Verify selected ZIP files are from a supported provider
  • In plugin UI, provider is auto-detected from the first supported archive
  • In CLI, verify --provider matches the selected ZIP files
  • On mobile, only one ZIP is processed per import run
  • Check ZIP file is valid export
  • Review import report for errors

Archive is skipped as unsupported:

  • This means the file does not match a supported export structure
  • The import continues for other valid archives
  • Use the summary report to see exactly which file was skipped and why

Perplexity outer ZIP with inner part ZIP files:

  • Some Thread Exporter runs produce an outer ZIP containing part1of3.zip, part2of3.zip, etc.
  • The plugin does not import nested ZIP files recursively
  • Extract the outer ZIP, then import the inner part ZIP files directly

Safari users (Mac) - ZIP file issues:

  • Safari automatically unzips downloaded files by default
  • This creates a folder instead of keeping the ZIP file
  • Solution: Disable auto-unzip in Safari:
    • Safari → Preferences → General
    • Uncheck "Open 'safe' files after downloading"
    • Re-download the export from ChatGPT/Claude/Le Chat/Perplexity
  • Note: This is a Safari feature, not a plugin bug
  • Do NOT manually re-compress unzipped folders (creates incorrect structure)

Missing attachments:

  • Check import report for details
  • Older exports may not include all files
  • Reimport to retry failed attachments

Callouts not displaying:

  • Use Reading View
  • Update Obsidian to latest version
  • Try different theme

Need help?

  1. Check import report for errors
  2. Verify settings are correct
  3. Open issue on GitHub with:
    • Plugin & Obsidian versions
    • Provider + import mode (full/selective, plugin/CLI)
    • Platform (desktop/iOS/Android) + device model
    • ZIP size (and number of ZIPs)
    • Problem description
    • Relevant logs and screenshots

🚀 Future Plans

Current roadmap:

  • v1.6.x: Perplexity follow-up improvements (sources/citations variants, richer metadata)

How You Can Help

  • 💡 Suggest Features: Open an issue on GitHub with your ideas
  • 🐛 Report Bugs: Help us improve by reporting issues
  • Support Development: Support my work to speed up development
  • Star the Repo: Show your support on GitHub

Your feedback and support directly influence what features get prioritized!


📝 License

GNU General Public License v3.0 (GPL-3.0)

This project is licensed under GPL-3.0 starting from version 1.3.0.

What this means:

  • Free to use - The plugin is and will always be free
  • Open source - Source code is publicly available
  • Can modify - You can modify the code for personal use
  • Can redistribute - You can share modified versions
  • ⚠️ Must share source - Derivative works must also be GPL-3.0 and open source
  • ⚠️ No commercial use without GPL - Commercial derivatives must also be GPL-3.0

Why GPL-3.0?

This license protects the open-source nature of this project while preventing commercial exploitation without giving back to the community. If you create a commercial product based on this code, it must also be open source under GPL-3.0.

See LICENSE.md for full details.

🙏 Credits

  • Developer: Superkikim
  • Contributors:
    • @caseyg — CLI for bulk importing (PR #33), Claude formatting feedback (PR #34)
    • @chuckfs — iOS support (PR #15)
    • @baron — Large archive handling research (PR #27)
  • Special Thanks: To all users who report issues and suggest improvements

🔗 Resources

📖 Documentation & Help

README Release Notes Troubleshooting

💬 Community & Support

Report Issues Obsidian Forum Support my work

📦 Repository

GitHub Releases Contributors

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Canvas Conversation
3 years ago by André Baltazar
A plugin for Obsidian that allows you to create a canvas conversation using ChatGPT.
Antidote Grammar Checker Integration
3 years ago by Heziode
An Obsidian integration of Antidote, a powerful grammar checker
S3 Image Uploader
3 years ago by jvsteiner
This project implements an image uploader, similar to others offered by the community, with one important difference: you can provide your own s3 based storage, instead of relying on a third party service, such as imgur.
Text Wrapper
3 years ago by smx0
Plugin for Obsidian
ChatGPT MD
3 years ago by Bram Adams
A (nearly) seamless integration of ChatGPT into Obsidian.
Companion
3 years ago by rizerphe
Autocomplete your obsidian notes with AI, including ChatGPT, through a copilot-like interface.
Auto Classifier
3 years ago by Hyeonseo Nam
Auto classification plugin for Obsidian using ChatGPT.
Ring a secretary
3 years ago by vorotamoroz
GPT-LiteInquirer
3 years ago by ittuann
💬 Experience OpenAI ChatGPT assistance directly within Obsidian, drafting content without interrupting your creative flow.
Copilot
3 years ago by Logan Yang
THE Copilot in Obsidian
Vault Chat
3 years ago by Exo Ascension
A ChatGPT bot trained on your vault notes. Ask your AI questions about your own thoughts and ideas!
Notes dater
3 years ago by Paul Treanor
Adds created_on and updated_on dates of the active note to status bar
oblogger
3 years ago by loftTech
tag explorer and frontmatter logger plugin for obsidian
ZettelGPT
3 years ago by Overraddit
Turbocharge Your Note-taking with AI Assistance
InlineCodeHighlight
3 years ago by Dimava
Copilot auto completion
3 years ago by Jordi Smit
AI Research Assistant
3 years ago by Interweb Alchemy
Prompt Engineering Research Tool for AI APIs
Expiration-Date-Tracker
3 years ago by Marius Wörfel
Opsidian plugin to keep track of all expiration dates, for example, for your groceries.
Ollama
3 years ago by hinterdupfinger
Gladdis
2 years ago by Aurélien Stébé
Gladdis (Generative Language Artificial Dedicated & Diligent Intelligence System) - it's an AI chatbot.
Youtube Summarizer
2 years ago by ozdemir08
Auto Definition Link
2 years ago by Nolan Carpenter
This is a plugin for Obsidian to automatically create links to blocks in your vault
AI Tagger
2 years ago by Luca Grippa
Simplify tagging in Obsidian. Instantly analyze and tag your document with one click for efficient note organization.
Metadata Icon
2 years ago by Benature
change metadata entry icon
PF2e Statblocks
2 years ago by Tyler Pixley
Allows Obsidian to render Pathfinder 2e statblocks cleanly, using only Markdown-based syntax.
Filtered Opener
2 years ago by Roman Kubiv
Sets of notes defined by filters to open notes.
Image to text OCR
2 years ago by Dario Baumberger
Convert a image in your note to text.
Seafile
2 years ago by conql
Plugin Reloader
2 years ago by Benature
manual reload plugins
Track-a-Lot
2 years ago by Iulian Onofrei
This is a tracker plugin for Obsidian
Ego Rock
2 years ago by Ashton Eby
An obsidian plugin that implements a basic taskwarrior UI for listing and modifying tasks.
Augmented Canvas
2 years ago by Léopold Szabatura
Supercharge your Obsidian canvas experience with AI features.
Prompt ChatGPT
2 years ago by Coduhuey
Canvas Mindmap Helper
2 years ago by Tim Smart
Quadro
2 years ago by Chris Grieser (aka pseudometa)
Obsidian Plugin for social-scientific Qualitative Data Analysis (QDA). An open alternative to MAXQDA and atlas.ti, using Markdown to store data and research codes.
Yesterday
2 years ago by Dominik Mayer
Obsidian plugin providing Yesterday journaling support
Gitlab Wiki Exporter
2 years ago by Josef Rabmer
Alias Management
2 years ago by WithMarcel
Identify duplicate notes based on similar aliases and filenames in Obsidian.
BookFusion
2 years ago by BookFusion
BookFusion Obsidian Plugin
Mxmind Mindmap
2 years ago by mxmind
mxmind for obsidian plugin
Movie Search
2 years ago by Gubchik123
Obsidian plugin to help you create movie notes.
Orion Publish
2 years ago by Sean Collings
Hugo codeblock highlight
2 years ago by aarol
Highlights lines in code blocks using Hugo's hl_lines syntax
Markdown Media Card
2 years ago by Zhou Hua
PARA Workflower
2 years ago by KevTheDevX
Helpful commands for starting and working in your vault with the PARA method.
SystemSculpt AI
2 years ago by SystemSculpt.com
Enhance your Obsidian App experience with AI-powered tools for note-taking, task management, and much, MUCH more.
Local LLM Helper
2 years ago by Mani Mohan
An Obsidian plugin to process text, chat with AI, and semantically search your notes — works with any OpenAI-compatible LLM server (Ollama, LM Studio, vLLM, and more).
Update Time
2 years ago by Sébastien Dubois
Obsidian plugin that updates front matter to include creation and last update times
Lineage
2 years ago by ycnmhd
Gingko-like interface in obsidian
Another Sticky Headings
2 years ago by Zhou Hua
AI Chat as Markdown
2 years ago by Charl P. Botha
Hash Pasted Image
2 years ago by Minh Vương
Auto rename pasted images added to the vault via hash algorithm SHA-512
Notes Refresher
2 years ago by Connor Park
Obsidian plugin for AI-generated note refreshers
Image to notes by Photes.IO
2 years ago by Kanaries Data Inc.
AI Image to text notes plugin in obsidian
Relay
2 years ago by System 3
Multiplayer Mode for Obsidian
KeepSidian
2 years ago by lc0rp
Suggest Notes
2 years ago by Doggy-Footprint
ImgBB Uploader
2 years ago by Jordan Handy
An image uploader to imgBB for Obsidian
simple-sketch
2 years ago by Yoh
an Obsidian plugin to create minimal sketches
Canvas LMS Task Importer
2 years ago by jordaeday
Imports assignments from Canvas LMS as tasks in Obsidian
Tokenz
2 years ago by Ferenc Moricz
Use any kind of short codes in Obsidian! Comes with a map for smileys (:), ;), ...) and one for emojis (:smile:, :wink:, ...).
Immich
2 years ago by Talal Abou Haiba
Add links to current note
6 years ago by MrJackphil
This plugin adds a command which allows to add a link to the current note at the bottom of selected notes
Discord Rich Presence
6 years ago by Luke Leppan
Update your Discord Status to show your friends what you are working on in Obsidian. With Discord Rich Presence.
Workbench
5 years ago by ryanjamurphy
A plugin to help you collect working materials.
Link indexer
5 years ago by Yuliya Bagriy
Youglish
5 years ago by Noureddine Haouari
Use YouTube to improve your pronunciation. YouGlish plugin gives you fast, unbiased answers about how words is spoken by real people and in context.
Dangerzone Writing
5 years ago by Alexis Rondeau
A plugin that forces you to write for X seconds. If you pause for more than 5 seconds, everything you've written in this note is DELETED.
Julian Date
5 years ago by thek3nger
Plugin for Obsidian to add the current Julian Date for astronomical observations
Footlinks
5 years ago by Daha
Obsidian plugin that extracts urls from the main text to footer, offering a better reading/editing experience.
Discordian Theme
5 years ago by @radekkozak
Discordian plugin for tweaking Discordian theme
Search on Internet
5 years ago by Emile
Add context menu items in Obsidian to search the internet.
Show Current File Path
5 years ago by Ravi Mashru
Obsidian plugin to show the file path of the current file in the status bar
Mochi Cards Exporter
5 years ago by kalbetre
Mochi Cards Exporter Plugin for Obsidian
Open cards in imdone.
5 years ago by saxmanjes
Open cards in imdone from obsidian
Regex Pipeline
5 years ago by No3371
An Obsidian plugin that allows users to setup custom regex rules to automatically format notes.
Readwise Community
5 years ago by renehernandez
Sync Readwise highlights into your obsidian vault
Markdown Furigana
5 years ago by Steven Kraft
Simple Markdown to Furigana Rendering Plugin for Obsidian
Electron Window Tweaker
5 years ago by mgmeyers
Adjacency Matrix Maker
5 years ago by SkepticMystic
Creative an interactive adjacency matrix of your Obsidian vault
Title index
5 years ago by renmu123
markdown_index is an extension that can add serial numbers to your markdown title.
Timeline
5 years ago by George Butco
Obisdian.md plugin for creating timelines
Hide Sidebars on Window Resize
5 years ago by NomarCub, Michael Hanson
A simple Obsidian plugin to hide the sidebars when the window gets narrow.
JavaScript Init
5 years ago by ryanpcmcquen
Run custom JavaScript in Obsidian.
Dialogue
4 years ago by Jakub Holub
Dialogue plugin for Obsidian.md
Clojure Plugin Host
a year ago by Vladimir "farcaller" Pouzanov
A Clojure plugin host, allowing the creation of simple Clojure-based plugins right inside Obsidian
Hoarder Sync
a year ago by Jordan Hofker
An Obsidian.md community plugin that allows syncing with https://karakeep.app/
Tencent COS for Imgur
a year ago by bobostudio
🔥 Obsidian 腾讯云 COS 图床插件
Chat clips
a year ago by sleepingraven
Record chat in ordinary markdown list.
Smart ChatGPT
a year ago by 🌴 Brian
On This Day I
a year ago by Ben Stuart
AI tools for Daily Notes, an Obsidian Plugin
OpenAugi
a year ago by Chris Lettieri
The self-organizing second brain. Augmented intelligence for thinkers.
Pure Chat LLM
a year ago by Justice Vellacott
Turn notes into conversations with chatGPT or better yet Ollama
packUp4AI
9 months ago by Jeffry
An Obsidian plugin that helps you manage context for external LLM apps.
NoteSmith
8 months ago by csteamengine
AI Agent
7 months ago by Manuel Magaña López
Empower your Obsidian vault with Google Gemini.