{"id":45374860,"url":"https://github.com/jayanaxhf/gitv","last_synced_at":"2026-04-19T07:02:21.821Z","repository":{"id":337801745,"uuid":"1153530889","full_name":"JayanAXHF/gitv","owner":"JayanAXHF","description":"gitv is a terminal-based viewer for GitHub issues. It allows you to view and manage your GitHub issues directly from the terminal.","archived":false,"fork":false,"pushed_at":"2026-04-19T05:09:46.000Z","size":955,"stargazers_count":103,"open_issues_count":3,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-19T06:31:31.570Z","etag":null,"topics":["cli","github","productivity","tui"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/gitv-tui","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JayanAXHF.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-MIT","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T12:07:10.000Z","updated_at":"2026-04-19T05:07:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/JayanAXHF/gitv","commit_stats":null,"previous_names":["jayanaxhf/issue_me","jayanaxhf/gitv"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/JayanAXHF/gitv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayanAXHF%2Fgitv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayanAXHF%2Fgitv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayanAXHF%2Fgitv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayanAXHF%2Fgitv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JayanAXHF","download_url":"https://codeload.github.com/JayanAXHF/gitv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JayanAXHF%2Fgitv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31997809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","github","productivity","tui"],"created_at":"2026-02-21T16:05:01.875Z","updated_at":"2026-04-19T07:02:21.816Z","avatar_url":"https://github.com/JayanAXHF.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n\n![gitv logo](https://raw.githubusercontent.com/JayanAXHF/gitv/main/assets/logo.svg)\n\n\u003c/div\u003e\n\n[![Built With Ratatui](https://ratatui.rs/built-with-ratatui/badge.svg)](https://ratatui.rs/)\n![crates.io](https://img.shields.io/crates/v/gitv-tui)\n\n---\n\n# gitv\n\n\u003e [!NOTE]\n\u003e\n\u003e Following in the footsteps of the `g`lobal `r`egex `e`xpression `p`rint `grep`, I introduce to you `g`ithub `i`ssues `t`ui `v`iewer `gitv`.\n\n`gitv` is a terminal-based viewer for GitHub issues. It allows you to view and manage your GitHub issues directly from the terminal.\n\n![Made with VHS](https://vhs.charm.sh/vhs-WEyf76YrrGK3OgECWA3pI.gif)\n\n### Features\n\n- View issues from any GitHub repository\n- View issue conversations, including parsed markdown content\n- Full support for adding and removing reactions\n- Regex search for labels, plus the ability to create, edit, add, and remove labels from issues\n- Commenting on issues, with support for markdown formatting and quoting comments\n- Editing comments\n- Closing issues\n- Assigning and unassigning issues to users\n- Creating new issues\n- Syntax highlighting for code blocks in issue conversations\n\n### Installation\n\n#### Homebrew (macOS)\n\n```bash\nbrew install jayanaxhf/taps/gitv\n```\n\n#### Using Cargo\n\n```bash\ncargo install --locked gitv-tui\n```\n\n#### From Source\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/jayanaxhf/gitv.git\n```\n\n2. Navigate to the project directory:\n\n```bash\ncd gitv\n```\n\n3. Build the project:\n\n```bash\ncargo install --path .\n```\n\n#### NixOS\n\n\u003cdetails\u003e\n  \u003csummary\u003eFlake\u003c/summary\u003e\n\nFirst add the repository to your inputs.\n\nPoint to main branch:\n\n```nix\ninputs = {\n    ...\n    gitv.url = \"github:JayanAXHF/gitv\";\n    ...\n};\n```\n\nPoint to a rev in main branch:\n\n```nix\ninputs = {\n    ...\n    gitv.url = \"github:JayanAXHF/gitv/d70273b05c5e80b05446e4aa0847758e54435d62\";\n    ...\n};\n```\n\nPoint to a tag:\n\n```nix\ninputs = {\n    ...\n    gitv.url = \"github:JayanAXHF/gitv/refs/tags/gitv-tui-v0.3.2\";\n    ...\n};\n```\n\nThen your outputs should look something like this:\n\n```nix\noutputs = {...} @ inputs: {\n  # Don't forget to add nixpkgs to your inputs\n  nixosConfigurations.\"nixos\" = inputs.nixpkgs.lib.nixosSystem {\n    ...\n    specialArgs = {inherit inputs;};\n    modules = [\n      ./configuration.nix\n      ...\n    ];\n  };\n};\n```\n\nAnd finally, somewhere in your `configuration.nix`:\n\n```nix\n{inputs, pkgs, ...}: {\n  ...\n  environment.systemPackages = [\n    inputs.gitv.packages.${pkgs.stdenv.hostPlatform.system}.default\n  ];\n  ...\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eNon-Flake\u003c/summary\u003e\n\n##### Pinning Tool\n\nFirst add the pin using your pinning tool.\n\nWe are going to show examples using npins.\n\nPoint to a branch:\n\n```bash\nnpins add github JayanAXHF gitv -b main\n```\n\nPoint to a rev in main branch:\n\n```bash\nnpins add github JayanAXHF gitv -b main --at d70273b05c5e80b05446e4aa0847758e54435d62\n```\n\nPoint to a tag:\n\n```bash\nnpins add github JayanAXHF gitv --at gitv-tui-v0.3.2\n```\n\nOr point to latest release:\n\n```bash\nnpins add github JayanAXHF gitv\n```\n\nThen add the package to your `systemPackages`:\n\n```nix\nlet\n  sources = import ./npins;\nin {\n  environment.systemPackages = [\n    (import sources.gitv {})\n  ];\n}\n```\n\n##### No Pinning Tool\n\n```nix\nlet\n  rev = \"d70273b05c5e80b05446e4aa0847758e54435d62\";\n  gitv = import (fetchTarball \"https://github.com/JayanAXHF/gitv/archive/${rev}.tar.gz\") {};\nin {\n  environment.systemPackages = [\n    gitv\n  ];\n}\n```\n\n\u003c/details\u003e\n\n### Usage\n\n```\nUsage: gitv [OPTIONS] [OWNER] [REPO]\n\nArguments:\n  [OWNER]\n          GitHub repository owner or organization (for example: `rust-lang`).\n\n          This is required unless `--print-log-dir` or `--set-token` is provided.\n\n  [REPO]\n          GitHub repository name under `owner` (for example: `rust`).\n\n          This is required unless `--print-log-dir` or `--set-token` is provided.\n\nOptions:\n  -l, --log-level \u003cLOG_LEVEL\u003e\n          Global logging verbosity used by the application logger.\n\n          Defaults to `info`.\n\n          [default: info]\n          [possible values: trace, debug, info, warn, error, none]\n\n  -p, --print-log-dir\n          Prints the directory where log files are written and exits\n\n  -s, --set-token \u003cSET_TOKEN\u003e\n          Stores/updates the GitHub token in the configured credential store.\n\n          When provided, this command updates the saved token value.\n\n      --generate-man\n          Generate man pages using clap-mangen and exit\n\n  -e, --env\n          When provided, this command will read the GitHub token from the environment variable\n\n  -h, --help\n          Print help (see a summary with '-h')\n\n  -V, --version\n          Print version\n```\n\nSee [KEYBINDINGS.md](./KEYBINDS.md) for a list of keybindings used in the application.\n\n### Token Security\n\n\u003e [!NOTE]\n\u003e To persist the token across reboots (i.e. to store it on disk) on Linux, build with the `persist-token` feature flag. This requires for `dbus` to be present and `DBUS_SESSION_BUS_ADDRESS` to be set.\n\n`gitv` uses the `keyring` crate to securely store your GitHub token in your system's credential store. This means that your token is encrypted and protected by your operating system's security features, providing a secure way to manage your authentication credentials.\n\n### Contributing\n\nContributions to `gitv` are welcome! If you have an idea for a new feature or have found a bug, please open an issue or submit a pull request on the GitHub repository.\n\n\u003e [!TIP]\n\u003e Run the `init.py` initialization script to set up your development environment. It installs a pre-push hook that runs `typos` and `clippy` to help maintain code quality and consistency. Ensure that you have the `typos-cli` installed and available in your PATH for the pre-push hook to work correctly. You can install it using `cargo install typos-cli`.\n\n\u003e [!TIP]\n\u003e If you're using nix then you can use the provided devshell to get your development environment up and running, it also includes the pre-push hook provided. You can do so by executing `direnv allow` or `nix develop`.\n\n### License\n\n`gitv` is dual-licensed under the MIT License and the Unlicense, at your option. See the [MIT](./LICENSE-MIT) and [Unlicense](./UNLICENSE) for more information.\n","funding_links":[],"categories":["💻 Apps","Table of Contents"],"sub_categories":["🚀 Productivity and Utilities"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayanaxhf%2Fgitv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjayanaxhf%2Fgitv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayanaxhf%2Fgitv/lists"}