π¦ Import Tools
Reclaim your digital sovereignty. Securely migrate files, social accounts, and cloud histories directly into your localized ecosystem β permanently and without third-party intermediaries.
Overview
Import Tools is a collection of migration utilities that move your existing digital footprint β scattered across cloud services, social platforms, and external drives β into your local Companion Hub and Digital Memory Server.
The goal is a one-time, or ongoing, transfer of ownership: instead of leaving your data in Google Drive, Twitter/X, iCloud, Instagram, or any other silo, you migrate it to hardware you control. Import Tools handles the format conversion, deduplication, and memory tagging automatically.
Key Features
- Multi-platform importers β Google Takeout, Twitter/X archive, Instagram export, iCloud Photos, Facebook export, and more
- File system importers β bulk import from external drives, NAS, SMB shares, or SFTP sources
- Automatic deduplication β content-addressed storage ensures no duplicate files in your memory store
- Metadata preservation β timestamps, geolocation, captions, and social context are retained and indexed
- Incremental sync β re-run importers to pick up new data without re-importing existing items
- Progress tracking β resumable imports with per-source status and error logs
- Privacy scrubbing β optional PII stripping and EXIF data review before import
Supported Import Sources
| Source | Type | Notes |
|---|---|---|
| Google Takeout | Archive (.zip) | Photos, Drive, Gmail, Calendar, Location History |
| Twitter / X | Archive (.zip) | Tweets, DMs, media, likes |
Archive (.zip) | Posts, stories, messages, saved | |
Archive (.zip) | Posts, photos, messages | |
| iCloud Photos | Direct sync | Requires iCloud credentials or local library |
| External drive | File system | Any mounted volume |
| SFTP / SMB | Remote file system | NAS, servers |
| Obsidian vault | Markdown | Notes and attachments |
| Notion export | HTML / Markdown | Pages and databases |
| Custom CSV | Structured data | Define your own schema |
Use Cases
- Permanently exit Google Photos and bring your entire photo library on-premise
- Archive your full Twitter/X history including DMs and media before account deletion
- Consolidate years of notes from Notion, Evernote, and Obsidian into a single searchable memory
- Migrate an external hard drive of old files into the Digital Memory timeline with proper timestamps
- Continuously sync from a cloud source while transitioning to local-first workflows
Architecture
Cloud Export Archive / External Source
β
βΌ
Import Tools CLI / Web UI
β
ββββββ΄βββββββββββββββββββ
β Source Parser β
β (format-specific) β
ββββββββββββββββββββββββββ
β normalized events
βΌ
Deduplication Engine
(content-addressed hash)
β unique items only
βΌ
Digital Memory Ingestion API
β
βΌ
Digital Memory Server
(indexed, searchable, permanent)Setup
Install via Companion Hub
Search for Import Tools in the Hub app store and install. Or install the CLI directly:
curl -fsSL https://get.ci.computer/import-tools | sh
ci-import --versionPrepare your export archives
For cloud services, generate a data export first:
- Google Takeout: takeout.google.comΒ
- Twitter/X: Settings β Your Account β Download an archive
- Instagram: Settings β Meta Accounts Center β Download your information
- Facebook: Settings β Your Facebook Information β Download your information
Connect to your Digital Memory Server
ci-import configure \
--memory-url http://digital-memory.ci.localhost \
--api-key <your-api-key>Or configure via the Import Tools web UI at http://import-tools.ci.localhost.
Usage
Running an Import
Web UI
Open http://import-tools.ci.localhost β New Import β select your source type β upload or point to your archive β click Start Import.
Checking Import Status
ci-import statusShows all active and completed imports with progress, item counts, and error summaries.
Incremental Re-import
Re-run any importer to pick up new data. Import Tools tracks a cursor for each source and skips already-imported content:
ci-import run google-takeout --archive ~/Downloads/takeout-20260401.zip --incrementalReviewing Before Committing
Use --dry-run to preview what would be imported without writing anything:
ci-import run twitter --archive ~/Downloads/twitter-archive.zip --dry-runTroubleshooting
Import stalls at 0%
The source archive may be corrupted or in an unexpected format. Run ci-import validate --archive <path> to check the archive structure.
Duplicate files appearing in memory
Ensure --incremental is set for repeat imports. If duplicates already exist, run ci-import dedup to consolidate.
Missing metadata (timestamps, locations) Some export formats omit metadata. Check the import log for warnings about missing fields. For Google Photos, ensure you export both the photos and the metadata JSON files in the same Takeout archive.
Large archive running out of memory
Split large archives before importing: ci-import split --archive large.zip --size 2GB. Import each chunk separately.