Skip to main content

tofuref

opentrend.dev reach PyPI - Version AUR - Version Homebrew PyPI - License GitHub Repo stars

A terminal UI for browsing the OpenTofu provider registry. Search providers and resources, read docs, copy required_providers blocks and code snippets — all without leaving the terminal.

Screenshot

Installation

pipx install tofuref

# or with Homebrew
brew install djetelina/tap/tofuref

# or from AUR
yay -S tofuref

Usage

tofuref

Jump straight to a resource (-r) or data source (-d):

tofuref -r keycloak_user
tofuref -d github_actions_environment_secrets
tofuref -r user -p mrparkers/keycloak

Star History

Star History Chart
Controls

Actions

keybindings action
s, / search in the context of providers and resources
u, y context aware copying (using a provider/resource)
v change active provider version
b persistently bookmark an item to prioritize them in sorting when next re-ordered
q, ctrl+q quit tofuref
t toggle table of contents from content window
B from content window, open active page in browser
ctrl+g open GitHub repository for provider
ctrl+s Show stats of provider's github repo

Note: The GitHub functionality tries to use your GitHub token (env or gh cli) to avoid rate limiting.

Focus windows

keybindings action
tab focus next window
shift+tab focus previous window
p focus providers window
r focus resources window
c focus content window
backspace, left arrow focus previous window

Navigate in a window

Navigate with arrows/page up/page down/home/end or your mouse.

VIM keybindings should be also supported in a limited capacity.

Configuration

Default configuration can be overridden by a config file, which can be overridden with env variables.

Config file locations:

  • Unix: ~/.config/tofuref/config.toml
  • macOS: ~/Library/Application Support"/tofuref/config.toml
  • Windows: %USERPROFILE%\AppData\Local\tofuref\tofuref\config.toml

General

Put these as simple key=value in your config.toml.

name description type default env
http_request_timeout Timeout for all http requests (in seconds) float 3.0 TOFUREF_HTTP_REQUEST_TIMEOUT
index_cache_duration_days How long the provider index should be cached for (in days) int 31 TOFUREF_INDEX_CACHE_DURATION_DAYS
markdown_length_target Target markdown length (in characters) to keep tofuref responsive int 40_000 TOFUREF_MARKDOWN_LENGTH_TARGET

Theme

These options belong to a toml section, [theme].

name description type default env
ui Colorscheme for the UI, inspect available themes through command palette (^p) Change theme command string textual-dark (or TEXTUAL_THEME env) TOFUREF_THEME_UI
codeblocks CURRENTLY WORKS ONLY IN COPY MENU The pygments style for code blocks string material TOFUREF_THEME_CODEBLOCKS
borders_style The borders to use for windows, list and showcase of available here string ascii TOFUREF_THEME_BORDERS_STYLE
emoji Whether to display emojis or letters as icons bool true TOFUREF_THEME_EMOJI

Example file

Author's configuration:

[theme]
ui = "dracula"
codeblocks = "dracula"
borders_style = "vkey"

Upgrade

pipx upgrade tofuref
Development

Setup

just init

Testing

Run tests:

just test

Update snapshots for tests if the diff was expected:

just test-update

Running

just run

Undocumented config options

Intended mainly for development.

Force downloading from API to see the first time load experience:

TOFUREF_DISABLE_CACHE=1 uv run tofuref

Show popups with load times for provider/resource listings:

TOFUREF_SHOW_LOAD_TIMES=1 uv run tofuref

Or combine those:

TOFUREF_SHOW_LOAD_TIMES=1 TOFUREF_DISABLE_CACHE=1 uv run tofuref

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tofuref-1.8.1.tar.gz (445.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tofuref-1.8.1-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file tofuref-1.8.1.tar.gz.

File metadata

  • Download URL: tofuref-1.8.1.tar.gz
  • Upload date:
  • Size: 445.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tofuref-1.8.1.tar.gz
Algorithm Hash digest
SHA256 7c6620d86783be041c900b5efb34a37c7ba3212140d9a7b119f22c00310968d8
MD5 efffbfe195b812e3ad07aa21260432c9
BLAKE2b-256 e25652b7cb1bf1a733463484d89b3f4365c96da4700bcd7bbaf0a510ddf01075

See more details on using hashes here.

Provenance

The following attestation bundles were made for tofuref-1.8.1.tar.gz:

Publisher: python-publish.yml on djetelina/tofuref

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tofuref-1.8.1-py3-none-any.whl.

File metadata

  • Download URL: tofuref-1.8.1-py3-none-any.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tofuref-1.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ce221825a1149dd73520460f9b2cfab8f6e36a918e65daa1784e6863101e0ac
MD5 6954c5d4710dc5f55923e589e319bb8f
BLAKE2b-256 6923e16a3b57cf0f2145ad1cb88a27e826fefb651726621c81f045a09e225726

See more details on using hashes here.

Provenance

The following attestation bundles were made for tofuref-1.8.1-py3-none-any.whl:

Publisher: python-publish.yml on djetelina/tofuref

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.8.1 This release

2 files

1.8.0

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.1

2 files

1.0.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page