# pypi-command-line
`pypi-command-line` is a **colorful**, **powerful**, and **beautiful** command line interface for [pypi.org](https://pypi.org "The Python Package Index (PyPI) is a repository of software for the Python programming language.") that is actively maintained
Detailed Documentation available at <https://wasi-master.github.io/pypi-command-line/>
## Features
- π Extremely intuitive and easy to use.
- π Beautiful UI with pleasant colors *everywhere*.
- π Emojis in responses and errors.
- π° Great Markdown and reStructuredText support for viewing project descriptions.
- π Many features (There are optional parameters for extra information too!).
- See in-depth information about a package including it's download count and github repo stats.
- See beautifully rendered markdown/rst/plain text description of a package
- Search for packages with the same information as pypi and even filter them.
- Search for packages with regex, for example using `flask-.+` will show all flask extensions.
- Browse for a package's URLs and open any of those URLs inside a browser with a beautiful colored link selection menu
- See all the releases of a package, along with when they were made and their size.
- See New projects and new releases [just like PyPI](https://pypi.org#pypi-trending-packages).
- See top 100 of the largest packages [just like PyPI](https://pypi.org/stats/).
- Many more... (
command list includes
[`browse`](https://wasi-master.github.io/pypi-command-line/usage/#browse),
[`information`](https://wasi-master.github.io/pypi-command-line/usage/#information),
[`description`](https://wasi-master.github.io/pypi-command-line/usage/#description),
[`search`](https://wasi-master.github.io/pypi-command-line/usage/#search),
[`wheels`](https://wasi-master.github.io/pypi-command-line/usage/#wheels),
[`releases`](https://wasi-master.github.io/pypi-command-line/usage/#releases),
[`largest-files`](https://wasi-master.github.io/pypi-command-line/usage/#largest-files),
[`regex-search`](https://wasi-master.github.io/pypi-command-line/usage/#regex-search),
[`version`](https://wasi-master.github.io/pypi-command-line/usage/#version),
[`cache-info`](https://wasi-master.github.io/pypi-command-line/usage/#cache-info),
[`cache-refresh`](https://wasi-master.github.io/pypi-command-line/usage/#cache-refresh),
[`cache-clear`](https://wasi-master.github.io/pypi-command-line/usage/#cache-clear),
[`new-packages`](https://wasi-master.github.io/pypi-command-line/usage/#new-packages),
[`new-releases`](https://wasi-master.github.io/pypi-command-line/usage/#new-releases),
[`read-the-docs`](https://wasi-master.github.io/pypi-command-line/usage/#read-the-docs)
)
- π» Cross-platform.
- π€― Open source.
- π Extensive documentation.
## Info
<details open>
<summary>Hide Info</summary>
### Download Count
I've included both [PePy](https://pepy.tech/) and [PyPIStats](https://pypistats.org/) since PyPIStats by default does not include mirrors in it's count<sup>[1](https://pypistats.org/faqs#why-are-the-cumulative-download-counts-different-from-the-sum-of)</sup>. Also see <https://github.com/psincraian/pepy/issues/351>
| Period | From [PePy](https://pepy.tech/project/pypi-command-line) | From [PyPiStats](https://pypistats.org/packages/pypi-command-line) |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Day | | [](https://pypistats.org/packages/pypi-command-line) |
| Week | [](https://pepy.tech/project/pypi-command-line) | [](https://pypistats.org/packages/pypi-command-line) |
| Month | [](https://pepy.tech/project/pypi-command-line) | [](https://pypistats.org/packages/pypi-command-line) |
| Total | [](https://pepy.tech/project/pypi-command-line) |
### Meta
| Title | Badge |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Version | [](https://pypi.org/project/pypi-command-line/) |
| Wheel availability | [](https://pypi.org/project/pypi-command-line/#files) |
| Supported python versions | [](https://pypi.org/project/pypi-command-line/#:~:text=requires%3A%20python%20%3E%3D3.6) |
| Python Implementation | [](https://pypi.org/project/pypi-command-line/#:~:text=programming%20language) |
### GitHub
| Title | Badge |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Number of issues open | [](https://github.com/wasi-master/pypi-command-line/issues) |
| Number of issues closed | [](https://github.com/wasi-master/pypi-command-line/issues?q=is%3Aissue++is%3Aclosed+) |
| Number of pull requests | [](https://github.com/wasi-master/pypi-command-line/pulls) |
| Number of stars | [](https://github.com/wasi-master/pypi-command-line/stargazers) |
### Misc
| Title | Badge |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Documentation status | [](https://wasi-master.github.io/pypi-command-line) |
| Lines of code | [](https://github.com/wasi-master/pypi-command-line/) |
</details>
## Screenshots
<details open>
<summary>Click to hide screenshots</summary>
Command name and parameter autocompletion

Smart error handling

Auto command aliases

Search feature that gives the same results as on PyPI

See detailed information about a project

View the project description right in your terminal with rich Markdown and reStructuredText formatting

View the project readme from github

Search for packages using regular expressions

Open the package's URLs gotten from PyPI

See the project information with classifiers

See the all time largest projects in PyPI

Install autocompletion for the current shell

See the source code for the autocompletion

See a specific page of the search results

</details>
## Installation
- Installing from PyPI (recommended).
```sh
pip install pypi-command-line
```
If you want to also install [speed dependencies](https://wasi-master.github.io/pypi-command-line/notes#speedups)
```sh
pip install "pypi-command-line[speedups]"
```
- Installing from source.
```sh
pip install git+https://github.com/wasi-master/pypi-command-line.git
```
If you want to also install [speed dependencies](https://wasi-master.github.io/pypi-command-line/notes#speedups)
```sh
pip install "pypi-command-line[speedups] @ git+https://github.com/wasi-master/pypi-command-line.git"
```
## Usage
To see all the available commands use:
```sh
pypi --help
```
For more information on a certain command use `pypi <command_name> --help`. For example,
```sh
pypi search --help
```
For a full guide see <https://wasi-master.github.io/pypi-command-line/usage>.
## Alternatives
### [pypi-cli](https://pypi.org/project/pypi-cli/ "pypi-cli")
Now this probably was the best option before `pypi-command-line` came out and it does have some flaws. The `information` command of pypi-cli is pretty minimal, there's no way of seeing the github information, The download count doesn't work properly, the long descriptions aren't formatted at all with pypi-cli. pypi-cli uses the xml-rpc<sup>[<a title="XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism." href="https://en.wikipedia.org/wiki/XML-RPC" target="_blank">?</a>]</sup> API that is discontinued So the search feature doesn't work anymore, . The stat command is broken and is badly formatted for screens that are not ultra wide. And the project is unmaintained and archived
**TL;DR** The `stat` and `search` commands don't work anymore, the information command kinda works but the download count doesn't work, can't see github information, descriptions are raw.
### [pypi-client](https://pypi.org/project/pypi-client/ "pypi-client")
So this can just search for packages on pypi and that's it. Now don't you think that this is inherently bad as per se. So I tried it out immediately and it just got stuck loading the packages, pypi-client gets names of all the packages that exist pypi<sup><a title=Reference href="https://github.com/abahdanovich/pypi-client#:~:text=fetches%20all%20package%20names%20from%20pypi" target="_blank">βΎ</a></sup> which took like 4 mins, then I assume it downloads the github stars data?<sup><a title=Reference href="https://github.com/abahdanovich/pypi-client#:~:text=downloads%20github%20stars" target="_blank">βΎ</a></sup> Which takes like another 3 mins and then It just asked me to authorize with githubβ¦ like why does pypi-client even need authorization from me since github has a public api. And then it showed [this](https://i.imgur.com/D0VJhmZ.png "Demo of the program that has been badly formatted") which isn't really unreadable just badly formatted for screens that are not ultra wide. by changing the font size a bit I could make it look like [this](https://i.imgur.com/usU2AnJ.jpeg "Demo of the program after lowering the font size") which still isn't bad just a bit convoluted. And even at the end of the day the results are manually searched through therefore different from pypi<sup><a title=Example href="https://i.imgur.com/2AuCKuX.jpg" target="_blank">βΎ</a></sup>
**TL;DR:**
Takes too long (β7 mins), Needs github authorization, badly formatted for non ultra wide monitors, searches manually so results are different compared to pypi
### [yolk](https://pypi.org/project/yolk/ "yolk")
Discontinued 9 years ago, only supports python 2. Uses flags instead of subcommands for everything.
**TL;DR:**
Is this really necessary?
### [qypi](https://pypi.org/project/qypi/ "qypi")
So, this library is most likely the best alternative for pypi-command-line. But the output is in json, uses the xml-rpc api for search which is discontinued, the readme command doesn't work for me, the list command doesn't have a progressbar
**TL;DR:**
Output is only in json, without color. The search command doesn't work anymore. Has no progressbar for long running tasks
Raw data
{
"_id": null,
"home_page": "https://wasi-master.github.io/pypi-command-line/",
"name": "pypi-command-line",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "pypi,cli,pypi cli,pypi-cli,pypi command line,pypi-command-line,command line,command-line,pypi command line interface,pypi-command-line-interface,command line interface,command-line-interface,pypi command line application,pypi-command-line-application,command line application,command-line-application,command line interface,command-line-interface,command line application,command-line-application",
"author": "Wasi Master",
"author_email": "arianmollik323@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/fa/62/aea16d01149afd8d13de825abf95cf2c24832db92baed930d302e2ae4c5b/pypi_command_line-1.7.1.tar.gz",
"platform": null,
"description": "# pypi-command-line\r\n\r\n`pypi-command-line` is a **colorful**, **powerful**, and **beautiful** command line interface for [pypi.org](https://pypi.org \"The Python Package Index (PyPI) is a repository of software for the Python programming language.\") that is actively maintained\r\n\r\nDetailed Documentation available at <https://wasi-master.github.io/pypi-command-line/>\r\n\r\n## Features\r\n\r\n- \ud83d\ude80 Extremely intuitive and easy to use.\r\n- \ud83c\udf1f Beautiful UI with pleasant colors *everywhere*.\r\n- \ud83d\ude01 Emojis in responses and errors.\r\n- \ud83d\udcf0 Great Markdown and reStructuredText support for viewing project descriptions.\r\n- \ud83d\ude0e Many features (There are optional parameters for extra information too!).\r\n - See in-depth information about a package including it's download count and github repo stats.\r\n - See beautifully rendered markdown/rst/plain text description of a package\r\n - Search for packages with the same information as pypi and even filter them.\r\n - Search for packages with regex, for example using `flask-.+` will show all flask extensions.\r\n - Browse for a package's URLs and open any of those URLs inside a browser with a beautiful colored link selection menu\r\n - See all the releases of a package, along with when they were made and their size.\r\n - See New projects and new releases [just like PyPI](https://pypi.org#pypi-trending-packages).\r\n - See top 100 of the largest packages [just like PyPI](https://pypi.org/stats/).\r\n - Many more... (\r\n command list includes\r\n [`browse`](https://wasi-master.github.io/pypi-command-line/usage/#browse),\r\n [`information`](https://wasi-master.github.io/pypi-command-line/usage/#information),\r\n [`description`](https://wasi-master.github.io/pypi-command-line/usage/#description),\r\n [`search`](https://wasi-master.github.io/pypi-command-line/usage/#search),\r\n [`wheels`](https://wasi-master.github.io/pypi-command-line/usage/#wheels),\r\n [`releases`](https://wasi-master.github.io/pypi-command-line/usage/#releases),\r\n [`largest-files`](https://wasi-master.github.io/pypi-command-line/usage/#largest-files),\r\n [`regex-search`](https://wasi-master.github.io/pypi-command-line/usage/#regex-search),\r\n [`version`](https://wasi-master.github.io/pypi-command-line/usage/#version),\r\n [`cache-info`](https://wasi-master.github.io/pypi-command-line/usage/#cache-info),\r\n [`cache-refresh`](https://wasi-master.github.io/pypi-command-line/usage/#cache-refresh),\r\n [`cache-clear`](https://wasi-master.github.io/pypi-command-line/usage/#cache-clear),\r\n [`new-packages`](https://wasi-master.github.io/pypi-command-line/usage/#new-packages),\r\n [`new-releases`](https://wasi-master.github.io/pypi-command-line/usage/#new-releases),\r\n [`read-the-docs`](https://wasi-master.github.io/pypi-command-line/usage/#read-the-docs)\r\n )\r\n- \ud83d\udcbb Cross-platform.\r\n- \ud83e\udd2f Open source.\r\n- \ud83d\udcda Extensive documentation.\r\n\r\n## Info\r\n\r\n<details open>\r\n<summary>Hide Info</summary>\r\n\r\n### Download Count\r\n\r\nI've included both [PePy](https://pepy.tech/) and [PyPIStats](https://pypistats.org/) since PyPIStats by default does not include mirrors in it's count<sup>[1](https://pypistats.org/faqs#why-are-the-cumulative-download-counts-different-from-the-sum-of)</sup>. Also see <https://github.com/psincraian/pepy/issues/351>\r\n\r\n| Period | From [PePy](https://pepy.tech/project/pypi-command-line) | From [PyPiStats](https://pypistats.org/packages/pypi-command-line) |\r\n| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\r\n| Day | | [](https://pypistats.org/packages/pypi-command-line) |\r\n| Week | [](https://pepy.tech/project/pypi-command-line) | [](https://pypistats.org/packages/pypi-command-line) |\r\n| Month | [](https://pepy.tech/project/pypi-command-line) | [](https://pypistats.org/packages/pypi-command-line) |\r\n| Total | [](https://pepy.tech/project/pypi-command-line) |\r\n\r\n### Meta\r\n\r\n| Title | Badge |\r\n| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\r\n| Version | [](https://pypi.org/project/pypi-command-line/) |\r\n| Wheel availability | [](https://pypi.org/project/pypi-command-line/#files) |\r\n| Supported python versions | [](https://pypi.org/project/pypi-command-line/#:~:text=requires%3A%20python%20%3E%3D3.6) |\r\n| Python Implementation | [](https://pypi.org/project/pypi-command-line/#:~:text=programming%20language) |\r\n\r\n### GitHub\r\n\r\n| Title | Badge |\r\n| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\r\n| Number of issues open | [](https://github.com/wasi-master/pypi-command-line/issues) |\r\n| Number of issues closed | [](https://github.com/wasi-master/pypi-command-line/issues?q=is%3Aissue++is%3Aclosed+) |\r\n| Number of pull requests | [](https://github.com/wasi-master/pypi-command-line/pulls) |\r\n| Number of stars | [](https://github.com/wasi-master/pypi-command-line/stargazers) |\r\n\r\n### Misc\r\n\r\n| Title | Badge |\r\n| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\r\n| Documentation status | [](https://wasi-master.github.io/pypi-command-line) |\r\n| Lines of code | [](https://github.com/wasi-master/pypi-command-line/) |\r\n\r\n</details>\r\n\r\n## Screenshots\r\n\r\n<details open>\r\n<summary>Click to hide screenshots</summary>\r\n\r\nCommand name and parameter autocompletion\r\n\r\nSmart error handling\r\n\r\nAuto command aliases\r\n\r\nSearch feature that gives the same results as on PyPI\r\n\r\nSee detailed information about a project\r\n\r\nView the project description right in your terminal with rich Markdown and reStructuredText formatting\r\n\r\nView the project readme from github\r\n\r\nSearch for packages using regular expressions\r\n\r\nOpen the package's URLs gotten from PyPI\r\n\r\nSee the project information with classifiers\r\n\r\nSee the all time largest projects in PyPI\r\n\r\nInstall autocompletion for the current shell\r\n\r\nSee the source code for the autocompletion\r\n\r\nSee a specific page of the search results\r\n\r\n\r\n</details>\r\n\r\n## Installation\r\n\r\n- Installing from PyPI (recommended).\r\n\r\n ```sh\r\n pip install pypi-command-line\r\n ```\r\n\r\n If you want to also install [speed dependencies](https://wasi-master.github.io/pypi-command-line/notes#speedups)\r\n\r\n ```sh\r\n pip install \"pypi-command-line[speedups]\"\r\n ```\r\n\r\n- Installing from source.\r\n\r\n ```sh\r\n pip install git+https://github.com/wasi-master/pypi-command-line.git\r\n ```\r\n\r\n If you want to also install [speed dependencies](https://wasi-master.github.io/pypi-command-line/notes#speedups)\r\n\r\n ```sh\r\n pip install \"pypi-command-line[speedups] @ git+https://github.com/wasi-master/pypi-command-line.git\"\r\n ```\r\n\r\n## Usage\r\n\r\nTo see all the available commands use:\r\n\r\n```sh\r\npypi --help\r\n```\r\n\r\nFor more information on a certain command use `pypi <command_name> --help`. For example,\r\n\r\n```sh\r\npypi search --help\r\n```\r\n\r\nFor a full guide see <https://wasi-master.github.io/pypi-command-line/usage>.\r\n\r\n## Alternatives\r\n\r\n### [pypi-cli](https://pypi.org/project/pypi-cli/ \"pypi-cli\")\r\n\r\nNow this probably was the best option before `pypi-command-line` came out and it does have some flaws. The `information` command of pypi-cli is pretty minimal, there's no way of seeing the github information, The download count doesn't work properly, the long descriptions aren't formatted at all with pypi-cli. pypi-cli uses the xml-rpc<sup>[<a title=\"XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism.\" href=\"https://en.wikipedia.org/wiki/XML-RPC\" target=\"_blank\">?</a>]</sup> API that is discontinued So the search feature doesn't work anymore, . The stat command is broken and is badly formatted for screens that are not ultra wide. And the project is unmaintained and archived\r\n\r\n**TL;DR** The `stat` and `search` commands don't work anymore, the information command kinda works but the download count doesn't work, can't see github information, descriptions are raw.\r\n\r\n### [pypi-client](https://pypi.org/project/pypi-client/ \"pypi-client\")\r\n\r\nSo this can just search for packages on pypi and that's it. Now don't you think that this is inherently bad as per se. So I tried it out immediately and it just got stuck loading the packages, pypi-client gets names of all the packages that exist pypi<sup><a title=Reference href=\"https://github.com/abahdanovich/pypi-client#:~:text=fetches%20all%20package%20names%20from%20pypi\" target=\"_blank\">\u203e</a></sup> which took like 4 mins, then I assume it downloads the github stars data?<sup><a title=Reference href=\"https://github.com/abahdanovich/pypi-client#:~:text=downloads%20github%20stars\" target=\"_blank\">\u203e</a></sup> Which takes like another 3 mins and then It just asked me to authorize with github\u2026 like why does pypi-client even need authorization from me since github has a public api. And then it showed [this](https://i.imgur.com/D0VJhmZ.png \"Demo of the program that has been badly formatted\") which isn't really unreadable just badly formatted for screens that are not ultra wide. by changing the font size a bit I could make it look like [this](https://i.imgur.com/usU2AnJ.jpeg \"Demo of the program after lowering the font size\") which still isn't bad just a bit convoluted. And even at the end of the day the results are manually searched through therefore different from pypi<sup><a title=Example href=\"https://i.imgur.com/2AuCKuX.jpg\" target=\"_blank\">\u203e</a></sup>\r\n\r\n**TL;DR:**\r\nTakes too long (\u22487 mins), Needs github authorization, badly formatted for non ultra wide monitors, searches manually so results are different compared to pypi\r\n\r\n### [yolk](https://pypi.org/project/yolk/ \"yolk\")\r\n\r\nDiscontinued 9 years ago, only supports python 2. Uses flags instead of subcommands for everything.\r\n\r\n**TL;DR:**\r\nIs this really necessary?\r\n\r\n### [qypi](https://pypi.org/project/qypi/ \"qypi\")\r\n\r\nSo, this library is most likely the best alternative for pypi-command-line. But the output is in json, uses the xml-rpc api for search which is discontinued, the readme command doesn't work for me, the list command doesn't have a progressbar\r\n\r\n**TL;DR:**\r\nOutput is only in json, without color. The search command doesn't work anymore. Has no progressbar for long running tasks\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A beautiful command line interface for the Python Package Index",
"version": "1.7.1",
"project_urls": {
"Bug Tracker": "https://github.com/wasi-master/pypi-command-line/issues",
"Documentation": "https://wasi-master.github.io/pypi-command-line",
"Homepage": "https://wasi-master.github.io/pypi-command-line/",
"Say Thanks": "https://saythanks.io/to/wasi-master",
"Source": "https://github.com/wasi-master/pypi-command-line"
},
"split_keywords": [
"pypi",
"cli",
"pypi cli",
"pypi-cli",
"pypi command line",
"pypi-command-line",
"command line",
"command-line",
"pypi command line interface",
"pypi-command-line-interface",
"command line interface",
"command-line-interface",
"pypi command line application",
"pypi-command-line-application",
"command line application",
"command-line-application",
"command line interface",
"command-line-interface",
"command line application",
"command-line-application"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "49b7baff3964e5f78bac86a95623d20bfb49f116043a2ead4623e3db3d941d76",
"md5": "5c02fc4c9f961673bfa017961f4c768f",
"sha256": "3ec30939f342b99791a8bc04b84bd3b5d81e53738be462c3ccc17c6ccf254788"
},
"downloads": -1,
"filename": "pypi_command_line-1.7.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5c02fc4c9f961673bfa017961f4c768f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 21493,
"upload_time": "2023-10-04T08:27:14",
"upload_time_iso_8601": "2023-10-04T08:27:14.804821Z",
"url": "https://files.pythonhosted.org/packages/49/b7/baff3964e5f78bac86a95623d20bfb49f116043a2ead4623e3db3d941d76/pypi_command_line-1.7.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fa62aea16d01149afd8d13de825abf95cf2c24832db92baed930d302e2ae4c5b",
"md5": "be42c595a2d2374f4be3ee64761ddb0b",
"sha256": "954ae9e5afff6c28df627c3596a60ecd5ec0bdc761477b6ba7c34cac396c42be"
},
"downloads": -1,
"filename": "pypi_command_line-1.7.1.tar.gz",
"has_sig": false,
"md5_digest": "be42c595a2d2374f4be3ee64761ddb0b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 27762,
"upload_time": "2023-10-04T08:27:16",
"upload_time_iso_8601": "2023-10-04T08:27:16.738964Z",
"url": "https://files.pythonhosted.org/packages/fa/62/aea16d01149afd8d13de825abf95cf2c24832db92baed930d302e2ae4c5b/pypi_command_line-1.7.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-04 08:27:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wasi-master",
"github_project": "pypi-command-line",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "pypi-command-line"
}