tofuref


Nametofuref JSON
Version 1.4.0 PyPI version JSON
download
home_pageNone
SummaryTUI for OpenTofu provider registry.
upload_time2025-07-30 19:50:42
maintainerNone
docs_urlNone
authorDavid Jetelina
requires_python>=3.10
licenseNone
keywords infra opentofu platform sre terraform tofu tool tui
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # tofuref

[![PyPI - Version](https://img.shields.io/pypi/v/tofuref)](https://pypi.org/project/tofuref/)
![PyPI - License](https://img.shields.io/pypi/l/tofuref)
![PyPI - Downloads](https://img.shields.io/pypi/dm/tofuref)
![GitHub Repo stars](https://img.shields.io/github/stars/DJetelina/tofuref?style=flat&logo=github)

TUI for OpenTofu provider registry.

![Screenshot](https://github.com/djetelina/tofuref/blob/main/tests/__snapshots__/test_snapshots/test_welcome.svg?raw=true)

## Installation

```bash
pipx install tofuref
```

## Usage

Run the application:

```bash
tofuref
```

### 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+l`      | display **log** window                                                           |
| `ctrl+g`      | open **GitHub** repository for provider                                          |
| `ctrl+s`      | Show **stats** of provider's github repo                                         |

#### 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   |
| `f`         | toggle **fullscreen** mode |

### 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` |
| fullscreen_init_threshold | Threshold of terminal width under which tofuref should start in fullscreen mode | int   | 125     | `TOFUREF_FULLSCREEN_INIT_THRESHOLD` |

#### 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](https://pygments.org/styles/) for code blocks                             | string | material                              | `TOFUREF_THEME_CODEBLOCKS`    |
| borders_style | The borders to use for windows, list and showcase of available [here](https://textual.textualize.io/styles/border/#all-border-types) | 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:

```toml
fullscreen_init_threshold = 160

[theme]
ui = "monokai"
codeblocks = "monokai"
borders_style = "vkey"
```

## Upgrade

```bash
pipx upgrade tofuref
```

## Development notes

`uv run --env-file=tests.env pytest --snapshot-update`

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "tofuref",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "infra, opentofu, platform, sre, terraform, tofu, tool, tui",
    "author": "David Jetelina",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/44/c5/e49464455819346f7dfabf94156aa3c76da9737a31ce10261761d82e2b4c/tofuref-1.4.0.tar.gz",
    "platform": null,
    "description": "# tofuref\n\n[![PyPI - Version](https://img.shields.io/pypi/v/tofuref)](https://pypi.org/project/tofuref/)\n![PyPI - License](https://img.shields.io/pypi/l/tofuref)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/tofuref)\n![GitHub Repo stars](https://img.shields.io/github/stars/DJetelina/tofuref?style=flat&logo=github)\n\nTUI for OpenTofu provider registry.\n\n![Screenshot](https://github.com/djetelina/tofuref/blob/main/tests/__snapshots__/test_snapshots/test_welcome.svg?raw=true)\n\n## Installation\n\n```bash\npipx install tofuref\n```\n\n## Usage\n\nRun the application:\n\n```bash\ntofuref\n```\n\n### Controls\n\n#### Actions\n\n| keybindings   | action                                                                           |\n|---------------|----------------------------------------------------------------------------------|\n| `s`, `/`      | **search** in the context of providers and resources                             |\n| `u`, `y`      | context aware copying (using a provider/resource)                                |\n| `v`           | change active provider **version**                                               |\n| `b`           | persistently bookmark an item to prioritize them in sorting when next re-ordered |\n| `q`, `ctrl+q` | **quit** tofuref                                                                 |\n| `t`           | toggle **table of contents** from content window                                 |\n| `B`           | from content window, open active page in browser                                 |\n| `ctrl+l`      | display **log** window                                                           |\n| `ctrl+g`      | open **GitHub** repository for provider                                          |\n| `ctrl+s`      | Show **stats** of provider's github repo                                         |\n\n#### Focus windows\n\n| keybindings | action                     |\n|-------------|----------------------------|\n| `tab`       | focus next window          |\n| `shift+tab` | focus previous window      |\n| `p`         | focus **providers** window |\n| `r`         | focus **resources** window |\n| `c`         | focus **content** window   |\n| `f`         | toggle **fullscreen** mode |\n\n### Navigate in a window\n\nNavigate with arrows/page up/page down/home/end or your mouse.\n\nVIM keybindings should be also supported in a limited capacity.\n\n### Configuration\n\nDefault configuration can be overridden by a config file,\nwhich can be overridden with env variables.\n\nConfig file locations:\n\n* Unix: `~/.config/tofuref/config.toml`\n* macOS: `~/Library/Application Support\"/tofuref/config.toml`\n* Windows: `%USERPROFILE%\\AppData\\Local\\tofuref\\tofuref\\config.toml`\n\n#### General\n\nPut these as simple key=value in your config.toml.\n\n| name                      | description                                                                     | type  | default | env                                 |\n|---------------------------|---------------------------------------------------------------------------------|-------|---------|-------------------------------------|\n| http_request_timeout      | Timeout for all http requests (in seconds)                                      | float | 3.0     | `TOFUREF_HTTP_REQUEST_TIMEOUT`      |\n| index_cache_duration_days | How long the provider index should be cached for (in days)                      | int   | 31      | `TOFUREF_INDEX_CACHE_DURATION_DAYS` |\n| fullscreen_init_threshold | Threshold of terminal width under which tofuref should start in fullscreen mode | int   | 125     | `TOFUREF_FULLSCREEN_INIT_THRESHOLD` |\n\n#### Theme\n\nThese options belong to a toml section, `[theme]`.\n\n| name          | description                                                                                                                          | type   | default                               | env                           |\n|---------------|--------------------------------------------------------------------------------------------------------------------------------------|--------|---------------------------------------|-------------------------------|\n| 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`            |\n| codeblocks    | **CURRENTLY WORKS ONLY IN COPY MENU** The [pygments style](https://pygments.org/styles/) for code blocks                             | string | material                              | `TOFUREF_THEME_CODEBLOCKS`    |\n| borders_style | The borders to use for windows, list and showcase of available [here](https://textual.textualize.io/styles/border/#all-border-types) | string | ascii                                 | `TOFUREF_THEME_BORDERS_STYLE` |\n| emoji         | Whether to display emojis or letters as icons                                                                                        | bool   | true                                  | `TOFUREF_THEME_EMOJI`         |\n\n#### Example file\n\nAuthor's configuration:\n\n```toml\nfullscreen_init_threshold = 160\n\n[theme]\nui = \"monokai\"\ncodeblocks = \"monokai\"\nborders_style = \"vkey\"\n```\n\n## Upgrade\n\n```bash\npipx upgrade tofuref\n```\n\n## Development notes\n\n`uv run --env-file=tests.env pytest --snapshot-update`\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "TUI for OpenTofu provider registry.",
    "version": "1.4.0",
    "project_urls": {
        "Homepage": "https://github.com/DJetelina/tofuref",
        "Issues": "https://github.com/DJetelina/tofuref/issues",
        "Repository": "https://github.com/DJetelina/tofuref.git"
    },
    "split_keywords": [
        "infra",
        " opentofu",
        " platform",
        " sre",
        " terraform",
        " tofu",
        " tool",
        " tui"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e9cde8f071a1fddc4f789dbb95f7ee3586c9ea2be9eec8e1d5948737810836e7",
                "md5": "7a5b788f48cf701116c7d1c1817e9412",
                "sha256": "2c41e1f93f906e87780670be5ae912ec0d271e5ba19f50e54e97726b6942405b"
            },
            "downloads": -1,
            "filename": "tofuref-1.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7a5b788f48cf701116c7d1c1817e9412",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 29433,
            "upload_time": "2025-07-30T19:50:40",
            "upload_time_iso_8601": "2025-07-30T19:50:40.802108Z",
            "url": "https://files.pythonhosted.org/packages/e9/cd/e8f071a1fddc4f789dbb95f7ee3586c9ea2be9eec8e1d5948737810836e7/tofuref-1.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "44c5e49464455819346f7dfabf94156aa3c76da9737a31ce10261761d82e2b4c",
                "md5": "050510a3374f3442b944023660c0ee4f",
                "sha256": "e4e9f1c319d371fd28deade7cb5753bdf9116d47d2c8b2d512660eeb6268b983"
            },
            "downloads": -1,
            "filename": "tofuref-1.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "050510a3374f3442b944023660c0ee4f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 476301,
            "upload_time": "2025-07-30T19:50:42",
            "upload_time_iso_8601": "2025-07-30T19:50:42.557598Z",
            "url": "https://files.pythonhosted.org/packages/44/c5/e49464455819346f7dfabf94156aa3c76da9737a31ce10261761d82e2b4c/tofuref-1.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-30 19:50:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "DJetelina",
    "github_project": "tofuref",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "tofuref"
}
        
Elapsed time: 0.94603s