Skills gram
Instagram CLI for viewing feeds, posts, profiles, and engagement via cookies.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/arein/gram" ~/.claude/skills/openclaw-skills-gram && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/arein/gram" ~/.openclaw/skills/openclaw-skills-gram && rm -rf "$T"
manifest:
skills/arein/gram/SKILL.mdsource content
gram 📸
Instagram CLI using REST/GraphQL API + cookie auth.
Install
# npm/pnpm/bun npm install -g @cyberdrk/gram # One-shot (no install) bunx @cyberdrk/gram whoami
Authentication
gram uses cookie-based auth from your Instagram web session.
Use
--session-id, --csrf-token, and --ds-user-id to pass cookies directly, or --cookie-source for browser cookies.
Run
gram check to see which source is active. For Arc/Brave, use --chrome-profile-dir <path>.
Commands
Account & Auth
gram whoami # Show logged-in account gram check # Show credential sources gram query-ids --refresh # Refresh GraphQL query ID cache
Reading Posts
gram post <shortcode-or-url> # View a post gram <shortcode-or-url> # Shorthand for post gram comments <shortcode> -n 20 # View comments on a post gram likers <shortcode> # View users who liked a post
Feeds
gram feed -n 20 # Home feed gram explore -n 20 # Explore/discover feed
User Profiles
gram user <username> # View user profile gram user @instagram --json # JSON output gram posts <username> -n 20 # User's posts gram following [username] # Users someone follows (defaults to you) gram followers [username] # Someone's followers (defaults to you)
Search
gram search "query" # Search users, hashtags, places gram search "coffee" --type users gram search "nyc" --type places gram search "#photography" --type hashtags
Engagement Actions
gram like <shortcode> # Like a post gram unlike <shortcode> # Unlike a post gram save <shortcode> # Save/bookmark a post gram unsave <shortcode> # Unsave a post gram comment <shortcode> "nice!" # Comment on a post gram follow <username> # Follow a user gram unfollow <username> # Unfollow a user
Output Options
--json # JSON output --json-full # JSON with raw API response in _raw field --plain # No emoji, no color (script-friendly) --no-emoji # Disable emoji --no-color # Disable ANSI colors (or set NO_COLOR=1)
Global Options
--session-id <token> # Instagram sessionid cookie --csrf-token <token> # Instagram csrftoken cookie --ds-user-id <id> # Instagram ds_user_id cookie --cookie-source <source> # Cookie source for browser cookies (repeatable) --chrome-profile <name> # Chrome profile name --chrome-profile-dir <path> # Chrome/Chromium profile dir or cookie DB path --firefox-profile <name> # Firefox profile --timeout <ms> # Request timeout --cookie-timeout <ms> # Cookie extraction timeout
Config File
~/.config/gram/config.json5 (global) or ./.gramrc.json5 (project):
{ cookieSource: ["safari", "chrome"], chromeProfile: "Profile 1", timeoutMs: 60000 }
Environment variables:
GRAM_TIMEOUT_MS, GRAM_COOKIE_TIMEOUT_MS
Troubleshooting
Query IDs stale (404 errors)
gram query-ids --refresh
Cookie extraction fails
- Check browser is logged into Instagram
- Try different
--cookie-source - For Arc/Brave: use
--chrome-profile-dir - Provide cookies manually:
,--session-id
,--csrf-token--ds-user-id
User-agent mismatch errors
- The CLI uses desktop user-agent by default
- If your session was created on mobile, it may fail
- Create a new session by logging in via desktop browser
TL;DR: View feeds, profiles, search, and engage with Instagram via CLI. 📸