$npx skillfedfor your agent

pick

Pick an option in the terminal with a simple GUI

Worth itPyPI TerminalsReleased Feb 2026539.5K downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — pick-2.6.0-py3-none-any.whl
v2.6.0 · released 2026-02-28 · Python >=3.8 · 1 runtime deps: windows-curses

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.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • On Windows, windows-curses is required as a runtime dependency; on Unix-like systems, curses is typically built-in.
  • 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 · maintenance · safety

MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute pick freely provided you include the license notice.

last release 2026-02-28 (167 days)

0 known vulnerabilities (OSV.dev, 2026-08-14) · 539,545 downloads/mo, #6,108 on PyPI

Verify before relying

$ 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)
  • 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
Same gist for agents: .md · .json

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 on this page. Verify before relying on it.

Worth it

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

pick on PyPI

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.

On Windows, windows-curses is required as a runtime dependency; on Unix-like systems, curses is typically built-in.

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)

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

LicenseMIT permissive
Python supportSupports the current Python release >=3.8
Install frictionLow. Pure-Python wheel
Runtime dependencies
1 package
windows-curses
MaintenanceActively maintained 167 days since the last release
First released
Downloads539,545 / month, #6,108 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Evidence: pick-2.6.0-py3-none-any.whl

Tags

Capabilities
terminal selection menuinteractive cli pickercurses selection listterminal gui choicekeyboard-driven menucommand line option selectorterminal prompt with choices
Topics
cli-uiterminal-interaction
PyPI keywords
terminalgui

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “interactive cli picker”

  • pickpick provides a Python library to create interactive terminal…
  • iterfzfProvides a Python interface to fzf, a command-line fuzzy finder,…
  • django-bootstrap-datepicker-plusProvides Bootstrap-styled date, time, and datetime picker widgets for…

Give your agent the search over MCP, or paste the wish link into any chat.

More Terminals packages

tqdm Worth it
PyPI · Libraries · released Jul 2026

Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.

copyleftpure Python · 3.8+
648.6Mdownloads / mo
rich Worth it
PyPI · Terminals · released Apr 2026

Rich renders styled text, tables, progress bars, syntax highlighting, markdown, and tracebacks to the terminal with minimal code.

MITpure Python · 3.9.0+
613.9Mdownloads / mo
colorama Worth it
PyPI · Terminals · released Oct 2022

Colorama makes ANSI escape sequences for colored terminal text work on Windows by intercepting and converting them to win32 API calls, while passing through unchanged on other platforms.

Install it if you need colored terminal output to work on Windows or want to use ANSI-based libraries portably; skip it only if you target non-Windows platforms…

BSD-3-Clausepure Python
431.0Mdownloads / mo
wcwidth Worth it
PyPI · Libraries · released Jun 2026

Measures the displayed width of Unicode strings in terminals, accounting for wide characters, combining marks, and terminal escape sequences that standard Python string functions mishandle.

Install it if your application formats text for terminals and handles non-ASCII characters.

MITpure Python · 3.8+
306.5Mdownloads / mo
ptyprocess With conditions
PyPI · Terminals · released Dec 2020

Run a subprocess in a pseudo terminal (pty) and interact with its input and output, enabling automation of interactive programs that require terminal features like password prompts or curses-style interfaces.

However, note that it is aging (last release 2020-12-28) and not actively maintained; it works well for its narrow, well-defined purpose but won't receive updates for…

ISCpure Pythonaging
205.2Mdownloads / mo
pexpect With conditions
PyPI · Software Development · released Nov 2023

Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.

ISCpure Pythonaging
200.8Mdownloads / mo

See also simple-term-menu · blessed · bullet · textual-autocomplete · pythondialog · portpicker · streamlit-option-menu · pyfzf · iterfzf · questo