--- id: pick version: "2.6.0" license: MIT license_treatment: permissive maintenance: active --- # pick — Pick an option in the terminal with a simple GUI License: permissive · Maintenance: active · Downloads: 539.5K/mo ## What it is and what it does pick is a lightweight Python library for building interactive terminal menus where users select from a list of options using keyboard controls. It wraps the curses library (or optionally blessed) to handle terminal rendering and input, letting you present a list of choices and capture the user's selection—either a single pick or multiple selections if multiselect mode is enabled. The library handles the low-level terminal state management, so you only need to pass a list of options and a title, then read back which item was chosen and its index. The package is designed for CLI applications that need simple, interactive user input without external GUI frameworks. It supports customization like custom selection indicators, default starting positions, minimum selection counts for multiselect mode, and integration with existing curses applications via a screen object parameter. On Windows, it depends on windows-curses to provide the curses interface; on Unix-like systems, curses is typically available in the standard library. Use it for: - Build a CLI tool that prompts users to select a single item from a list of options - Create an interactive menu in a terminal application where users can pick multiple items with space-bar selection - Add a terminal-based configuration wizard that guides users through choices with keyboard navigation - Integrate a selection dialog into an existing curses-based terminal application - Implement a command-line tool that lets users choose from dynamically generated option lists ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. pick provides a Python library to create interactive terminal selection lists where users can browse and choose one or multiple options using keyboard navigation. Yes. pick is a mature, actively maintained library with no known vulnerabilities, permissive MIT licensing, and low install friction. It solves a specific, common problem—interactive terminal selection—cleanly and with minimal dependencies. Install it if you need to add keyboard-driven menu selection to a CLI application. ## Install pip install pick uv add pick poetry add pick ## Installing pick Before you install: Low install friction with a single optional runtime dependency (windows-curses). Active maintenance as of 2026-02-28, supporting Python 3.8 through 3.14. License in practice: MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute pick freely provided you include the license notice. Quickstart: $ pip install pick from pick import pick title = 'Choose an option: ' options = ['Option A', 'Option B', 'Option C'] selected_option, index = pick(options, title) print(selected_option, index) On Windows, windows-curses is required as a runtime dependency; on Unix-like systems, curses is typically built-in. Verify before relying: - Whether the optional blessed backend offers performance or feature advantages over the default curses backend - Compatibility with non-ASCII characters and multi-byte encodings in terminal environments ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 539.5K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags terminal selection menu, interactive cli picker, curses selection list, terminal gui choice, keyboard-driven menu, command line option selector, terminal prompt with choices, cli-ui, terminal-interaction [View on SkillFed](https://skillfed.io/packages/pick) · [View on PyPI](https://pypi.org/project/pick/)