{"id":13861719,"url":"https://github.com/kazhala/InquirerPy","last_synced_at":"2025-07-14T09:33:19.640Z","repository":{"id":39987685,"uuid":"295703510","full_name":"kazhala/InquirerPy","owner":"kazhala","description":":snake: Python port of Inquirer.js (A collection of common interactive command-line user interfaces)","archived":false,"fork":false,"pushed_at":"2024-03-01T08:19:21.000Z","size":764,"stargazers_count":329,"open_issues_count":32,"forks_count":18,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-05-14T12:33:13.129Z","etag":null,"topics":["cli","command-line","prompt","prompt-toolkit","python"],"latest_commit_sha":null,"homepage":"https://inquirerpy.readthedocs.io","language":"Python","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/kazhala.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-09-15T11:19:32.000Z","updated_at":"2024-06-18T15:16:35.540Z","dependencies_parsed_at":"2024-06-18T15:16:30.044Z","dependency_job_id":"02fcd210-7297-4ca7-8c81-33a59093cd22","html_url":"https://github.com/kazhala/InquirerPy","commit_stats":{"total_commits":721,"total_committers":6,"mean_commits":"120.16666666666667","dds":0.01664355062413314,"last_synced_commit":"714d9068896c1a1f9f4d1354f43f922cd5cfe16d"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kazhala%2FInquirerPy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kazhala%2FInquirerPy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kazhala%2FInquirerPy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kazhala%2FInquirerPy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kazhala","download_url":"https://codeload.github.com/kazhala/InquirerPy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225968866,"owners_count":17553148,"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":["cli","command-line","prompt","prompt-toolkit","python"],"created_at":"2024-08-05T06:01:28.751Z","updated_at":"2024-11-22T21:31:03.335Z","avatar_url":"https://github.com/kazhala.png","language":"Python","readme":"# InquirerPy\n\n[![Test](https://github.com/kazhala/InquirerPy/workflows/Test/badge.svg)](https://github.com/kazhala/InquirerPy/actions?query=workflow%3ATest)\n[![Lint](https://github.com/kazhala/InquirerPy/workflows/Lint/badge.svg)](https://github.com/kazhala/InquirerPy/actions?query=workflow%3ALint)\n[![Build](https://codebuild.ap-southeast-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiUUYyRUIxOXBWZ0hKcUhrbXplQklMemRsTVBxbUk3bFlTdldnRGpxeEpQSXJidEtmVEVzbVNCTE1UR3VoRSt2N0NQV0VaUXlCUzNackFBNzRVUFBBS1FnPSIsIml2UGFyYW1ldGVyU3BlYyI6IloxREtFeWY4WkhxV0NFWU0iLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D\u0026branch=master)](https://ap-southeast-2.console.aws.amazon.com/codesuite/codebuild/378756445655/projects/InquirerPy/history?region=ap-southeast-2\u0026builds-meta=eyJmIjp7InRleHQiOiIifSwicyI6e30sIm4iOjIwLCJpIjowfQ)\n[![Coverage](https://img.shields.io/coveralls/github/kazhala/InquirerPy?logo=coveralls)](https://coveralls.io/github/kazhala/InquirerPy?branch=master)\n[![Version](https://img.shields.io/pypi/pyversions/InquirerPy)](https://pypi.org/project/InquirerPy/)\n[![PyPi](https://img.shields.io/pypi/v/InquirerPy)](https://pypi.org/project/InquirerPy/)\n\nDocumentation: [inquirerpy.readthedocs.io](https://inquirerpy.readthedocs.io/)\n\n\u003c!-- start intro --\u003e\n\n## Introduction\n\n`InquirerPy` is a Python port of the famous [Inquirer.js](https://github.com/SBoudrias/Inquirer.js/) (A collection of common interactive command line user interfaces).\nThis project is a re-implementation of the [PyInquirer](https://github.com/CITGuru/PyInquirer) project, with bug fixes of known issues, new prompts, backward compatible APIs\nas well as more customisation options.\n\n\u003c!-- end intro --\u003e\n\n![Demo](https://github.com/kazhala/gif/blob/master/InquirerPy-demo.gif)\n\n## Motivation\n\n[PyInquirer](https://github.com/CITGuru/PyInquirer) is a great Python port of [Inquirer.js](https://github.com/SBoudrias/Inquirer.js/), however, the project is slowly reaching\nto an unmaintained state with various issues left behind and no intention to implement more feature requests. I was heavily relying on this library for other projects but\ncould not proceed due to the limitations.\n\nSome noticeable ones that bother me the most:\n\n- hard limit on `prompt_toolkit` version 1.0.3\n- various color issues\n- various cursor issues\n- No options for VI/Emacs navigation key bindings\n- Pagination option doesn't work\n\nThis project uses python3.7+ type hinting with focus on resolving above issues while providing greater customisation options.\n\n## Requirements\n\n### OS\n\nLeveraging [prompt_toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit), `InquirerPy` works cross platform for all OS. Although Unix platform may have a better experience than Windows.\n\n### Python\n\n```\npython \u003e= 3.7\n```\n\n## Getting Started\n\nCheckout full documentation **[here](https://inquirerpy.readthedocs.io/)**.\n\n### Install\n\n```sh\npip3 install InquirerPy\n```\n\n### Quick Start\n\n#### Classic Syntax (PyInquirer)\n\n```python\nfrom InquirerPy import prompt\n\nquestions = [\n    {\"type\": \"input\", \"message\": \"What's your name:\", \"name\": \"name\"},\n    {\"type\": \"confirm\", \"message\": \"Confirm?\", \"name\": \"confirm\"},\n]\nresult = prompt(questions)\nname = result[\"name\"]\nconfirm = result[\"confirm\"]\n```\n\n#### Alternate Syntax\n\n```python\nfrom InquirerPy import inquirer\n\nname = inquirer.text(message=\"What's your name:\").execute()\nconfirm = inquirer.confirm(message=\"Confirm?\").execute()\n```\n\n\u003c!-- start migration --\u003e\n\n## Migrating from PyInquirer\n\nMost APIs from [PyInquirer](https://github.com/CITGuru/PyInquirer) should be compatible with `InquirerPy`. If you have discovered more incompatible APIs, please\ncreate an issue or directly update README via a pull request.\n\n### EditorPrompt\n\n`InquirerPy` does not support [editor](https://github.com/CITGuru/PyInquirer#editor---type-editor) prompt as of now.\n\n### CheckboxPrompt\n\nThe following table contains the mapping of incompatible parameters.\n\n| PyInquirer      | InquirerPy      |\n| --------------- | --------------- |\n| pointer_sign    | pointer         |\n| selected_sign   | enabled_symbol  |\n| unselected_sign | disabled_symbol |\n\n### Style\n\nEvery style keys from [PyInquirer](https://github.com/CITGuru/PyInquirer) is present in `InquirerPy` except the ones in the following table.\n\n| PyInquirer | InquirerPy |\n| ---------- | ---------- |\n| selected   | pointer    |\n\nAlthough `InquirerPy` support all the keys from [PyInquirer](https://github.com/CITGuru/PyInquirer), the styling works slightly different.\nPlease refer to the [Style](https://inquirerpy.readthedocs.io/en/latest/pages/style.html) documentation for detailed information.\n\n\u003c!-- end migration --\u003e\n\n## Similar projects\n\n### questionary\n\n[questionary](https://github.com/tmbo/questionary) is a fantastic fork which supports `prompt_toolkit` 3.0.0+ with performance improvement and more customisation options.\nIt's already a well established and stable library.\n\nComparing with [questionary](https://github.com/tmbo/questionary), `InquirerPy` offers even more customisation options in styles, UI as well as key bindings. `InquirerPy` also provides a new\nand powerful [fuzzy](https://inquirerpy.readthedocs.io/en/latest/pages/prompts/fuzzy.html) prompt.\n\n### python-inquirer\n\n[python-inquirer](https://github.com/magmax/python-inquirer) is another great Python port of [Inquirer.js](https://github.com/SBoudrias/Inquirer.js/). Instead of using `prompt_toolkit`, it\nleverages the library `blessed` to implement the UI.\n\nBefore implementing `InquirerPy`, this library came up as an alternative. It's a more stable library comparing to the original [PyInquirer](https://github.com/CITGuru/PyInquirer), however\nit has a rather limited customisation options and an older UI which did not solve the issues I was facing described in the [Motivation](#Motivation) section.\n\nComparing with [python-inquirer](https://github.com/magmax/python-inquirer), `InquirerPy` offers a slightly better UI,\nmore customisation options in key bindings and styles, providing pagination as well as more prompts.\n\n## Credit\n\nThis project is based on the great work done by the following projects \u0026 their authors.\n\n- [PyInquirer](https://github.com/CITGuru/PyInquirer)\n- [prompt_toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit)\n\n## License\n\nThis project is licensed under [MIT](https://github.com/kazhala/InquirerPy/blob/master/LICENSE).\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkazhala%2FInquirerPy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkazhala%2FInquirerPy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkazhala%2FInquirerPy/lists"}