HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
dspinellis
git-issue
Shell2018–2026
dspinellis / git-issue

git-issue

Git-based decentralized issue management

23Distinct people
34Mentions
0Explicit recommenders
886GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Git-based decentralized issue management

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 2:17:07 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year34 dated mentions

Observed mentions: 2018-04-19 20:28:26 UTC to 2026-09-25 17:58:56 UTC.

02462018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 7 mentions; 2 submissions, 5 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC725
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC404
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC707
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC514
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC211
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
git-issue This is a minimalist decentralized issue management system based on Git, offering (optional) biderectional integration with GitHub and GitLab issue management. It has the following advantages over other systems. No backend, no dependencies: You can install and use git issue with a single shell command. There's no need for a server or a database back-end, and the corresponding problems and requirements for their administration. Decentralized asynchronous management: Anyone can add, comment, and edit issues without requiring online access to a centralized server. There's no need for online connectivity; you can pull and push issues when you're online. Transparent text file format: Issues are stored as simple text files, which you can view, edit, share, and backup with any tool you like. There's no risk of losing access to your issues because a server has failed. Git-based: Issues are changed and shared through Git. This provides git issue with a robust, efficient, portable, and widely available infrastructure. It allows you to reuse your Git credentials and infrastructure, allows the efficient merging of work, and also provides a solid audit trail regarding any changes. You can even use Git and command-line tools directly to make sophisticated changes to your issue database. Installation Administrator installation Clone the repo and run make install with appropriate privileges. Personal installation Clone the repo and register a git alias to the git-issue.sh script: git config --global alias.issue '!'"${REPO_PATH}/git-issue.sh" If you are using a bash shell, you can also register the autocompletion by adding the following to your .bashrc. source ${REPO_PATH}/gi-completion.sh Backward compatibility with the gi command For backward compatibility you can also use the original gi command, by copying gi.sh to someplace in your path. In this case you must register the git alias to use the auto completion feature. If you have administrative access you can install it with sudo install gi.sh /usr/local/bin/gi. For your personal use, assuming that the directory ~/bin exists and is in your path, you can install it with install gi.sh ~/bin/gi. You can even put gi in your project's current directory and run it from there. Portability and testing The git-issue.sh script has been tested on: Archlinux (20220101) Debian GNU/Linux FreeBSD macOS Cygwin. If you're running git issue on another system, run the test.sh script to verify its operation, and (please) update this file. Requirements git-issue requires the jq and curl utilities. OS X users might also need GNU date, obtained by installing homebrew package coreutils. For running the tests shellcheck is also required. Use You use git issue with the following sub-commands. Start an issue repository git issue clone: Clone the specified remote repository. git issue init: Create a new issues repository in the current directory. The -e option uses an existing Git project repository. Work with an issue git issue new: Create a new open issue (with optional -s summary and -c "provider user repo" for github/gitlab export). git issue show: Show specified issue (and its comments with -c). git issue comment: Add an issue comment. git issue edit: Edit the specified issue's (or comment's with -c) description git issue tag: Add (or remove with -r) a tag. git issue milestone: Specify (or remove with -r) the issue's milestone. git issue weight: Specify (or remove with -r) the issue's weight. The weight is a positive integer that serves as a measure of importance. git issue duedate: Specify (or remove with -r) the issue's due date. The command accepts all formats supported by the date utility. git issue timeestimate: Specify (or remove with -r) a time estimate for this issue. Time estimates can be given in a format accepted by date, however bear in mind that it represents a time interval, not a date. git issue timespent: Specify (or remove with -r) the time spent working on an issue so far. Follows the same format outlined above. If the -a option is given, the time interval will be added together with the existing one. git issue assign: Assign (or remove -r) an issue to a person. The person is specified with his/her email address. The form @name or name@ can be used as a shortcut, provided it uniquely identifies an existing assignee or committer. Note that if you plan to export the issue to a GitHub/GitLab repository, the assignee may be rejected if it doesn't correspond to a valid username, or if you don't have the necessary permissions. git issue attach: Attach (or remove with -r) a file to an issue. git issue watcher: Add (or remove with -r) an issue watcher. git issue close: Remove the open tag, add the closed tag Show multiple issues git issue list: List open issues (or all with -a). An optional argument can show issues matching a tag or milestone. git issue list -l formatstring: This will list issues in the specified format, given as an argument to -l. The following escape sequences can be used: %n : newline %i : issue ID %c : creation date %d : due date %e : time estimate %s : time spent %w : weight %M : Milestone %A : Assignee(s) %T : Tags %D : Description(first line) If the format string is one of: (oneline, short or full) it will interpreted as the corresponding preset. Optionally, one of the above given with -o will order based on this field(reverse order with -r). Work with multiple issues git issue filter-apply command: Run command in every issue directory. The following environment variables will be set: GI_SHA : Sha of the current issue GI_IMPORTS : The imports directories for current issue(one on each line) GI_AUTHOR : Author of current issue GI_DATE : Creation date of current issue The command can read, add/remove or edit any of the issue's attributes. Some potentially useful scripts to be used with this command are in the scripts/ directory. Remember to inspect the results (e.g. gi git diff) and commit them with gi git comm
Read the full README on GitHub

What Hacker News says

7 sources
I think he meant just the network effects of a social platform. Github has more people in them so there are more people interacting with repositories hosted on Github. I wish that somehow people carried identity across Github / Gitlab / Gitea / other services. Like, a federated issue tracker. Or otherwise that the issues themselves were easily movable between platforms, with no lock-in. But the incumbent platforms rarely want something like this. An alternative is to eschew platform issues entirely, and use decentralized issue comments hosted as Git repositories, like https://github.com/dspinellis/git-issue or https://github.com/neithernut/git-dit or https://github.com/MichaelMure/git-bug - I think that Gitlab should offer integration with one of them. I mean: both allowing to export issues and PRs into a Git branch, and allowing people t
Read the rest
o comment on issues and PRs by pushing to a Git branch.
In Utterances – a lightweight comments widget built on GitHub issues
git-bug, the one mentioned in the article here, has some documentation on its README of how well its importer/exporter tools support Github, Gitlab, Jira, and Launchpad: https://github.com/MichaelMure/git-bug Most of the other such tools I've seen barely have the resources to import/export a single such API. git-issue only has Github import it looks like. https://github.com/dspinellis/git-issue There's perceval which is designed to be a generic archival tool and supports lots of APIs, but only dumps them to source-specific formats and would still need a lot of work if you tried to use issues from different APIs together: https://github.com/chaoss/grimoirelab-perceval
In Git as a Storage
Sure, one executable is nice, that might be enough of a payoff for some people to overlook the rest. I think you may be underestimating the amount of choice that's out there though. For documentation alone there's countless options that don't require a centralized online thing. Three I'd use over Fossil again are 1) simple project doc/ folder with .md files inside (which you can render locally to look just like github with https://github.com/joeyespo/grip) 2) Doxygen or a language-specific equivalent if it's better 3) libreoffice docs stored either in the same repo or another one (perhaps a submodule). For project management I'm less familiar with the options out there but I'd be surprised if there was nothing that gives a really stellar offline experience. I'd give a preemptive win to Fossil on the narrow aspect that your issue tracking
Read the rest
changes can be synced and merged automatically with a collaborative server when you come back online, whereas if you stood up your own instance of Trac for instance I'm not sure if they have any support for syncing. If you're working by yourself, though, then there's no problem, Trac and many others work just like Fossil and stand up a local server (or are dedicated standalone programs) and work the same whether you're offline or online. But when I'm working solo I prefer low-tech over anything that resembles Jira (and I don't even really dislike Jira) -- I've played with https://github.com/dspinellis/git-issue as another offline/off-platform option but in my most recent ongoing solo project I'm quite happy with a super low-tech issues text file that has entries like (easy to make with https://github.com/dhruvasagar/vim-table-mode) +--------------+ | Add thing | +==============+ | Done whens / | | other info | +--------------+ and when I'm closing one I just move it to the issues-closed file as part of the closing commit. I might give it an identifier if I need to reference it in the code/over multiple commits.
In Althttpd: Simple webserver in a single C file
Experimenting with distributed issue trackers in git was popular in the early 2010s, there were a whole bunch of different implementations people came up with for git. Most of them died out though, there were typically a few problems - this is what I remember offhand from experimenting with a whole bunch of them: * Some of them make a mess of some part of git; one of them put its info in separate git branches you couldn't delete without breaking it, to ensure changes were always pushed/pulled even without a special push/pull command for the issue tracker. * At least one of them kept their info in the repo in a dot-prefixed directory and auto added/committed the file as changes were made; this meant a single issue could be in different statuses depending on which branch you were on and there was no overarching view. * The rest effectively
Read the rest
ran in parallel to the git repo, pushing and pulling their data within it but requiring their own commands to do so, so it was totally possible to clone the repo and not get the issues. * Most of them didn't have a non-repo way to track issues, for project managers and such. One did have a webview that ran from a repo, but it was up to you to figure out how to keep it in sync with the comments/etc devs were putting in their copies of the issue tracker. Sibling mentions git-bug, a few others I recalled/quickly found: https://github.com/aaiyer/bugseverywhere (I think this is one of the original ones) https://github.com/dspinellis/git-issue https://github.com/neithernut/git-dit https://github.com/google/git-appraise (I think this one is newest and I probably never tried it)
In The Return of Fancy Tools

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.