Connect Instagram Developer Platform
ASecurityConnect the user's Instagram account to every agent, fully on its own, in the way that fits them: a Zernio account (simple, paid past 2 accounts) or their own Meta developer app (free, longer). It asks which one, then does it. It registers them as a Meta developer, creates a Meta app linked to their Instagram, generates the access and the app secret in Chrome AI with dev-browser, saves them locally, then uses connect-tool's format to write a global /instagram-cli skill that reads and answers ...
- 29 stars
- 0 votes
- 0 copies
- 0 views
- Added November 11, 2026
Works with
Security analysis
92/100- Uses curl or wget to download content
Pro scans all 2 files and shows the line behind each finding
npx -y skills add Melvynx/ai-maxxing-skills --skill connect-instagram-developer-platform --agent claude-codeAre you the author of Connect Instagram Developer Platform?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/melvynx-connect-instagram-developer-platform)---
name: connect-instagram-developer-platform
description: Connect the user's Instagram account to every agent, fully on its own, in the way that fits them: a Zernio account (simple, paid past 2 accounts) or their own Meta developer app (free, longer). It asks which one, then does it. It registers them as a Meta developer, creates a Meta app linked to their Instagram, generates the access and the app secret in Chrome AI with dev-browser, saves them locally, then uses connect-tool's format to write a global /instagram-cli skill that reads and answers DMs, comments, posts and stats. Use for "connect Instagram", "Meta developer", "Instagram API", "instagram-cli", "manage my Instagram DMs", "reply to my comments". Run on the user's computer.
argument-hint: "[@username of the Instagram account, default the one signed in to Chrome AI]"
user-invocable: true
---
Give the user's agents full control of their Instagram (DMs, comments, posts, stats, publishing) through a small CLI. Two ways to connect, the user picks one (step 1b): **Zernio** (a third-party service that holds the Instagram connection; a few clicks, 2 accounts included then a small monthly fee per account) or the user's **own Meta developer app** (official Instagram API, no third party, no fee, more steps). Do every step yourself in Chrome AI with the `dev-browser` skill; the user only signs in, confirms their phone if Meta asks, and clicks "Allow". Talk to the user in their language, short messages, no jargon (never say "token", "OAuth", "scope" or "Graph API" to them; say "Instagram access" and "the key").
If you got this skill from a link instead of a local folder, install nothing else from the repo: download [scripts/instagram.py](scripts/instagram.py) with `curl -fsSL https://raw.githubusercontent.com/Melvynx/ai-maxxing-skills/main/skills/connect-instagram-developer-platform/scripts/instagram.py -o <scratch>/instagram.py`, and read another skill it names only when you reach it, from `https://raw.githubusercontent.com/Melvynx/ai-maxxing-skills/main/skills/<skill-name>/SKILL.md`.
Never print, log or repeat the app secret, the access or what `instagram.py` keeps in `~/.config/instagram-cli/config.json`. Browser scripts that read them write them straight to `~/.dev-browser/tmp/instagram-keys.json` with `writeFile` and log only `{ saved: true }`. Ask the user before you accept Meta's developer terms (step 3). Read each page with `snapshotForAI()` before clicking: Meta's dashboard speaks the user's language and moves its buttons often, so look for the meaning, not the exact words below.
1. Check the tools. `chrome-ai start` and `dev-browser --help` must answer (otherwise run `setup-dev-browser`), and `python3 --version` must be 3.9 or newer. If `~/.agents/skills/instagram-cli/` already exists, run `python3 ~/.agents/skills/instagram-cli/scripts/instagram.py me`: if it answers, tell the user Instagram is already connected and skip to step 10.
1b. Ask which connection, one question, in plain words, and say which you recommend: "Zernio" (complexité 1/10, fastest: you create a Zernio account, I connect your Instagram through it; 2 accounts included, then a few dollars a month per account, see https://zernio.com/pricing; your Instagram goes through their service) or "Ton propre compte développeur Meta" (complexité 9/10, free, nothing in the middle, about 10 more minutes of clicking and several Meta screens that move). Recommend Zernio to someone who wants it working now or runs several accounts, Meta to someone who wants no third party and no fee. Always show the two complexity scores (Zernio 1/10, Meta developer API 9/10) in the question. Then do the matching path and skip the other: **Zernio** = steps Z1 to Z5 then 9; **Meta** = steps 2 to 7, then 8, then 9. Steps 9 to 11 are the same for both.
Z1. Zernio path. Check the Instagram account first as in step 2 (professional, Creator or Business). Then the user creates a Zernio account at `https://zernio.com` (they sign up and pay if they want to: any payment is theirs), and creates an API key at `https://zernio.com/dashboard/api-keys` (it starts with `sk_`). Ask them to copy it and say "done"; read it from the clipboard with `pbpaste` (never from the chat) into `~/.dev-browser/tmp/instagram-keys.json` as `{"zernio_key": "..."}`. Never print it.
Z2. Install the CLI (the copy part of step 8). Then `python3 ~/.agents/skills/instagram-cli/scripts/instagram.py zernio-connect` prints a link: open it in the page `connect-instagram`; tell the user in 3 short lines to sign in to `@<username>` in the Chrome AI window, click Allow, and say "done". Default is Instagram login (no Facebook Page); if Zernio or Meta asks for a Facebook Page, run it again with `--login-method facebook_login`.
Z3. Save the connection: `python3 ~/.agents/skills/instagram-cli/scripts/instagram.py login --zernio --from ~/.dev-browser/tmp/instagram-keys.json`. It finds the Instagram account in Zernio, deletes the file and ends with `connected=@<username> via Zernio`.
Z4. Real-time DMs and comments (optional, for an automation later): Zernio sends webhooks (`message.received`, `comment.received`, `reaction.received`, signed in `X-Zernio-Signature`), created with `POST /v1/webhooks/settings`; it needs a public URL, so only mention it.
Z5. Go to step 9 (the proof reads) then 10 (write the skill, say Zernio in it).
2. Check the Instagram account, in a page named `connect-instagram`. Open `https://www.instagram.com/accounts/edit/`: if Chrome AI is not signed in, ask the user to sign in there with the account to connect and say "done". The account must be **professional** (Creator or Business): Meta's API refuses personal accounts. Open `https://www.instagram.com/accounts/convert_to_professional_account/` (or Settings > Account type and tools): if it offers to switch, tell the user in one line it is free, changes nothing for their followers, and ask them to pick Creator (or Business) there. Note the @username.
3. Become a Meta developer. Open `https://www.facebook.com`: Meta developer accounts live on a Facebook account, so ask the user to sign in there if needed (the Facebook account they use for their Instagram, if they have one). Then open `https://developers.facebook.com/async/registration/`. If it shows the dashboard or "My Apps", they are already registered. Otherwise go through it: ask the user before you accept the terms, let them confirm their phone number or email with the code Meta sends (they type it), pick "Developer" as their role.
4. Create the app: open `https://developers.facebook.com/apps/creation/`. App name: `<FirstName> Agent` or anything short **without** "Instagram", "Insta", "IG", "Meta" or "Facebook" (Meta refuses those). Contact email: the account's. Use case: **Manage messaging & content on Instagram** (wording may vary: the one about Instagram messages and content); never "Other" (it gives an app with no Instagram). Business portfolio: this use case requires one: pick the user's if they have one, otherwise create one (a name is enough, no documents). Create; Meta may ask for the Facebook password again: ask the user to type it. Read the app ID from the address (`/apps/<app_id>/`). New Meta apps only get **Unified Login**: there is no "API setup with Instagram login", no `instagram_business_*` permission and no separate Instagram app ID.
5. Open the Instagram use case (left menu "Use cases" > Customize, or `https://developers.facebook.com/apps/<app_id>/use_cases/`) and go to **API setup with Unified login**. Under Permissions, make sure `instagram_basic`, `instagram_manage_messages`, `instagram_manage_comments`, `instagram_content_publish` and `instagram_manage_insights` are there. Standard access is enough: the app only acts on the user's own account, so no Meta review.
6. Link the Instagram account: first add it as a tester: App roles > Roles > Add people > **Instagram Tester**, with the @username. Then the user accepts on Instagram web: `https://www.instagram.com/accounts/manage_access/` > Tester invites > Accept (tell them in 2 short lines, they do it in the Chrome AI window). Back on "API setup with Unified login", section "Generate access tokens", click **Add account** and choose the account if Meta asks.
7. Read the keys. Next to the linked account click **Generate token**; a dialog shows it after a "I understand" box (tick it). Then open App settings > Basic and read the **App ID** and the **App secret** (click Show; Meta asks the Facebook password: ask the user to type it). They are the Meta app's own pair (there is no separate Instagram pair). Meta's dashboard ignores `element.click()` and many Playwright clicks: click with `page.mouse.click(x, y)` at the element's page coordinates (read its box with `getBoundingClientRect`, the screenshot is scaled), and keep each dev-browser script under 30 seconds. In one browser script, save the three without logging them:
```js
await writeFile("instagram-keys.json", JSON.stringify({ app_id, app_secret, access_token }));
console.log(JSON.stringify({ saved: true, app_id }));
```
The token dialog shows it only once: if it closed before you read it, click Generate token again.
8. Install the CLI the connect-tool way, as a global skill folder: `mkdir -p ~/.agents/skills/instagram-cli/scripts`, copy [scripts/instagram.py](scripts/instagram.py) to `~/.agents/skills/instagram-cli/scripts/instagram.py`, then `python3 ~/.agents/skills/instagram-cli/scripts/instagram.py login --from ~/.dev-browser/tmp/instagram-keys.json`. It turns the access into a 60-day one, checks it, deletes the file and ends with `connected=@<username>`. If it says the access is refused, redo step 7 (a new token).
9. Prove it works with real reads, each must answer without an error: `instagram.py me`, `instagram.py posts --max 3` and `instagram.py dms --max 3` (full path `python3 ~/.agents/skills/instagram-cli/scripts/instagram.py`). If `dms` says the permission is missing, check `instagram_manage_messages` in step 5, then regenerate the token (step 7) and log in again. Also check Instagram > Settings > Messages and story replies > Message controls > Connected tools > **Allow access to messages** is on (in the Instagram app on the phone: ask the user if you cannot find it on the web). An empty list is fine if they have no DMs.
10. Write the skill with connect-tool's format (read `connect-tool`, steps 5 and 6, from the user's skills or from the repo): `~/.agents/skills/instagram-cli/SKILL.md`, exactly this, then link it for Claude Code like connect-tool step 6.
```markdown
---
name: instagram-cli
description: Instagram from the terminal with the user's own Meta app: DMs (read, answer), comments (read, reply, hide), posts and their stats, publishing photos and reels. Use when the user asks about their Instagram DMs, to answer messages or comments, how their posts are doing, or to publish on Instagram.
---
Run `python3 ~/.agents/skills/instagram-cli/scripts/instagram.py <command>`; run it with no command to see them all. Access: `@<username>` through <their own Meta app `<app_id>` | their Zernio account>, set up by /connect-instagram-developer-platform (run it again if access is lost).
- Account: `me` · latest posts: `posts --max 10` · stats of a post: `post-stats <mediaId>`
- DMs: `dms` (conversations) · `messages <conversationId>` · answer: `send <with_id> "<text>" --yes` (with Zernio, the first argument is the conversation id)
- Comments: `comments <mediaId>` · `reply-comment <commentId> "<text>" --yes` · `hide-comment <commentId> --yes`
- Publish (public link to the file): `publish <image_url> --caption ".." --yes` · reel: `publish --video <url> --caption ".." --yes`
- Anything else: `api GET <path> --query fields=..` (the account id is in `me`)
DMs can only be answered within 24 hours of the person's last message. Show the user the exact text and get their OK before every `--yes`. The access has no expiry date. New DMs in real time need a webhook on a server (not here): the Socials dashboard does that. Docs: https://developers.facebook.com/documentation/instagram-platform/instagram-api-with-unified-login/get-started
```
11. If the user has a brain folder with an `AGENTS.md`, add one line there: Instagram (DMs, comments, posts) goes through `/instagram-cli`, account `@<username>`, read before writing, always ask before sending a DM, replying or publishing.
End with a short check list, a check or a cross on each line: professional account, Meta developer, app created, permissions added, Instagram linked, keys saved, me / posts / dms answer, `/instagram-cli` skill written. Then tell the user in 3 lines: their Instagram is connected through their own Meta app, a new session shows `/instagram-cli`, and one thing to try now, for example "Summarize my unread Instagram DMs and draft a reply for each".
Files in this skill
- SKILL.md
- scripts/instagram.py
Attribution
Related skills
View all in ai-agents →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.