Skip to Content

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 StoreSearch Import Tools → Install
Container imageghcr.io/companionintelligence/ci-import-tools:latest (public)
Web UI port12002
Architecturelinux/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/export and push-to-CI-Server handoff
  • MCP server at /mcp so agents can drive imports
  • Optional auth via the CI_AUTH_TOKEN environment 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:

CategorySources
GoogleTakeout family, Google Voice, YouTube
AppleApple Photos, Apple Health, Contacts, Calendar, iMessage
SocialFacebook, Instagram, WhatsApp, Twitter, Reddit
Media & activitySpotify, Strava, Kindle, Flighty
Dev & webGitHub, browser history (Chromium and others)
LocationGPX, KML, GeoJSON, NMEA
Contacts & mailvCard, email / mbox, Google Voice
GenericGeneric 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:

  1. Pick — choose the source (e.g. Google Takeout, Strava, GPX).
  2. Export instructions — follow source-specific guidance to produce the export, then place the files where Import Tools can see them: under the mounted /repo path, or dropped into the wizard’s data/inbox/<source>/ folder.
  3. 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 importers

Differentiators

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/export NDJSON stream plus direct push-to-CI-Server
  • MCP server at /mcp so Companion Agents can trigger and monitor imports
  • Optional CI_AUTH_TOKEN to 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

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.

Last updated on