# Instagram CLI
The ultimate weapon against brainrot.


[](https://github.com/supreme-gg-gg/instagram-cli/blob/main/LICENSE)
[](https://github.com/supreme-gg-gg/instagram-cli/issues)
<!--  -->
https://github.com/user-attachments/assets/e9206e14-8141-49b2-8e2c-17c76402e3cb
The world's first open-source CLI (command line interface) + Terminal UI client for Instagram.
## What does it do?
- We transform Instagram from a brainrot hell into productivity tool
- We give back control of social media to the user
- We enable user to do more with less
- We celebrate the art and simplicity of terminal UI
- We preserve the core of social media and protect your attention
> 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 🤣
## Installation
The simplest way to get started is to install the package from PyPI if you have Python installed:
```bash
pip install instagram-cli
```
If you do not have Python installed, you can download and install it from the [official website](https://www.python.org/downloads/).
### Installation from Source
```bash
git clone https://github.com/supreme-gg-gg/instagram-cli.git
cd instagram-cli
pip install .
```
### Docker Installation
You must have Docker installed to use this method. If you do not have Docker installed, you can download and install it from the [official website](https://docs.docker.com/get-docker/).
Build and run Docker image from source:
```bash
git clone https://github.com/supreme-gg-gg/instagram-cli.git
cd instagram-cli
docker build -t instagram-cli .
docker run -it instagram-cli
```
Alternatively, you can pull the pre-built Docker image from Docker Hub (this will available very soon):
```bash
docker run -it supreme-gg-gg/instagram-cli
```
### Pre-built Executables
> NOTE: This option is HIGHLY UNRECOMMENDED unless the other methods do not work for you.
If you do not want to install Python, you can download the pre-built executables from the [releases page](https://github.com/supreme-gg-gg/instagram-cli/releases).
After downloading, the executable can be run from the command line:
```bash
./instagram-cli [OPTIONS] command [ARGS] # for macOS and Linux
instagram-cli.exe [OPTIONS] command [ARGS] # for Windows
```
## Commands
The following commands will be available after installing the package:
```bash
instagram # display title art
instagram --help # view available commands
# Authentication
instagram auth login -u # login with username and password
instagram auth logout # logout and removes session
# Chat Features
instagram chat start # start chat interface
instagram chat search -u <username> # search and open chat by username
instagram chat search -t <text> # search and open chat by chat title
# Utility Commands
instagram notify # view notifications (inbox, followers, mentions)
instagram schedule ls # view scheduled messages
instagram stats --days <last_n_days> # view usage analytics (default: 14 days)
instagram config --get --set --edit # manage custom configuration
instagram cleanup -t # cleanup media and session cache files
```
> All searches in the package uses a custom fuzzy matching based on ratcliff/obershelp similarity algorithm. This means chat search and emoji search will be more flexible and forgiving.
## Chat Commands
The chat interface is the main feature of this package. It allows you to interact with your Instagram chats in a terminal-based interface. All commands have the following syntax:
```bash
:command <args> <long-args>
```
Long arguments should have special enclosures such as `"..."` for strings with spaces and `$...$` for LaTeX code.
- `:help`: view available commands
- `:quit`: quit the application
- `:back`: back to chat menu for selecting chat
- `:reply`: reply mode to select and reply to messages
- `:scrollup`or `:k`: scroll up in chat messages
- `:scrolldown` or `:j`: scroll down in chat messages
- `:schedule <time> "<message>"`: schedule a message, see [scheduling messages](#scheduling-messages)
- `:upload`: upload media using the file navigator
- `:upload <path>`: upload media (photo or video) directly from path
- `:view <index>`: view and download media at index or open URL directly in browser
- `:latex $<expr>$`: render and send LaTeX code as image, see [latex](#latex)
### Emoji
Text with emoji syntax will be rendered as emoji. For example,
`This is an emoji :thumbsup:`
will be rendered as
`This is an emoji 👍`
This does not have to be an exact match with the emoji name. For example, `:thumbsup:` can also be written as `:thumbs_up:`.
### LaTeX
We support LaTeX rendering and sending as images in the chat. For example,
`:latex $\frac{a}{b} + c = d$`

```bash
:latex $\left( \begin{bmatrix} a & b \\ c & d \end{bmatrix} \cdot \begin{bmatrix} e & f \\ g & h \end{bmatrix} \right) + \begin{bmatrix} i & j \\ k & l \end{bmatrix}^{-1} \times \left( \int_0^1 x^2 \, dx \right) + \begin{bmatrix} \sin(\theta) & \cos(\theta) \\ \tan(\phi) & \ln(\psi) \end{bmatrix}$
```

Please note that the LaTeX code **_MUST_** be enclosed in `$` symbols.
You can choose to render with [online API](https://latex.codecogs.com) (default) or local LaTeX installation such as TeX Live, MiKTeX, etc. You can set the rendering method with `instagram config --set latex_rendering_method <online|local>`.
### Scheduling Messages
You can schedule messages to be sent at a later time. The syntax is as follows:
```bash
:schedule <Optional[Y-m-d] HH:MM> "<message>"
```
If the date is not provided, the message will be scheduled for the current day. Input format must be either YYYY-MM-DD HH:MM or HH:MM. **The time must be in 24-hour format, otherwise you might run into warnings for scheduling messages in the past.**
> If you exit the app, the scheduled messages will not be sent but will be restored when you open the app again. You will be prompted by a notification to decide whether to send the scheduled messages or not. We might include system background service in the future to send scheduled messages even when the app is closed.
### Markdown and Code Blocks
Coming soon!
Raw data
{
"_id": null,
"home_page": null,
"name": "instagram-cli",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "instagram, cli, terminal, social-media, tui, command-line, instagram-api",
"author": null,
"author_email": "Jet Chiang <jetjiang.ez@gmail.com>, James Zheng <endernoke@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/30/50/e21505a7e04735c52fb98ff5331861289e90be796fbae869d93fcf5c8ecb/instagram_cli-1.2.9.tar.gz",
"platform": null,
"description": "# Instagram CLI\n\nThe ultimate weapon against brainrot.\n\n\n\n[](https://github.com/supreme-gg-gg/instagram-cli/blob/main/LICENSE)\n[](https://github.com/supreme-gg-gg/instagram-cli/issues)\n\n<!--  -->\n\nhttps://github.com/user-attachments/assets/e9206e14-8141-49b2-8e2c-17c76402e3cb\n\nThe world's first open-source CLI (command line interface) + Terminal UI client for Instagram.\n\n## What does it do?\n\n- We transform Instagram from a brainrot hell into productivity tool\n- We give back control of social media to the user\n- We enable user to do more with less\n- We celebrate the art and simplicity of terminal UI\n- We preserve the core of social media and protect your attention\n\n> 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 \ud83e\udd23\n\n## Installation\n\nThe simplest way to get started is to install the package from PyPI if you have Python installed:\n\n```bash\npip install instagram-cli\n```\n\nIf you do not have Python installed, you can download and install it from the [official website](https://www.python.org/downloads/).\n\n### Installation from Source\n\n```bash\ngit clone https://github.com/supreme-gg-gg/instagram-cli.git\ncd instagram-cli\npip install .\n```\n\n### Docker Installation\n\nYou must have Docker installed to use this method. If you do not have Docker installed, you can download and install it from the [official website](https://docs.docker.com/get-docker/).\n\nBuild and run Docker image from source:\n\n```bash\ngit clone https://github.com/supreme-gg-gg/instagram-cli.git\ncd instagram-cli\ndocker build -t instagram-cli .\ndocker run -it instagram-cli\n```\n\nAlternatively, you can pull the pre-built Docker image from Docker Hub (this will available very soon):\n\n```bash\ndocker run -it supreme-gg-gg/instagram-cli\n```\n\n### Pre-built Executables\n\n> NOTE: This option is HIGHLY UNRECOMMENDED unless the other methods do not work for you.\n\nIf you do not want to install Python, you can download the pre-built executables from the [releases page](https://github.com/supreme-gg-gg/instagram-cli/releases).\n\nAfter downloading, the executable can be run from the command line:\n\n```bash\n./instagram-cli [OPTIONS] command [ARGS] # for macOS and Linux\ninstagram-cli.exe [OPTIONS] command [ARGS] # for Windows\n```\n\n## Commands\n\nThe following commands will be available after installing the package:\n\n```bash\ninstagram # display title art\ninstagram --help # view available commands\n\n# Authentication\ninstagram auth login -u # login with username and password\ninstagram auth logout # logout and removes session\n\n# Chat Features\ninstagram chat start # start chat interface\ninstagram chat search -u <username> # search and open chat by username\ninstagram chat search -t <text> # search and open chat by chat title\n\n# Utility Commands\ninstagram notify # view notifications (inbox, followers, mentions)\ninstagram schedule ls # view scheduled messages\ninstagram stats --days <last_n_days> # view usage analytics (default: 14 days)\ninstagram config --get --set --edit # manage custom configuration\ninstagram cleanup -t # cleanup media and session cache files\n```\n\n> All searches in the package uses a custom fuzzy matching based on ratcliff/obershelp similarity algorithm. This means chat search and emoji search will be more flexible and forgiving.\n\n## Chat Commands\n\nThe chat interface is the main feature of this package. It allows you to interact with your Instagram chats in a terminal-based interface. All commands have the following syntax:\n\n```bash\n:command <args> <long-args>\n```\n\nLong arguments should have special enclosures such as `\"...\"` for strings with spaces and `$...$` for LaTeX code.\n\n- `:help`: view available commands\n- `:quit`: quit the application\n- `:back`: back to chat menu for selecting chat\n- `:reply`: reply mode to select and reply to messages\n- `:scrollup`or `:k`: scroll up in chat messages\n- `:scrolldown` or `:j`: scroll down in chat messages\n- `:schedule <time> \"<message>\"`: schedule a message, see [scheduling messages](#scheduling-messages)\n- `:upload`: upload media using the file navigator\n- `:upload <path>`: upload media (photo or video) directly from path\n- `:view <index>`: view and download media at index or open URL directly in browser\n- `:latex $<expr>$`: render and send LaTeX code as image, see [latex](#latex)\n\n### Emoji\n\nText with emoji syntax will be rendered as emoji. For example,\n\n`This is an emoji :thumbsup:`\n\nwill be rendered as\n\n`This is an emoji \ud83d\udc4d`\n\nThis does not have to be an exact match with the emoji name. For example, `:thumbsup:` can also be written as `:thumbs_up:`.\n\n### LaTeX\n\nWe support LaTeX rendering and sending as images in the chat. For example,\n\n`:latex $\\frac{a}{b} + c = d$`\n\n\n\n```bash\n:latex $\\left( \\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix} \\cdot \\begin{bmatrix} e & f \\\\ g & h \\end{bmatrix} \\right) + \\begin{bmatrix} i & j \\\\ k & l \\end{bmatrix}^{-1} \\times \\left( \\int_0^1 x^2 \\, dx \\right) + \\begin{bmatrix} \\sin(\\theta) & \\cos(\\theta) \\\\ \\tan(\\phi) & \\ln(\\psi) \\end{bmatrix}$\n```\n\n\n\nPlease note that the LaTeX code **_MUST_** be enclosed in `$` symbols.\n\nYou can choose to render with [online API](https://latex.codecogs.com) (default) or local LaTeX installation such as TeX Live, MiKTeX, etc. You can set the rendering method with `instagram config --set latex_rendering_method <online|local>`.\n\n### Scheduling Messages\n\nYou can schedule messages to be sent at a later time. The syntax is as follows:\n\n```bash\n:schedule <Optional[Y-m-d] HH:MM> \"<message>\"\n```\n\nIf the date is not provided, the message will be scheduled for the current day. Input format must be either YYYY-MM-DD HH:MM or HH:MM. **The time must be in 24-hour format, otherwise you might run into warnings for scheduling messages in the past.**\n\n> If you exit the app, the scheduled messages will not be sent but will be restored when you open the app again. You will be prompted by a notification to decide whether to send the scheduled messages or not. We might include system background service in the future to send scheduled messages even when the app is closed.\n\n### Markdown and Code Blocks\n\nComing soon!\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Use Instagram in the terminal, the end of brainrot is here",
"version": "1.2.9",
"project_urls": {
"Homepage": "https://github.com/supreme-gg-gg/instagram-cli"
},
"split_keywords": [
"instagram",
" cli",
" terminal",
" social-media",
" tui",
" command-line",
" instagram-api"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "31e76ce8102472f7ca03d258fb3f0fd5ef727b731eebb6a07e5fcbc1fcab27c3",
"md5": "44761c56949d129667661a1c46b4be53",
"sha256": "cd9f4c9aac38b28e86453060c32b7919fbd6b08b8fb757a062b766f51524a153"
},
"downloads": -1,
"filename": "instagram_cli-1.2.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "44761c56949d129667661a1c46b4be53",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 48358,
"upload_time": "2025-02-21T05:08:00",
"upload_time_iso_8601": "2025-02-21T05:08:00.545057Z",
"url": "https://files.pythonhosted.org/packages/31/e7/6ce8102472f7ca03d258fb3f0fd5ef727b731eebb6a07e5fcbc1fcab27c3/instagram_cli-1.2.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3050e21505a7e04735c52fb98ff5331861289e90be796fbae869d93fcf5c8ecb",
"md5": "9f62a929101c1f8f9bac6c7539ca4722",
"sha256": "25dbe5e0544c0eb62519b9341e23407cc40f6f7552c0a1e58a92a0fc9ae26422"
},
"downloads": -1,
"filename": "instagram_cli-1.2.9.tar.gz",
"has_sig": false,
"md5_digest": "9f62a929101c1f8f9bac6c7539ca4722",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 44031,
"upload_time": "2025-02-21T05:08:02",
"upload_time_iso_8601": "2025-02-21T05:08:02.826904Z",
"url": "https://files.pythonhosted.org/packages/30/50/e21505a7e04735c52fb98ff5331861289e90be796fbae869d93fcf5c8ecb/instagram_cli-1.2.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-21 05:08:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "supreme-gg-gg",
"github_project": "instagram-cli",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "typer",
"specs": []
},
{
"name": "instagrapi",
"specs": []
},
{
"name": "art",
"specs": []
},
{
"name": "pydantic",
"specs": []
},
{
"name": "pyyaml",
"specs": []
},
{
"name": "pillow",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "emoji",
"specs": []
},
{
"name": "windows-curses",
"specs": []
}
],
"lcname": "instagram-cli"
}