Back to Skills
    🦞

    gram

    Instagram CLI: feeds, posts, profiles, engagement.

    By @arein
    View on GitHub
    SKILL.md
    ---
    name: gram
    description: Instagram CLI for viewing feeds, posts, profiles, and engagement via cookies.
    homepage: https://github.com/arein/gram
    metadata: {"clawdbot":{"emoji":"📸","requires":{"bins":["gram"]},"install":[{"id":"npm","kind":"node","package":"@cyberdrk/gram","bins":["gram"],"label":"Install gram (npm)"}]}}
    ---
    
    # gram 📸
    
    Instagram CLI using REST/GraphQL API + cookie auth.
    
    ## Install
    
    ```bash
    # 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
    
    ```bash
    gram whoami                    # Show logged-in account
    gram check                     # Show credential sources
    gram query-ids --refresh       # Refresh GraphQL query ID cache
    ```
    
    ### Reading Posts
    
    ```bash
    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
    
    ```bash
    gram feed -n 20                # Home feed
    gram explore -n 20             # Explore/discover feed
    ```
    
    ### User Profiles
    
    ```bash
    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
    
    ```bash
    gram search "query"            # Search users, hashtags, places
    gram search "coffee" --type users
    gram search "nyc" --type places
    gram search "#photography" --type hashtags
    ```
    
    ### Engagement Actions
    
    ```bash
    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
    
    ```bash
    --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
    
    ```bash
    --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):
    
    ```json5
    {
      cookieSource: ["safari", "chrome"],
      chromeProfile: "Profile 1",
      timeoutMs: 60000
    }
    ```
    
    Environment variables: `GRAM_TIMEOUT_MS`, `GRAM_COOKIE_TIMEOUT_MS`
    
    ## Troubleshooting
    
    ### Query IDs stale (404 errors)
    ```bash
    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. 📸