The ultimate weapon against brainrot. The fastest, lightest, and most portable Instagram client.
ts-beta-demo.mp4
Warning
This project is not affiliated with, authorized, or endorsed by Instagram. This is an independent and unofficial project. Using it might violate Meta's Terms of Service. Use at your own risk.
Empower yourself to become a 10x Instagrammer by minimizing distractions, enabling 100% keyboard control, and accessing it from any terminal — whether in your VSCode editor or your Linux server.
- Chat with your friends without falling into endless brainrot
- Stay updated & connected without being exploited for your attention
- Focus on meaningful conversations and be productive
- Full keyboard navigation and shortcuts, no mouse, no touchscreens
- Celebrate the art and simplicity of terminal UI (TUI)
We recommend using the TypeScript client whenever possible. It is more secure, performant, feature-rich, actively developed, and works on all platforms including Windows.
brew tap supreme-gg-gg/tap
brew install instagram-cliThe formula is available here.
npm install -g @i7m/instagram-cliFor other installation methods, please refer to the TypeScript Client Documentation.
- Full support for Windows, Linux, and macOS, modern React-based UI
- Developer-friendly shortcuts, viewing feed and stories, in-terminal image rendering
- Leverages realtime MQTT-based protocol used by Instagram app for messaging
- Highly performant and much faster than your GUI browser or touchscreen app
- Works well in all terminal emulators, including VSCode Integrated Terminal
The Python client is the original implementation of
instagram-cli.
pip install instagram-cliNote that Python links to the instagram command, while TypeScript links to instagram-cli.
Caution
We do not recommend using the TypeScript and Python client simultaneously with the same account to reduce the risk of account bans. We recommend using the TypeScript client when possible since it is much less likely to trigger Instagram's anti-bot mechanisms.
- Classic
curses-based terminal UI, works well on Linux and macOS, nostalgic UNIX vibes... - Extends Instagram with powerful plugins like LaTeX rendering, chat summarisation (e.g. Ollama)
For more information about the Python client, please refer to the Python Client Documentation. The following documentation is for the Typescript client only.
The following commands will be available after installing the package:
instagram-cli # display title art
instagram-cli --help # view available commands
# Authentication
instagram-cli auth login --username # login with username and password
instagram-cli auth logout # logout and removes session
instagram-cli auth switch <username> # switch to another saved account
instagram-cli auth whoami # display current default user
# Core features
instagram-cli chat -u <username> -t <title> # start chat interface
instagram-cli feed # view posts from people you follow
instagram-cli stories # view stories from people you follow (BETA)
instagram-cli notify # view notifications (inbox, followers, mentions)
# Modify configuration
instagram-cli config # lists all config
instagram-cli config <key> <value> # set config key to value
instagram-cli config edit # open config file in editorTip
You can easily manage multiple accounts with Instagram CLI!
Your login for each account will be saved locally and you can switch between them using the instagram-cli auth switch <username> command or run a certain command with a specific account using the --username flag.
Inside the chat interface and after selecting a thread, you can navigate all interface with 100% keyboard support. When messaging, the following commands are available:
# Select messages to perform actions
:select
:react <emoji | :emoji_name:>
:reply <text>
:unsend
# Media Handling
:upload <path-to-image-or-video>
# Download command coming soon...
# Navigation
:k # go up
:K # go to top
:j # go down
:J # go to bottomTip
You can quickly include text files or images in a message by using # followed by the file path. For example, #path/to/file.txt or #path/to/image.png.
Use tab and enter to autocomplete file paths. You can include emojis in messages with :emoji_name: e.g. :thumbsup: = 👍 (with fuzzy matching).
You can view and modify configuration with instagram-cli config. The configuration file is located at ~/.instagram-cli/config.ts.yaml. The following are common configuration options:
| Key | Type | Default | Description |
|---|---|---|---|
| image.protocol | string | "halfBlock" | Protocol for rendering images. Options: "ascii", "halfBlock", "braille", "kitty", "iterm2", "sixel", or "". |
| feed.feedType | string | "list" | Layout of feed display. Options: "timeline", "list", "". |
Note
We automatically select the best image protocol based on your terminal. If you experience issues with image rendering, try changing the image.protocol setting. Make sure this is supported by your terminal (e.g. sixel and iterm2 protocols won't work in Kitty).
We welcome contributors! Please see the comprehensive CONTRIBUTING.md file for details on how to get started, create issues, and submit pull requests. It is very important that you follow these instructions because we manage two different clients in the same repository. Instagram CLI is NOT meant to be used for bot-behaviours, we will not accept contributions that add such features.
Occasionally, Instagram may update their API or protocols which can cause certain features to break. If you encounter any issues, please report them on our GitHub Issues page. Make sure to attach the relevant log files located at ~/.instagram-cli/logs/ to help us diagnose and fix the problem quickly.
We contributed the following extensions to the Ink ecosystem for building Terminal UI apps: