{"id":13478387,"url":"https://github.com/AnonymouX47/termvisage","last_synced_at":"2025-03-27T07:31:05.194Z","repository":{"id":157471428,"uuid":"620321752","full_name":"AnonymouX47/termvisage","owner":"AnonymouX47","description":"Browse and view images in the terminal (mostly a front-end to https://github.com/AnonymouX47/term-image)","archived":false,"fork":false,"pushed_at":"2024-06-25T20:43:53.000Z","size":828,"stargazers_count":54,"open_issues_count":4,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-08T09:09:07.187Z","etag":null,"topics":["cli","curses","image","image-viewer","images","python","term-image","terminal","tui","urwid","viewer"],"latest_commit_sha":null,"homepage":"http://termvisage.readthedocs.io","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/AnonymouX47.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"custom":["https://www.buymeacoffee.com/anonymoux47"]}},"created_at":"2023-03-28T13:06:01.000Z","updated_at":"2024-12-03T15:32:55.000Z","dependencies_parsed_at":"2023-05-03T02:32:05.434Z","dependency_job_id":"72232c81-839f-429c-94a5-148b244ebec2","html_url":"https://github.com/AnonymouX47/termvisage","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonymouX47%2Ftermvisage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonymouX47%2Ftermvisage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonymouX47%2Ftermvisage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnonymouX47%2Ftermvisage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnonymouX47","download_url":"https://codeload.github.com/AnonymouX47/termvisage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245802391,"owners_count":20674651,"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":["cli","curses","image","image-viewer","images","python","term-image","terminal","tui","urwid","viewer"],"created_at":"2024-07-31T16:01:56.308Z","updated_at":"2025-03-27T07:31:04.708Z","avatar_url":"https://github.com/AnonymouX47.png","language":"Python","funding_links":["https://www.buymeacoffee.com/anonymoux47"],"categories":["Python"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003e\u003cb\u003eTermVisage\u003c/b\u003e\u003c/h1\u003e\n\n\u003cp\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/AnonymouX47/termvisage/23b8b4612e0ac4a167fa92630be63766f7f56e29/docs/source/resources/logo.png\" height=\"200\"\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n\u003cb\u003eBrowse and view images in the terminal\u003c/b\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n   \u0026#128214; \u003ca href='https://termvisage.readthedocs.io'\u003eManual\u003c/a\u003e\n    \u0026#9553; \n   \u0026#128444; \u003ca href='https://termvisage.readthedocs.io/en/latest/gallery.html'\u003eGallery\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n   \u003ca href='https://pypi.org/project/termvisage/'\u003e\n      \u003cimg src='https://img.shields.io/pypi/v/termvisage.svg'/\u003e\n   \u003c/a\u003e\n   \u003ca href='https://pepy.tech/project/termvisage'\u003e\n      \u003cimg src=\"https://pepy.tech/badge/termvisage/month\"\u003e\n   \u003c/a\u003e\n   \u003ca href='https://pypi.org/project/termvisage/'\u003e\n      \u003cimg src='https://img.shields.io/pypi/pyversions/termvisage.svg'/\u003e\n   \u003c/a\u003e\n   \u003ca href='https://github.com/psf/black'\u003e\n      \u003cimg src='https://img.shields.io/badge/code%20style-black-000000.svg'/\u003e\n   \u003c/a\u003e\n   \u003ca href='https://termvisage.readthedocs.io/en/latest/?badge=latest'\u003e\n      \u003cimg src='https://readthedocs.org/projects/termvisage/badge/?version=latest' alt='Documentation Status'/\u003e\n   \u003c/a\u003e\n   \u003cimg src=\"https://img.shields.io/github/last-commit/AnonymouX47/termvisage\"/\u003e\n   \u003ca href=\"https://twitter.com/intent/tweet?text=Browse%20and%20view%20images%20in%20the%20terminal\u0026url=https://github.com/AnonymouX47/termvisage\u0026hashtags=developers,images,terminal,python\"\u003e\n      \u003cimg src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social\"/\u003e\n   \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n\n## Contents\n- [Installation](#installation)\n- [Features](#features)\n- [Demo](#demo)\n- [Quick Start](#quick-start)\n- [Usage](#usage)\n- [Contribution](#contribution)\n- [Planned Features](#planned-features)\n- [Known Issues](#known-issues)\n- [FAQs](#faqs)\n- [Credits](#credits)\n- [Sponsor This Project](#sponsor-this-project)\n\n\n## Installation\n\n### Requirements\n- Operating System: Unix / Linux / Mac OS X / Windows (limited support, see the [FAQs](https://termvisage.readthedocs.io/en/latest/faqs.html))\n- [Python](https://www.python.org/) \u003e= 3.8\n- A terminal emulator with **any** of the following:\n  \n  - support for the [Kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol/)\n  - support for the [iTerm2 inline image protocol](https://iterm2.com/documentation-images.html)\n  - Unicode and direct-color (truecolor) support\n\n  **Plans to support a wider variety of terminal emulators are in motion** (see the [library][term-image]'s planned features).\n\n### Steps\nThe latest version can be installed from [PyPI](https://pypi.org/project/termvisage) using [`pipx`](https://pypa.github.io/pipx/) with:\n\n```shell\npipx install termvisage\n```\n\nand upgraded with:\n\n```shell\npipx upgrade termvisage\n```\n\n**NOTE:** [`pip`](https://pip.pypa.io/en/stable/) can also be used but `pipx` is recommended.\n\nSee the [installation docs](https://termvisage.readthedocs.io/en/stable/installation.html) for info about optional features and more.\n\n\n## Features\n\n- Almost everything the [term-image] library supports\n- Display individual images\n- Browse multiple images and directories (recursively)\n- Efficient and configurable thumbnailing\n- Adjustable image grids\n- Context-based controls\n- Customizable controls and configuration options\n- Smooth and performant experience\n- Shell completion for command-line arguments\n- and more... 😁\n\n\n## Demo\n\n![Demo Image](https://github.com/AnonymouX47/termvisage/assets/61663146/beff58d9-fcff-4326-af1f-703e86041402)\n\n### Multiple Render Styles\n| block | iterm2 | kitty |\n|:-----:|:------:|:-----:|\n| ![block style](https://user-images.githubusercontent.com/61663146/233488229-d4d0258c-2567-4b2a-ba38-8546b886fba3.png) | ![iterm2 style](https://user-images.githubusercontent.com/61663146/233488248-8c5750d2-9281-4a96-b0f4-32d61c29b02c.png) | ![kitty style](https://user-images.githubusercontent.com/61663146/233488260-6e7ce3fe-7561-44f7-aafe-d7a708e14758.png) |\n\n### High-Resolution Images\n| ![high_res_1](https://github.com/AnonymouX47/termvisage/assets/61663146/acb754f1-30d7-4477-85f3-9688d2aae5da) | ![high_res_2](https://github.com/AnonymouX47/termvisage/assets/61663146/938ccc20-39d4-4f15-8f3e-1960543fd895) |\n|:---:|:---:|\n\n### Video Demo\n[Demo Video](https://user-images.githubusercontent.com/61663146/235648854-dcccd260-c463-4692-bd01-f51c099613cf.mp4)\n\n### Gallery\nCheck out the [Gallery](https://termvisage.readthedocs.io/en/latest/gallery.html) for more.\n\n\n## Quick Start\n\nWith a file path:\n```shell\ntermvisage path/to/image.png\n```\n\nWith a URL:\n```shell\ntermvisage https://www.example.com/image.png\n```\n\nWith a directory, recursively (not currently supported on Windows):\n```shell\ntermvisage -r path/to/dir/\n```\n\nIf a single source is given and it's animated (GIF, APNG, Animated WebP), the animation is infinitely looped by **default** and can be stopped with `Ctrl-C` (`SIGINT`).\n\nBy **default**, if multiple sources or at least one directory source is given, the TUI (Terminal User Interface) is launched to navigate through the images and/or directories.\n\n\n## Usage\n\n### CLI (Command-Line Interface)\nRun ``termvisage --help`` to see the basic help message or ``termvisage --long-help`` for the full help message.\n\nSee the [CLI manual](https://termvisage.readthedocs.io/en/latest/cli.html).\n\n### TUI (Terminal User Interface)\nThe controls are **context-based** and always displayed at the bottom of the screen.\nPressing the `F1` key (in most contexts) brings up a **help** menu describing the available controls (called *actions*) in that context.\n\nThe TUI can be configured using a config file. See the [Configuration](https://termvisage.readthedocs.io/en/latest/config.html) section of the docs.\n\n[Here](https://github.com/AnonymouX47/termvisage/blob/main/vim_style-termvisage.json) is a config file with Vim-style key-bindings (majorly navigation).\n\nSee the [TUI manual](https://termvisage.readthedocs.io/en/latest/tui.html).\n\n\n## Contribution\n\nIf you've found any bug or want to suggest a new feature, please open a new [issue](https://github.com/AnonymouX47/termvisage/issues) with proper description, after browsing/searching through the existing issues and making sure you won't create a duplicate.\n\nFor code contributions, please read through the [guidelines](https://github.com/AnonymouX47/termvisage/blob/main/CONTRIBUTING.md).\n\nAlso, check out the [Planned Features](#planned-features) section below.\nIf you wish to work on any of the listed tasks, please click on the linked issue or go through the [issues](https://github.com/AnonymouX47/termvisage/issues) tab and join in on an ongoing discussion about the task or create a new issue if one hasn't been created yet, so that the implementation can be discussed.\n\nHint: You can filter issues by *label* or simply *search* using the task's name or description.\n\nFor anything other than the above (such as questions or anything that would fit under the term \"discussion\"), please open a new [discussion](https://github.com/AnonymouX47/termvisage/discussions) instead.\n\nThanks! 💓\n\n\n## Planned Features\n\nSee [here](https://termvisage.readthedocs.io/en/latest/planned.html).\n\n## Known Issues\n\nSee [here](https://termvisage.readthedocs.io/en/latest/issues.html).\n\n## FAQs\n\nSee the [FAQs](https://termvisage.readthedocs.io/en/latest/faqs.html) section of the docs.\n\n## Credits\n\nThe following projects have been (and are still) crucial to the development of this project:\n- [term-image] by [@AnonymouX47](https://github.com/AnonymouX47)\n- [Pillow](https://python-pillow.org) by [Fredrik Lundh, Jeffrey A. Clark (Alex) and contributors](https://github.com/python-pillow/Pillow/graphs/contributors)\n- [Urwid](https://urwid.org) by [Ian Ward et al](https://github.com/urwid/urwid/graphs/contributors)\n- [argcomplete](https://github.com/kislyuk/argcomplete) by [Andrey Kislyuk](https://github.com/kislyuk)\n\nThe logo was composed using resource(s) from the following source(s):\n- [Gallery icons created by Andrean Prabowo - Flaticon](https://www.flaticon.com/free-icons/gallery)\n\nThanks to [@digitallyserviced](https://github.com/digitallyserviced) for the project name and logo concept.\n\n## Sponsor This Project\n\n\u003ca href=\"https://www.buymeacoffee.com/anonymoux47\" target=\"_blank\"\u003e\n   \u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\n\u003c/a\u003e\n\nAny amount will go a long way in aiding the progress and development of this project.\nThank you! 💓\n\n\n[term-image]: https://github.com/AnonymouX47/term-image\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAnonymouX47%2Ftermvisage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAnonymouX47%2Ftermvisage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAnonymouX47%2Ftermvisage/lists"}