{"id":13522311,"url":"https://github.com/pommee/Pocker","last_synced_at":"2025-03-31T22:31:00.622Z","repository":{"id":238130633,"uuid":"795946043","full_name":"pommee/Pocker","owner":"pommee","description":"~ TUI tool for docker ~","archived":false,"fork":false,"pushed_at":"2025-03-16T13:36:24.000Z","size":1785,"stargazers_count":134,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-16T13:45:29.900Z","etag":null,"topics":["docker","python","terminal","textual","tool","tui"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pommee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-04T13:25:26.000Z","updated_at":"2025-03-16T13:36:26.000Z","dependencies_parsed_at":"2024-05-04T14:32:16.917Z","dependency_job_id":"239ef463-6801-4782-a5c2-1f676fe92cad","html_url":"https://github.com/pommee/Pocker","commit_stats":null,"previous_names":["pommee/pocker"],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pommee%2FPocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pommee%2FPocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pommee%2FPocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pommee%2FPocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pommee","download_url":"https://codeload.github.com/pommee/Pocker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246552250,"owners_count":20795787,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","python","terminal","textual","tool","tui"],"created_at":"2024-08-01T06:00:45.545Z","updated_at":"2025-03-31T22:31:00.617Z","avatar_url":"https://github.com/pommee.png","language":"Python","funding_links":["https://buymeacoffee.com/pommee"],"categories":["\u003ca name=\"vm\"\u003e\u003c/a\u003eContainerization and virtualization","Table of Contents"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/pommee/Pocker/blob/main/resources/pocker-name.png?raw=true\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://static.pepy.tech/badge/pocker-tui\" alt=\"PyPI Downloads\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            \u003cimg width=\"100%\" src=\"https://github.com/pommee/Pocker/blob/main/resources/home-preview.png?raw=true\"\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg width=\"100%\" src=\"https://github.com/pommee/Pocker/blob/main/resources/search-logs.png?raw=true\"\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            \u003cimg width=\"100%\" src=\"https://github.com/pommee/Pocker/blob/main/resources/shell-preview.png?raw=true\"\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg width=\"100%\" src=\"https://github.com/pommee/Pocker/blob/main/resources/help-screen-preview.png?raw=true\"\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/p\u003e\n\n# 👋🏼 Introduction\n\n\u003cimg width=\"40%\" align=\"right\" src=\"https://github.com/pommee/Pocker/blob/main/resources/half-preview.png?raw=true\"\u003e\n\nPocker is a TUI tool to help with docker related tasks. For example,\n\n- View containers/images.\n- Manage status of containers.\n- See logs, attributes, environment variables and container statistics.\n- Filter logs based on keywords.\n- Start shell inside a container.\n- Customize configuration, i.e keybinds and behaviour.  \n\nThe tool is heavily based on [docker-py](https://docker-py.readthedocs.io/en/stable/index.html) and [textual](https://github.com/textualize/textual/).  \nA big thanks goes over to the creator and contributors of textual as it makes for a very sleek and easy interface.\n\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://buymeacoffee.com/pommee)\n\n## Why?\n\nI spend a lot of time working with Docker, and typing numerous commands can be time-consuming, energy-draining, and inefficient.  \nThis is something that can, of course, be improved with the right tool.\n\nThe initial drive was to type less, but has since evolved into more.  \nBeing able to search for a keyword and quickly get live feedback is very nice.  \nNeed a new env variable? Just head over to the shell tab and run one command.\n\n## Prerequisite\n\n\u003e [!NOTE]\n\u003e [Pipx](https://pipx.pypa.io/stable/installation/) must be installed.  \n\u003e Python version 3.10.9 or newer.\n\n## 📦 Installation\n\nPocker is hosted at PyPi ([see here](https://pypi.org/project/pocker-tui/)).\n\n\n```shell\npipx install pocker-tui           # Latest version\npipx install pocker-tui==version  # Specific version\n```\n\n### Install from GitHub repository\n\nPyPi will mostly contain newest version, but it is also possible to run install from this repository.\n\n```bash\npipx install git+https://github.com/pommee/Pocker\n```\n\n## 🚦 Usage\n\n```shell\npocker          # Start pocker\npocker update   # Fetch and install latest version\n```\n\nKeybinds can be seen in the footer when started or by pressing `?` to display help modal.\n\n## 🔧 Configuration\n\nUpon the first startup, a configuration file will be generated and stored at `$HOME/.config/pocker/config.yaml`.\n\n| Key                 | Default | Info                                                                                                                                  |\n| ------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n| log_tail            | 2000    | At **startup**, Pocker will fetch `log_tail` amount of container logs.\u003cbr\u003e Not recommended to exceed ~3000 as startup will slow down. |\n| max_log_lines       | 2000    | The displayed container logs are shown sequentially, with the oldest log being removed as a new one appears.                          |\n| show_all_containers | false   | Show running and exited containers.                                                                                                   |\n| start_fullscreen    | false   | Display container logs in fullscreen mode at startup.                                                                                 |\n| start_scroll        | true    | Automatically scrolls when new logs are fetched.                                                                                      |\n| start_wrap          | false   | When enabled, logs will wrap to fit the content window.                                                                               |\n\n### Keymap [default]\n\n| Key   | Action                           | Description                                                                      |\n| ----- | -------------------------------- | -------------------------------------------------------------------------------- |\n| `q`   | Quit                             | Exits the application.                                                           |\n| `l`   | Logs                             | Opens the logs view to display log entries.                                      |\n| `/`   | Search                           | Search logs.                                                                     |\n| `TAB` | Cycle widgets                    | Used to cycle widgets. Newly focused widget will have it's borders alter colors. |\n| `a`   | Attributes                       | Displays the attributes panel, showing various item attributes.                  |\n| `e`   | Environment                      | Opens the environment settings view.                                             |\n| `d`   | Statistics                       | Shows statistical information related to the container.                          |\n| `v`   | Shell                            | Creates a shell for the current container.                                       |\n| `f`   | Fullscreen                       | Toggles fullscreen mode for the logs view.                                       |\n| `n`   | Fullscreen (Containers \u0026 Images) | Toggles fullscreen mode for containers and images view.                          |\n| `w`   | Wrap Logs                        | Toggles log wrapping in the logs view.                                           |\n| `s`   | Toggle Scroll                    | Toggles scrolling mode for the current view.                                     |\n\nThis table helps you understand the functionalities assigned to each key, making navigation and operation more efficient.\n\n### Errors\n\nErrors will be displayed whenever encountered.  \nThis can occur if an update is released with new keybinds required as an example.  \nThe solution is to either add the new keybind manually or delete the config and restart pocker.  \nDefault keymap can always be found [here](https://github.com/pommee/Pocker/blob/main/application/util/config.py).\n\n![keybind-error](https://github.com/pommee/Pocker/blob/main/resources/keybind-error.png?raw=true)\n\n\u003e Example of faulty keybind for `Shell`; in this case the key does not exist in the config.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpommee%2FPocker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpommee%2FPocker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpommee%2FPocker/lists"}