Import Tools
Reclaim your digital sovereignty. Pull your files, social exports, and personal data archives into your local Companion Hub — recognized, parsed, and handed off to your Digital Memory.
Install & availability
Available now. Install from the Companion Hub App Store. Verified on the test fleet: the published image pulls, starts, serves its web UI, and survives a container restart.
| Hub App Store | Search Import Tools → Install |
| Container image | ghcr.io/companionintelligence/ci-import-tools:latest (public) |
| Web UI port | 12002 |
| Architecture | linux/amd64 and linux/arm64 (multi-arch) |
| Mounts | /repo (read-only source data) and /data (SQLite state) |
Overview
Import Tools moves your existing digital footprint — data exports, photo libraries, message archives, location logs — into your local Companion Hub and Digital Memory Server. It recognizes a wide range of export formats, parses the recognized ones into normalized records, and can push them to your CI-Server.
You work from a guided wizard (or a CLI). You point Import Tools at data on disk under the mounted /repo, or drop files into the wizard’s per-source inbox folders — there is no “upload a single cloud archive” pipeline.
Current capabilities
What Import Tools does today, as shipped:
- ~31 file- and API-based importers for common personal-data exports (see the list below)
- Format auto-recognition — it identifies what an export is from its structure
- Asynchronous import jobs with live progress over SSE
- NDJSON export via
/api/exportand push-to-CI-Server handoff - MCP server at
/mcpso agents can drive imports - Optional auth via the
CI_AUTH_TOKENenvironment variable - A 3-step wizard: Pick a source → Export instructions → Summary + CI-Server handoff
Every importer in the catalog below parses today, each with test coverage in the backend suite.
Earlier versions of this page advertised SFTP/SMB, Obsidian, Notion, custom-CSV, and direct iCloud sync importers, plus a “privacy scrubbing / PII stripping / EXIF review” step and a ci-import CLI installed via get.ci.computer/import-tools. None of those exist. The accurate catalog, CLI, and workflow are documented below.
Supported importers
The real catalog is roughly 31 importers across files and APIs:
| Category | Sources |
|---|---|
| Takeout family, Google Voice, YouTube | |
| Apple | Apple Photos, Apple Health, Contacts, Calendar, iMessage |
| Social | Facebook, Instagram, WhatsApp, Twitter, Reddit |
| Media & activity | Spotify, Strava, Kindle, Flighty |
| Dev & web | GitHub, browser history (Chromium and others) |
| Location | GPX, KML, GeoJSON, NMEA |
| Contacts & mail | vCard, email / mbox, Google Voice |
| Generic | Generic file importer |
There is no PII scrubbing, EXIF review, or privacy-filtering feature. Import Tools recognizes, parses, and forwards data — it does not redact it.
The import workflow
The flagship flow is the 3-step wizard, not an archive upload:
- Pick — choose the source (e.g. Google Takeout, Strava, GPX).
- Export instructions — follow source-specific guidance to produce the export, then place the files where Import Tools can see them: under the mounted
/repopath, or dropped into the wizard’sdata/inbox/<source>/folder. - Summary + handoff — review what was recognized and parsed, then hand off to your CI-Server.
CLI
There is no ci-import binary and no get.ci.computer/import-tools installer. The real CLI lives in the repository’s backend/ directory and is run via npm scripts:
# from backend/
npm run cli -- stats # show what's in the repo / inbox
npm run cli -- recognize # auto-recognize formats present
npm run cli -- import # run the importersDifferentiators
Worth knowing about Import Tools specifically:
- Format auto-recognition so you don’t have to hand-classify exports
- Async jobs with SSE progress for long-running imports
/api/exportNDJSON stream plus direct push-to-CI-Server- MCP server at
/mcpso Companion Agents can trigger and monitor imports - Optional
CI_AUTH_TOKENto require auth on the API
Setup
Install from Hub
Search for Import Tools in the Hub app store and install. The Hub provides the /repo (read-only source) and /data (SQLite state) mounts.
Open the wizard
Navigate to http://import-tools.ci.localhost and start a new import. Pick your source.
Place your data
Follow the per-source export instructions, then put the files under the mounted /repo path or drop them into the wizard’s data/inbox/<source>/ folder.
Recognize, import, hand off
Let Import Tools recognize and parse the files, review the summary, and push to your CI-Server. (Equivalent CLI: npm run cli -- {stats,recognize,import} from backend/.)
Usage
Running an Import
Web UI
Open http://import-tools.ci.localhost → start a new import → Pick a source → follow the Export instructions and place files under /repo or in data/inbox/<source>/ → review the Summary and hand off to CI-Server.
Watching Progress
Imports run as async jobs and stream progress over SSE — the wizard shows live status as files are recognized and parsed.
Exporting / Handing Off
Use /api/export to stream parsed records as NDJSON, or use the built-in push to send them to your CI-Server.
Troubleshooting
My export was placed but nothing imported
Make sure you ran the import (not just recognition), and that the files sit under /repo or the right data/inbox/<source>/ folder. If an import ran but produced no records, check the job logs for parse warnings.
Files aren’t recognized
Confirm they’re under the mounted /repo path or the correct data/inbox/<source>/ folder, and run npm run cli -- recognize (or re-run the wizard’s recognize step).
API rejects my requests
If CI_AUTH_TOKEN is set, include it. Otherwise the API is open.