Everything on the grid
Images, videos, reels, and full carousel albums. Each asset lands as its own file with a stable key so re-runs never re-download.
imago get instagram.com/<user>/
Drop a profile URL. Walk away. Every photo, video, and carousel slide lands on disk. Watch the profiles you care about and backfill weekly without duplicates. Built for humans and coding agents.
install + first archive
paru -S imago # Arch (AUR) · or a binary from Releases
cargo install --git https://github.com/guitaripod/imago
imago auth login # reads your logged-in browser session
imago get https://www.instagram.com/natgeo/
imago watch add natgeo
# cron weekly:
imago watch sync --json Images, videos, reels, and full carousel albums. Each asset lands as its own file with a stable key so re-runs never re-download.
Auto-resumes interrupted jobs, resumes truncated videos, and waits out soft rate limits. A checkpoint or dead session stops with a clear re-auth message instead of spinning — and the final report tells you exactly how many posts it got.
imago watch add <user> then imago watch sync on a cron. Incremental early-stop when a page is already known; --full when you want a re-scan.
imago guide is the playbook. --json on every command. Logs under $XDG_DATA_HOME/imago/logs. Stable exit codes for scripts and coding agents.
imago auth login reads the session straight from your logged-in browser (Chrome, Chromium, Brave, Vivaldi, Edge, Opera) — no devtools copy-paste, no shared cloud, no Meta app review. Media stays in ./downloads/<user>/ on your machine.
No fake flags. No half-wired config. What the guide says is what the binary does.
Exit codes: 0 ok · 1 usage · 2 auth dead · 3 partial · 10 unexpected
JSON: --json on every
command · playbook: imago guide
Logs: $XDG_DATA_HOME/imago/logs/imago.log
imago is a personal archival tool that uses your own logged-in session, the same way a browser does. You are responsible for complying with Instagram’s terms and local law. Don’t run it as a bulk commercial scraper.
Log into Instagram in your browser, then run imago auth login — it reads and decrypts the session cookies from your browser profile automatically (Chrome, Chromium, Brave, Vivaldi, Edge, Opera). No manual copy-paste. On a headless box you can still pass --session-id / --csrf-token by hand.
Anonymous requests only return a profile’s first 12 posts — Instagram gates deeper pagination behind a logged-in session. imago reuses your own session, exactly like your browser does; it never sees your password.
Not in v1. Profile grid media only (including reels that appear on the grid). Stories and highlights are a different surface.
Disk is truth. Existing shortcode / shortcode_NN files are skipped. Watch sync early-stops when an entire page is already known.