{"id":18919332,"url":"https://github.com/ptytb/pips","last_synced_at":"2025-10-29T17:36:36.353Z","repository":{"id":75471182,"uuid":"99206503","full_name":"ptytb/pips","owner":"ptytb","description":"pips is a PowerShell GUI for pip Python package manager","archived":false,"fork":false,"pushed_at":"2019-06-05T15:05:54.000Z","size":9979,"stargazers_count":15,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-15T12:47:09.718Z","etag":null,"topics":["conda","gui","package-manager","pip","powershell","python","python3","updater"],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ptytb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-03T07:55:33.000Z","updated_at":"2024-01-05T15:29:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff5b930d-b46e-49e3-bd14-17bf9fa0b324","html_url":"https://github.com/ptytb/pips","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ptytb/pips","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptytb%2Fpips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptytb%2Fpips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptytb%2Fpips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptytb%2Fpips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ptytb","download_url":"https://codeload.github.com/ptytb/pips/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptytb%2Fpips/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262697251,"owners_count":23349890,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conda","gui","package-manager","pip","powershell","python","python3","updater"],"created_at":"2024-11-08T10:37:23.352Z","updated_at":"2025-10-29T17:36:31.312Z","avatar_url":"https://github.com/ptytb.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pips\n\n\n**pips** is a GUI for pip, github and conda - Python package browser, written in PowerShell.\n\nThis script helps to keep packages updated.\n\n\n1. Hit Check for Updates\n2. Choose packages\n3. Select *Update* action and hit Execute\n\n\n## features\n\n\n- Dependency-free\n- Search and install from **pip**, **conda** and **github**\n- Looks up for all installed Python distributions\n- Filter and sort packages\n- View package dependecy tree\n- Manage virtual environments\n- Adds firewall rules for venv\n- Manage environment variables for venv\n- Documentation viewer with simple highlighting and browser-like navigation\n- Completion for packages, versions, paths, git tags, PyDoc topics\n- Package name typosquatting check\n\n![Overview](screenshot.png)\n\nInstall packages dialog:\n\n![Fuzzy suggestions](scr-fuzzy-suggestions.gif)\n\n\n## installation\n\n```\ngit clone --recurse-submodules https://github.com/ptytb/pips\npips.cmd\n```\n\n## shortcuts\n\n\n| Keys                             | Action                                                                     |\n| -------------------------------- | -------------------------------------------------------------------------- |\n| /              | Open search text dialog (in Log Pane or PyDoc browser)                                                             |\n| ^+, ^-, ^*              | Zoom document or reset to the original size (in Log Pane or PyDoc browser)                                                             |\n| HJKL, ^B, ^F, g, G             | Vim-style navigation (in Log Pane and PyDoc browser)                                                              |\n| Enter or Space                   | Toggle package selection                                                   |\n| F1 .. F12                        | Choose a current action, in the same order it appears in the dropdown list |\n| Shift+Enter (on package table)   | Execute action for selected packages                                       |\n| Shift+Enter (install window)     | Fuzzy name search                                                          |\n| Ctrl+Enter or Double click       | Open package home page in browser                                          |\n| Escape                           | Clear filter, or Switch between filter and package table                   |\n| Enter (on Filter)                | Focus on packages editable                                                 |\n| Shift+Mouse Hover                | Fetch package details for a tooltip                                        |\n| Ctrl-C (on interpreter combobox) | Copy full python executable path                                           |\n| Delete (on interpreter combobox) | Remove virtual env entry added by user, with confirmation                  |\n\n\n## typosquatting check (still work in progress)\n\n\n**pips** has a feature of protection from [typosquatting](https://en.wikipedia.org/wiki/Typosquatting) of package names.\nIt assists to an unprepared user to explore and install packages instantly, without wasting\ntime to figure out if a package name is spelled properly, or is it popular, genuine or malicious package.\n\nThis is being achieved by using the following algorithms:\n\n1. Search for package name candidates using [Levenshtein distance and BK-tree](https://github.com/ptytb/BK-tree)\n2. Sort and filter these candidates using the index built with following parameters:\n\t- Number of connections with other packages using dependency graph\n\t- Package's first release date\n\t- Number of releases\n\t- Average time interval before the next release\n\t- Average number of downloads per release\n3. Search through the index\n\n   - Search for reverse dependencies using *Adjacency matrix*\n\n\n\u003cs\u003eMore details about how it works [here]().\u003c/s\u003e (TODO)\n\n\n## how to refresh indexes\nThe file *known-packages-bktree.bin* contains all the package names from **PyPI** in the form of BK-tree.\n```PowerShell\ngit clone https://github.com/ptytb/BK-tree\nImport-Module .BK-tree\\bktree\n$bktree = [BKTree]::new()\n$simple = Invoke-WebRequest -Uri 'https://pypi.python.org/simple/'\nforeach ($link in $simple.Links) {\n\t$bktree.add($link.innerText)\n}\n$bktree.SaveArrays('known-packages-bktree.bin')\n```\n\n## trademarks\n\n\nThe Python logo used in this program is a trademark of [The Python Software Foundation](https://www.python.org/psf/trademarks/).\nThis program is written in the PowerShell programming language and has a few pieces of inline Python code, and relies on external Python executables.\n\n\n## similar projects and related links\n\n\n[pypi-cli](https://github.com/sloria/pypi-cli) a command-line interface to the Python Package Index.\n[yip](https://github.com/balzss/yip) a frontend for searching PyPI, a feature rich alternative to pip search\n\n[pipreqs](https://github.com/bndr/pipreqs) a tool to generate requirements.txt file based on imports of any project\n[pigar](https://github.com/Damnever/pigar) a tool to generate requirements file for your Python project\n\n\n#### pip security\n\n\n[safety](https://github.com/pyupio/safety) check your installed dependencies for known security vulnerabilities\n[Pytosquatting](https://www.pytosquatting.org/) fixing typosquatting+namesquatting threats in Python Package Index\n[auditwheel](https://github.com/pypa/auditwheel) auditing and relabeling cross-distribution Linux wheels\n\n\n# License\n\nCopyright, 2018, Ilya Pronin.\nThis code is released under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptytb%2Fpips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fptytb%2Fpips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptytb%2Fpips/lists"}