gitv
March 4, 2026 ยท View on GitHub
gitv
Note
Following in the footsteps of the global regex expression print grep, I introduce to you github issues tui viewer gitv.
gitv is a terminal-based viewer for GitHub issues. It allows you to view and manage your GitHub issues directly from the terminal.

Features
- View issues from any GitHub repository
- View issue conversations, including parsed markdown content
- Full support for adding and removing reactions
- Regex search for labels, plus the ability to create, edit, add, and remove labels from issues
- Commenting on issues, with support for markdown formatting and quoting comments
- Editing comments
- Closing issues
- Assigning and unassigning issues to users
- Creating new issues
- Syntax highlighting for code blocks in issue conversations
Installation
Homebrew (macOS)
brew install jayanaxhf/taps/gitv
Using Cargo
cargo install --locked gitv-tui
From Source
- Clone the repository:
git clone https://github.com/jayanaxhf/gitv.git
- Navigate to the project directory:
cd gitv
- Build the project:
cargo install --path .
NixOS
Flake
First add the repository to your inputs.
Point to main branch:
inputs = {
...
gitv.url = "github:JayanAXHF/gitv";
...
};
Point to a rev in main branch:
inputs = {
...
gitv.url = "github:JayanAXHF/gitv/d70273b05c5e80b05446e4aa0847758e54435d62";
...
};
Point to a tag:
inputs = {
...
gitv.url = "github:JayanAXHF/gitv/refs/tags/gitv-tui-v0.3.2";
...
};
Then your outputs should look something like this:
outputs = {...} @ inputs: {
# Don't forget to add nixpkgs to your inputs
nixosConfigurations."nixos" = inputs.nixpkgs.lib.nixosSystem {
...
specialArgs = {inherit inputs;};
modules = [
./configuration.nix
...
];
};
};
And finally, somewhere in your configuration.nix:
{inputs, pkgs, ...}: {
...
environment.systemPackages = [
inputs.gitv.packages.${pkgs.stdenv.hostPlatform.system}.default
];
...
}
Non-Flake
Pinning Tool
First add the pin using your pinning tool.
We are going to show examples using npins.
Point to a branch:
npins add github JayanAXHF gitv -b main
Point to a rev in main branch:
npins add github JayanAXHF gitv -b main --at d70273b05c5e80b05446e4aa0847758e54435d62
Point to a tag:
npins add github JayanAXHF gitv --at gitv-tui-v0.3.2
Or point to latest release:
npins add github JayanAXHF gitv
Then add the package to your systemPackages:
let
sources = import ./npins;
in {
environment.systemPackages = [
(import sources.gitv {})
];
}
No Pinning Tool
let
rev = "d70273b05c5e80b05446e4aa0847758e54435d62";
gitv = import (fetchTarball "https://github.com/JayanAXHF/gitv/archive/${rev}.tar.gz") {};
in {
environment.systemPackages = [
gitv
];
}
Usage
Usage: gitv [OPTIONS] [OWNER] [REPO]
Arguments:
[OWNER]
GitHub repository owner or organization (for example: `rust-lang`).
This is required unless `--print-log-dir` or `--set-token` is provided.
[REPO]
GitHub repository name under `owner` (for example: `rust`).
This is required unless `--print-log-dir` or `--set-token` is provided.
Options:
-l, --log-level <LOG_LEVEL>
Global logging verbosity used by the application logger.
Defaults to `info`.
[default: info]
[possible values: trace, debug, info, warn, error, none]
-p, --print-log-dir
Prints the directory where log files are written and exits
-s, --set-token <SET_TOKEN>
Stores/updates the GitHub token in the configured credential store.
When provided, this command updates the saved token value.
--generate-man
Generate man pages using clap-mangen and exit
-e, --env
When provided, this command will read the GitHub token from the environment variable
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
See KEYBINDINGS.md for a list of keybindings used in the application.
Token Security
Note
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.
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.
Contributing
Contributions 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.
Tip
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.
Tip
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.
License
gitv is dual-licensed under the MIT License and the Unlicense, at your option. See the MIT and Unlicense for more information.