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 $$
ts-beta-demo.mp4Warning
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.
- We transform Instagram from a brainrot hell into productivity tool
- We allow you to focus on meaningful conversations
- We celebrate the art and simplicity of terminal UI (TUI)
Tip
Use Instagram with 100% keyboard control - no mouse clicks or touchscreen taps needed! Perfect for developers and Linux users who love staying on the keyboard 🤣
We recommend using the TypeScript client whenever possible. It is more secure, performant, feature-rich, actively developed, and works on all platforms including Windows.
For 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 chatting, in-terminal image rendering
- Leverages realtime MQTT-based protocol used by Instagram app for instant notifications and chat
- 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.
The simplest way to get started is to install the package from PyPI if you have Python installed:
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.
- 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:
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 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:
Tip
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:
| 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.
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.
.png)
