Skip to content

Guide · Agent skill

How to use the Instagram Post & Verify Uploader agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The instagram-upload skill teaches an AI agent to publish Reels, single photos and photo carousels to Instagram by calling the sau command-line tool, rather than writing its own browser uploader. It is aimed at creators posting to a dedicated account and developers building scripted publishing. After this guide you will know how to install the skill, ask an agent for a post in plain language, and understand what the agent will and will not do. An agent skill is a folder with a SKILL.md file that tells an AI agent when and how to perform a task, plus optional scripts it can run. Once installed, the agent reads these instructions when your request matches the task.

Instagram Post & Verify Uploaderdreammis/social-auto-upload · MIT

Quick start

  1. 1Install the sau CLI. Install the social-auto-upload project's sau command-line tool and make sure it is on your PATH, along with the Patchright Chrome browser it uses.
  2. 2Install the skill. Unzip the downloaded ZIP into ~/.claude/skills/ or a project's .claude/skills/, or upload it under Settings → Capabilities → Skills.
  3. 3Log in. Run sau instagram login with your account name and enter your password in the visible browser, then run check to confirm the session.
  4. 4Ask for a post. Describe the Reel or carousel you want in plain language, including the files, title and body, and state that it should publish now.
  5. 5Check the result file. Open the JSON result to confirm published, processing or submission_unknown, and keep the post link for records.
  6. 6Verify or delete if needed. Use verify with the post link and exact text to confirm a post. Use delete only on a single post you have checked.

What does the instagram-upload skill make the agent do?

The skill tells the agent to use the existing sau CLI from the social-auto-upload project. It does not implement browser upload itself. Publishing runs in a visible Patchright Chrome browser with a separate Instagram web session, not the Business Suite binding flow.

Supported actions are logging in to an account, checking the session, uploading a video (Reel), uploading a photo carousel or single photo, verifying that a post exists, and deleting a post so it moves to Instagram's Recently Deleted folder. Each upload or verify/delete can write a result file.

  • Publish a video or Reel with an optional cover image
  • Publish one to many photos as a carousel in input order
  • Record results to a JSON file with --result
  • Verify an existing post by URL and expected text
  • Move a single post to Recently Deleted after checking it

How do you install the instagram-upload skill?

Download the skill ZIP from this page and unzip it. For a personal setup, place the folder in ~/.claude/skills/. For a single project, place it in that project's .claude/skills/ folder. Alternatively, upload the ZIP in the Claude apps under Settings → Capabilities → Skills.

The skill also needs the sau command-line tool from the social-auto-upload project installed and available on your PATH, and the Patchright Chrome browser that the project uses.

  • Personal: ~/.claude/skills/
  • Project only: .claude/skills/ inside the project
  • Claude apps: Settings → Capabilities → Skills, then upload the ZIP

Log in to a dedicated Instagram account

Run the login command for an account name of your choice. A visible browser opens. You type your password and complete any verification yourself; the agent does not handle credentials. The session is saved to cookies/instagram_creator.json for the account named creator. Then run check to confirm the session works.

Use a separate account you control. Session and result files should stay local and must not be committed to Git.

sau instagram login --account creator sau instagram check --account creator

For a video, pass the file, an optional cover image, a title, body text and tags. Photos are passed with --images in the order they should appear. The upload commands accept a --result path so the outcome is recorded. Titles, body and tags together can total at most 2200 characters. MP4 and MOV work for video; JPG, JPEG, PNG, AVIF, HEIC and HEIF for photos, though the platform decides what it finally accepts.

Publishing is immediate. The CLI does not schedule posts, so do not ask for a scheduled time.

  • Thumbnail (--thumbnail) is for video only and accepts JPG, JPEG or PNG
  • Photo posts do not accept --thumbnail
  • Location, collaborators, alt text, filters, crop and comment settings are not wired in and use page defaults
sau instagram upload-video --account creator --file videos/demo.mp4 --thumbnail covers/demo.png --title "标题" --desc "正文" --tags 生活,分享 --result .local/instagram-video.json sau instagram upload-note --account creator --images images/1.jpg images/2.jpg --title "轮播标题" --note "正文" --result .local/instagram-images.json

Understand results: published, processing and submission_unknown

A result of published means the platform confirmed the post was created, and the result includes the post ID, the original post link and the media count. processing means the submission was accepted and is still being handled. submission_unknown means the outcome was not confirmed after submitting; treat it as not published and do not resubmit it immediately.

If a result is unknown and you have no link, the agent should search the same account's profile by material, caption and time, copy the link and run verify. Not finding it does not prove failure, so do not re-upload.

Verify and delete a post safely

Verify checks that a post exists using its link and the exact text from the original. Delete only runs after the logged-in user, author, post ID and body have been checked. A successful delete returns deleted and the post goes to Recently Deleted. Bulk deletion and emptying Recently Deleted early are outside the skill's scope, and local material files are not deleted.

If a delete returns deletion_unknown, check the original post and Recently Deleted first rather than submitting the delete again.

  • Links can be /p/ID/, /reel/ID/ or include the author name
  • Expected text must match the original post exactly
sau instagram verify --account creator --post-url "原作品链接" --expected-text "原作品中的准确文字" --result .local/instagram-verify.json sau instagram delete --account creator --post-url "原作品链接" --expected-text "原作品中的准确文字" --result .local/instagram-delete.json

Safety notes: scripts, network and proxies

This skill runs scripts and uses the network. By default the browser is visible and connects directly unless a proxy is configured. To use a proxy, pass --proxy or set SAU_INSTAGRAM_PROXY. Passing --proxy with an empty string ignores the environment variable and connects directly.

The agent is instructed to report unknown popups or failed notification dismissal rather than claim success. Commands can create real public posts, so review every command before running it. The bundled example scripts are copy-and-adapt samples, not runtime dependencies; check the current CLI --help and replace accounts, media and text first.

  • Run the sau --help commands before using examples
  • Do not commit account state, screenshots or page records to Git

What people use it for

  • Publishing a short vertical video as a Reel with a custom cover image to a dedicated creator account
  • Posting a multi-photo carousel in a fixed order with a caption and tags
  • Recording every publish result to a local JSON file for a team's audit trail
  • Checking that a post created earlier still exists by its link and exact caption text
  • Removing one specific test post after confirming its link, author and text

Frequently asked questions

How do I install the instagram-upload agent skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use or a project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills. You also need the sau CLI from the social-auto-upload project on your PATH.

What do I need to use the instagram-upload skill?

You need the sau command-line tool from the social-auto-upload project installed and on PATH, the Patchright Chrome browser the project uses, and a logged-in Instagram account in a separate web session. An optional proxy can be set with --proxy or SAU_INSTAGRAM_PROXY.

Can this skill schedule Instagram posts?

No. The skill states the current CLI only publishes immediately, and the Instagram web forms used have no scheduling entry. A scheduled request should not be converted into an immediate post.

Is the instagram-upload skill free?

The skill is listed under the MIT licence in its source metadata. The source does not mention prices, so check the project and this directory page for current licence details.

Why did my upload return submission_unknown?

It means the result after submitting was not confirmed. Do not treat it as published or resubmit it straight away. Search the account profile for the post, and if you find it, run verify with its link; if you cannot find it, the source says not finding it does not prove failure, so do not re-upload.

Are there alternatives to this skill for posting to Instagram?

The source only describes this skill and the sau CLI, so it does not compare it with other tools. If you need scheduling, this skill is not suitable because the current CLI cannot schedule posts.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you post Reels or photo carousels to a dedicated Instagram account and want repeatable, recorded commands, or if you are building a scripted workflow around sau. Do not use it for scheduled posting, bulk or permanent deletion, accounts you do not control, or unattended runs without review, since commands can create real public posts.

Download the skill