instagram-cli


Nameinstagram-cli JSON
Version 1.2.9 PyPI version JSON
download
home_pageNone
SummaryUse Instagram in the terminal, the end of brainrot is here
upload_time2025-02-21 05:08:02
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords instagram cli terminal social-media tui command-line instagram-api
VCS
bugtrack_url
requirements typer instagrapi art pydantic pyyaml pillow requests emoji windows-curses
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Instagram CLI

The ultimate weapon against brainrot.

![PyPI](https://img.shields.io/pypi/v/instagram-cli)
![Python](https://img.shields.io/pypi/pyversions/instagram-cli)
[![MIT license](https://img.shields.io/github/license/supreme-gg-gg/instagram-cli.svg)](https://github.com/supreme-gg-gg/instagram-cli/blob/main/LICENSE)
[![GitHub issues](https://img.shields.io/github/issues/supreme-gg-gg/instagram-cli.svg)](https://github.com/supreme-gg-gg/instagram-cli/issues)

<!-- ![LOC](https://tokei.rs/b1/github/supreme-gg-gg/instagram-cli?category=code) -->

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$`

![sample1](https://github.com/supreme-gg-gg/instagram-cli/blob/main/resource/latex_sample_1.png?raw=true)

```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}$
```

![sample2](https://github.com/supreme-gg-gg/instagram-cli/blob/main/resource/latex_sample.png?raw=true)

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![PyPI](https://img.shields.io/pypi/v/instagram-cli)\n![Python](https://img.shields.io/pypi/pyversions/instagram-cli)\n[![MIT license](https://img.shields.io/github/license/supreme-gg-gg/instagram-cli.svg)](https://github.com/supreme-gg-gg/instagram-cli/blob/main/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/supreme-gg-gg/instagram-cli.svg)](https://github.com/supreme-gg-gg/instagram-cli/issues)\n\n<!-- ![LOC](https://tokei.rs/b1/github/supreme-gg-gg/instagram-cli?category=code) -->\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![sample1](https://github.com/supreme-gg-gg/instagram-cli/blob/main/resource/latex_sample_1.png?raw=true)\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![sample2](https://github.com/supreme-gg-gg/instagram-cli/blob/main/resource/latex_sample.png?raw=true)\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"
}
        
Elapsed time: 0.48048s