Modular CLI Documentation Fuzzy Finder

Jun 14, 2019

Fuzzy Search documentation from the CLI.

See it in action here

Disclaimer This tool was built to learn FZF capabilities. Feel free to use it or extend it.


doc-fzf ansible
doc-fzf ansible -q yum


pip3 install doc-fzf

Verify your installation:

doc-fzf -h

usage: [-h] [-q QUERY] module_name


positional arguments:
module_name  Name of the module to search

optional arguments:
-h, --help   show this help message and exit
-q QUERY     Query the docs

Extending Doc-FZF

doc-fzf is a modular application. It can load modules at runtime that scrap websites in any way you like.

Any module should always contain:

  • class name must always be Screapper(FZFDoc)
  • self.documentation_url attribute
  • def get_documentation(self): function that must always return a tuple (“url”, “description”)
from doc_fzf.pyfzf import FZFDoc

class Scrapper(FZFDoc):
    def __init__(self):
        self.base_url = ""
        self.documentation_url = "{0}/py-modindex.html".format(self.base_url)
        FZFDoc.__init__(self, self.documentation_url)

    def get_documentation(self):
        """ Return a tuple of (url, description)
        docs = get_online_documentation()
        for doc in docs:
            yield (doc.url, doc.description)

Here is the ansible documentation example

Road Map

  • Module definition
  • FZFDoc base class
  • File system cache layer
  • Load dynamic modules