Skip to main content

curses-fzf

codecov documentation PyPI

About

A pure Python implementation of fzf (fuzzyfinder) using the curses library - no external fzf binary required.

Although there are many good fzf libraries available, they all have one thing in common: They are wrappers to the shell tool fzf.

This is not inherently bad, but has one major downside: It does not integrate well into Python code.

  • What if you want to fuzzy-find over a list of dicts or objects?
  • What if you want to pre-select items (e.g. tags already set for a resource, that could be unset while selecting new ones)?
  • What if you want to display additional information along with the entry to fuzzy-find on?
  • What if you want to customize the fuzzy-finder algorithm?

To all of the above questions this module is the answer.

What can it do?

It provides a curses-based TUI for fuzzy-searching lists of any item type. Perfect for CLI tools needing interactive filtering of user options.

Image: simple elements with search query

It allows for single or multi select, preview functions, preselection of items and more. The module is designed to be highly customizable to fit your use-case: Provide your own scoring logic, remap keys or add your own functions to keybindings, change the color theme, ...

Image: multi select dicts with simple preview

It is easy and straight-forward to use:

from curses_fzf import FuzzyFinder, CursesFzfAborted

data = ["apple", "banana", "grape", "orange", "watermelon"]
fzf = FuzzyFinder(multi=True)
try:
    result = fzf.find(data)
except CursesFzfAborted:
    print("Fuzzy finder aborted by user.")
else:
    for item in result:
        print(item)

See documentation - basic usage for further details.

Metadata

Release files for curses-fzf 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for curses-fzf 0.3.0
File Size Uploaded
curses_fzf-0.3.0.tar.gz 110.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for curses-fzf 0.3.0
File Interpreter ABI Platform
curses_fzf-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 129.9 kB

Release files / curses_fzf-0.3.0.tar.gz

Download URL curses_fzf-0.3.0.tar.gz
Size 110.1 kB
Tags Source
SHA-256 checksum
How to use checksums
64f076dc421cb2be417c67e6e5e2fde864ebc8424db8c90c5f45045ff2d9202c
BLAKE2b-256 checksum
How to use checksums
4c73ae166e2061990c8a0411c296e388862e152b7ee359d70ffbffb4329c2054
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 8, 2026.

Transparency log

Release files / curses_fzf-0.3.0-py3-none-any.whl

Download URL curses_fzf-0.3.0-py3-none-any.whl
Size 19.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cddb8b9fd543b62d3f1f5b790691926a4d0117b46d117e89dc639ff6d4bb8c93
BLAKE2b-256 checksum
How to use checksums
8b897b6b5ad0efc766773e6a26136da0cf49c58fc2b0dc00f65a732a4b8f0940
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page