{
  "slug": "gramdesk",
  "name": "GramDesk: Instagram downloader, unfollow and followers audit",
  "version": "1.0.2",
  "summary": "Download posts, reels, stories and highlights, see who does not follow back, unfollow safely, export comments. Local, no account.",
  "description": "GramDesk is an Instagram desk for creators and personal accounts. It works with the instagram.com login already in your browser and keeps everything on your computer.\n\nDOWNLOAD\n- Profile posts, reels, tagged posts, reposts, current stories, highlights, saved posts and saved collections.\n- Modes: everything, a numbered range, the last 7 or 30 days, a custom date range, only what is new since your last run, or a manual pick from a preview grid.\n- Photos only, videos only or both, with optional video and highlight covers.\n- Save as single files straight into your Downloads folder or as one ZIP.\n- File, ZIP and folder names are built from parts you order yourself: username, publish date, shortcode, caption, likes, views, location and more.\n- Paste a list of post, reel or story links and save them in one go.\n\nFOLLOWERS AUDIT\n- Scan followers and following, then see who does not follow back, who you do not follow back, mutuals and verified accounts.\n- Snapshots keep a history: compare any two to see who unfollowed you and who arrived. Optional automatic snapshot every few hours.\n- Search, sort, select, export to CSV or JSON.\n\nMASS UNFOLLOW\n- Queue accounts from the audit or paste usernames.\n- Safe, Balanced and Fast presets or your own timings, batch pauses, a pause after any refusal, a daily limit and a whitelist of accounts never to touch.\n- Pause, resume and stop at any time, with a full history.\n\nSTORIES AND COMMENTS\n- View stories and highlights as data, so no seen receipt is sent, and save one or all.\n- Export every comment and reply of a post as CSV, JSON or a username list.\n\nON INSTAGRAM.COM\n- A small floating button offers the matching action for the page you are on: download this post, download this story, download this profile, audit followers.\n\nPRIVACY\n- No GramDesk account, no server, no analytics. The extension talks only to instagram.com and its media servers, using your own session. Full policy at the privacy policy link.\n\nUnfollowing many accounts quickly can trigger Instagram action blocks. Keep the Safe or Balanced preset and stop when Instagram asks you to confirm anything.",
  "category": "Social & Communication",
  "language": "English",
  "single_purpose": "Manage the user's own Instagram account from the browser: download media they can see, audit their followers and following, unfollow accounts they choose and export comments. Everything the extension does serves that one purpose.",
  "privacy_url": "https://gramdesk.pages.dev/privacy",
  "site_url": "https://gramdesk.pages.dev",
  "support_url": "",
  "store_url": "",
  "permissions": [
    "storage",
    "unlimitedStorage",
    "downloads",
    "alarms",
    "tabs",
    "scripting",
    "cookies",
    "activeTab"
  ],
  "host_permissions": [
    "https://*.instagram.com/*",
    "https://*.cdninstagram.com/*",
    "https://*.fbcdn.net/*"
  ],
  "permission_justifications": {
    "storage": "Save settings, naming rules, safety presets and the whitelist in Chrome sync; snapshots, queue, histories and download memory in local storage.",
    "unlimitedStorage": "Follower snapshots of large accounts and the download memory exceed the default local quota.",
    "downloads": "Save media files and ZIP archives into the user's Downloads folder with the names the user configured.",
    "alarms": "Optional automatic followers snapshot at the interval the user picks.",
    "tabs": "Open the dashboard, find the active Instagram tab for the popup context, re-inject the content script into open Instagram tabs after an update.",
    "scripting": "Re-inject the content script into already-open instagram.com tabs after install or update.",
    "cookies": "Read the Instagram CSRF token and user id cookies so requests to instagram.com are accepted for the logged-in user.",
    "activeTab": "Read the URL of the current tab when the popup opens to offer the matching action.",
    "https://*.instagram.com/*": "Call Instagram's own web endpoints with the user's session (followers, following, media, stories, comments, unfollow) and show the floating button on instagram.com pages.",
    "https://*.cdninstagram.com/*": "Fetch photo and video files when building a ZIP.",
    "https://*.fbcdn.net/*": "Fetch photo and video files when building a ZIP (Instagram's second media host).",
    "Asset": "Size | Status",
    "Icon": "128 x 128 PNG | `icons/icon-128.png` (store version with 16 px padding: `store/screenshots/store_icon_128.png`)",
    "Screenshots (1 to 5)": "1280 x 800 PNG | `store/screenshots/01_hero.png` .. `05_privacy.png` (regenerate: `python store/capture.py` then `python store/render.py`)",
    "Small promo tile": "440 x 280 PNG | `store/screenshots/promo_small_440x280.png`",
    "Marquee promo tile": "1400 x 560 PNG | `store/screenshots/promo_marquee_1400x560.png`"
  },
  "remote_code": false,
  "colors": null,
  "zip": {
    "name": "GramDesk-v1.0.2.zip",
    "size": 93965,
    "sha256": "ff78a70d9e5585f99f50b0abfc424172b78e9a95cb8451e1e01dec169ecc0529"
  },
  "icon": "icon-128.png",
  "screenshots": [
    {
      "name": "01_hero.png",
      "w": 1280,
      "h": 800
    },
    {
      "name": "02_followers.png",
      "w": 1280,
      "h": 800
    },
    {
      "name": "03_unfollow.png",
      "w": 1280,
      "h": 800
    },
    {
      "name": "04_download.png",
      "w": 1280,
      "h": 800
    },
    {
      "name": "05_privacy.png",
      "w": 1280,
      "h": 800
    }
  ],
  "promo_small": "promo_small_440x280.png",
  "promo_marquee": "promo_marquee_1400x560.png",
  "versions": [
    "1.0.2"
  ],
  "created_at": "2026-10-16T13:28:34.663Z",
  "updated_at": "2026-10-16T13:28:34.663Z",
  "url": "https://chrome-plugins.pages.dev/p/gramdesk",
  "zip_url": "https://chrome-plugins.pages.dev/files/gramdesk/GramDesk-v1.0.2.zip",
  "files": [
    {
      "name": "01_hero.png",
      "type": "image/png",
      "size": 169226,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/01_hero.png"
    },
    {
      "name": "02_followers.png",
      "type": "image/png",
      "size": 130057,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/02_followers.png"
    },
    {
      "name": "03_unfollow.png",
      "type": "image/png",
      "size": 152126,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/03_unfollow.png"
    },
    {
      "name": "04_download.png",
      "type": "image/png",
      "size": 175799,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/04_download.png"
    },
    {
      "name": "05_privacy.png",
      "type": "image/png",
      "size": 104340,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/05_privacy.png"
    },
    {
      "name": "GramDesk-v1.0.2.zip",
      "type": "application/zip",
      "size": 93965,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/GramDesk-v1.0.2.zip"
    },
    {
      "name": "icon-128.png",
      "type": "image/png",
      "size": 6340,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/icon-128.png"
    },
    {
      "name": "promo_marquee_1400x560.png",
      "type": "image/png",
      "size": 144296,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/promo_marquee_1400x560.png"
    },
    {
      "name": "promo_small_440x280.png",
      "type": "image/png",
      "size": 24395,
      "url": "https://chrome-plugins.pages.dev/files/gramdesk/promo_small_440x280.png"
    }
  ],
  "checklist": {
    "items": [
      {
        "id": "zip",
        "label": "Extension zip",
        "ok": true,
        "detail": "GramDesk-v1.0.2.zip (91.8 KB)"
      },
      {
        "id": "name",
        "label": "Name, 75 chars max",
        "ok": true,
        "detail": "60 chars"
      },
      {
        "id": "summary",
        "label": "Summary, 132 chars max",
        "ok": true,
        "detail": "129 chars"
      },
      {
        "id": "description",
        "label": "Detailed description",
        "ok": true,
        "detail": "2124 chars"
      },
      {
        "id": "category",
        "label": "Category",
        "ok": true,
        "detail": "Social & Communication"
      },
      {
        "id": "language",
        "label": "Language",
        "ok": true,
        "detail": "English"
      },
      {
        "id": "icon",
        "label": "Store icon 128 x 128",
        "ok": true,
        "detail": "icon-128.png"
      },
      {
        "id": "screenshots",
        "label": "Screenshots 1280 x 800 (1 to 5)",
        "ok": true,
        "detail": "5 usable of 5"
      },
      {
        "id": "promo_small",
        "label": "Small promo tile 440 x 280",
        "ok": true,
        "detail": "present",
        "optional": true
      },
      {
        "id": "promo_marquee",
        "label": "Marquee promo tile 1400 x 560",
        "ok": true,
        "detail": "present",
        "optional": true
      },
      {
        "id": "privacy",
        "label": "Privacy policy URL",
        "ok": true,
        "detail": "https://gramdesk.pages.dev/privacy"
      },
      {
        "id": "single_purpose",
        "label": "Single purpose statement",
        "ok": true,
        "detail": "present"
      },
      {
        "id": "justifications",
        "label": "Permission justifications",
        "ok": true,
        "detail": "8 permissions covered"
      },
      {
        "id": "remote_code",
        "label": "Remote code declaration",
        "ok": true,
        "detail": "no remote code"
      },
      {
        "id": "site",
        "label": "Website / support URL",
        "ok": true,
        "detail": "https://gramdesk.pages.dev"
      }
    ],
    "done": 13,
    "total": 13,
    "sensitive": [
      "unlimitedStorage",
      "downloads",
      "alarms",
      "tabs",
      "scripting",
      "cookies"
    ]
  }
}