| File | Date | Author | Commit |
|---|---|---|---|
| .github | 4 days ago |
|
[fc4d98] [Feature] Viewing Stories (#179) |
| 2025-10-23 |
|
[859345] [Release] TS beta (stable) + new demo video + d... | |
| instagram-ts | 4 days ago |
|
[fc4d98] [Feature] Viewing Stories (#179) |
| resource | 2025-02-21 |
|
[97033c] fix import issue |
| tests | 2025-07-22 |
|
[c5ad0b] fix: update path for ruff |
| .gitignore | 2025-08-21 |
|
[0fac17] Added navigation for notify page |
| .pre-commit-config.yaml | 2025-09-17 |
|
[885d9c] test: make formatter, linter, tests and ci work... |
| CONTRIBUTING.md | 2025-10-23 |
|
[859345] [Release] TS beta (stable) + new demo video + d... |
| LICENSE | 2025-02-17 |
|
[a2dd4b] setup |
| README.md | 4 days ago |
|
[fc4d98] [Feature] Viewing Stories (#179) |
| instagram-cli.spec | 2025-03-07 |
|
[f4365c] add emoji data to .spec |
| pyproject.toml | 2025-08-28 |
|
[d55a10] increment version to 1.4.1 |
The ultimate weapon against brainrot. The fastest, lightest, and most portable Instagram client.
$$
\text{Instagram}{\text{CLI}} = \lim{\text{screen time} \to 0} \text{Productivity} \to \infty
$$
https://github.com/user-attachments/assets/3dd65afe-b0d7-4554-9b3c-1e37111ae27d
[!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.
We recommend using the TypeScript client whenever possible. It is more secure, performant, feature-rich, actively developed, and works on all platforms including Windows.
npm install -g @i7m/instagram-cli
For other installation methods, please refer to the TypeScript Client Documentation.
The Python client is the original implementation of
instagram-cli.
pip install instagram-cli
Note 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.
curses-based terminal UI, works well on Linux and macOS, nostalgic UNIX vibes...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 # start chat interface
instagram-cli feed # view posts from people you follow
instagram-cli stories # view stories from people you follow
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 editor
[!TIP]
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 theinstagram-cli auth switch <username>command or run a certain command with a specific account using the--usernameflag.
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>
: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 bottom
[!TIP]
You can quickly include text files or images in a message by using#followed by the file path. For example,#path/to/file.txtor#path/to/image.png.
Usetabandenterto 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 theimage.protocolsetting. Make sure this is supported by your terminal (e.g.sixelanditerm2protocols 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.
Maintainers behind instagram-cli are committed to contributing to the open source community behind frameworks that empower terminal applications, such as ink. This includes direct contributions and our sister projects -- Ink Picture, Ink-native image component and Wax, Ink routing framework.