jasper
web v0.1.0 cli v0.1.0

About Jasper

Jasper imports your Instagram photos to Grain.social while preserving original timestamps.

How it works

  1. 1
    Export

    Download your Instagram data as JSON from their download page.

  2. 2
    Upload

    Drag your ZIP file or extracted folder into the import tool.

  3. 3
    Authenticate

    Sign in with your AT Protocol identity via OAuth.

  4. 4
    Import

    Photos are uploaded directly to Grain with original timestamps.

Privacy

Everything runs in your browser. Your Instagram export and photos are processed locally and uploaded directly to your own Grain account via your PDS. No data is sent to any intermediate server.

What's imported

Not imported: Videos, Stories, or Reels (not supported by Grain yet).

Getting your Instagram export

  1. 1

    Go to Instagram's download page

  2. 2

    Request a download of your information

  3. 3

    Select "Some of your information" → "Posts" and "Archived posts"

  4. 4

    Choose JSON format and download the ZIP file

OAuth Scope

Jasper requests minimal permissions:

atproto blob:*/* repo:social.grain.photo

This allows uploading photos as blobs and writing to Grain's photo collection only. No broad permissions.

Source

Jasper is open source: github.com/ewanc26/pkgs