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 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM 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

34 sources
Note that if you just want to provide a issue tracker within Git rather than relying on centralized web services like Github or Gitlab, there is https://github.com/MichaelMure/git-bug https://github.com/dspinellis/git-issue https://sciit.gitlab.io/sciit/ (this one has a list of alternatives here https://sciit.gitlab.io/sciit/#other-distributed-issue-track...) Overall it's very disappointing that Github didn't decide to embed issue tracking (and also PR discussions) inside the repository (in another branch perhaps). Issue discussion is part of documentation IMO, and not distributing it alongside the repository causes lock-in
In Radicle: Peer-to-Peer Collaboration with Git
There was an attempt at some point to build decentralized issue tracking into git: https://github.com/duplys/git-issues I was always a bit disappointed that it didn't catch on, but I realize it would require a UI and probably buy-in from companies like Github and Gitlab, whose whole business is based around the lack of these features in git, so it was DoA, unfortunately. Update: looks like that link above was a separate attempt from [1] and [2] [1]: https://github.com/dspinellis/git-issue [2]: https://github.com/MichaelMure/git-bug
In Git-appraise – Distributed Code Review for Git
> but that is for the development of the platform and network of Gitopia. For the end user the workflows remain almost the same for collaboration. I have to disagree here. Accidental complexity in a system can have severe downstream impacts on end users, whether that be in the form of poor performance, unreliability, or just slow update cycles. It's not something you can paper over and completely hide from the user. > Along with this the blockchain layer layer offers immutable, transparent and tamper proof versioning of code Tamper-proof can be accomplished natively by signing [0]. receive.denyNonFastForwards and receive.denyDeletes[1] can be used to make a git repository immutable. Git commits are also already content-addressable. And transparency is achieved by just having the repo available for people to clone. > along with the collabo
Read the rest
ration meta and augments the current collaboration flow Could this augmentation not be accomplished by storing the collaboration information in the repo under a set of special-purpose branches? Like git-bug[2] or git-issue[3]? Coupled with GPG signatures and you've got your immutability and tamper-protection, too! And to be clear, I'm not suggesting we should just tell people to use these tools instead of giving them a good UI for it, I'm suggesting we should use these tools as the underlying mechanism for a decentralized GitHub. Build a great UX on top of git instead of embedding git in a blockchain. > Along with this it enables us to provide a novel means to incentivize open-source contributions along with fostering a more decentralized approach for governance (even for projects), every token holder could have a say in the decision making, reducing the risk of undue influence by a single party, hence eliminating centralized control. This one I'll grant you, but it's by far the least compelling aspect of the project to me. I don't think we're going to solve the centralization of GitHub by centralizing on a new plutocracy, I'd much rather see efforts towards full decentralization. There's nothing inherent to Git that requires that we all use the same set of servers. [0] https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work [1] https://git-scm.com/book/en/v2/Customizing-Git-Git-Configura... [2] https://github.com/MichaelMure/git-bug [3] https://github.com/dspinellis/git-issue
In Show HN: Gitopia: Decentralized GitHub Alternative for Open Source Collaboration
Around 2010-2015 there were a whole bunch of these distributed git bugtrackers and none of them took off. Most are completely dead. IIRC one of the biggest problems was its feature: issue state being distributed as it is, it was very easy for developers to end up with issues having different states/comments, and depending on the implementation even differed across local branches. But also in a work environment there was no place for project managers to view/create/update issues. I remember listing out 4-5 of these in the past when the topic has come up, but the only old one I can remember/find right now is https://github.com/dspinellis/git-issue Edit - Found some more using duckduckgo instead of google: * https://github.com/jashmenn/ditz (last update 12 years ago) * https://bugseverywhere.org/ (I think this was the most popular at one
Read the rest
point) * https://github.com/marekjm/issue (this is separate from git-issue above) * A blog post from 2012 that lists these and a few others (half the links are dead): http://www.cs.unb.ca/~bremner/blog/posts/git-issue-trackers/ From the blog post, the additional ones where the links still work: * https://github.com/chilts/cil (last updated 11 years ago) * http://syncwith.us/sd/ (last updated 6 years ago)
In Git-bug: Distributed, offline-first bug tracker embedded in Git
You're overstating the risks a bit and it's not great to posit implausible motives and means for bad outcomes... Like, Fossil devs could "turn evil", and ship an update that destroys your museum and any copies it can find. Github could "turn evil" without notice, and permanently nuke all of someone or some org's accounts for no good reason and yes, that'd catch a lot of people with their pants down. It's better to first focus on outcomes, not means. Of course anyone actually concerned about losing their github issue data (or having their museums corrupted) should at least be making backups. (And it's not exactly an implausible outcome on its own, you can think of a variety of means that achieve it and discover one may be rather more likely for your situation, like if I was a Russian in Russia right now I'd have already made arrangements i
Read the rest
n case GH changes their mind or is legally forced to drop the ban hammer.) The desire to move off github (and therefore any additional services besides hosting you were using, which issues are just one -- new ones keep getting added to try and cement your dependence) is something more worthwhile of thought than the idea of github turning evil. Fortunately that desire is an actual thing that's very common, or at least the desire to not be wholly dependent, and is why many people don't even use github issues to begin with even if they use github itself for hosting (or some other non-issues features). So there's not a big problem, and even if you start with using github issues, there are various migration tools to move github issues out to [alternative]. (And of course github issues have their own merits, people frequently want to switch to them! So similar migration tools exist to move from [alternative] to github issues, I wrote one for Jira years ago.) It is brilliant to integrate things with the decentralized source control itself, you get free backups and deciding to migrate to something different in the future is easy, I think it's an overlooked approach for a lot of people. (It seems less overlooked when it comes to documentation in various forms like developer-focused .md files, or broader full static html websites which github can conveniently host for you.) Fossil is well-worth investigating for this free integration to see if it meets one's needs. But of course nothing stops you from doing it with git yourself in various ways. For personal projects, I'm pretty satisfied with being as minimal as having an issues.md file and moving things to an issues-closed.md file when I close one. I've also used the git-issue extension (https://github.com/dspinellis/git-issue -- see also its bottom section of Related Work). But despite its brilliance it's not always the right approach. It's very easy and reasonable to want more than what is realistic for something deeply integrated with the source code itself to provide, if only for inherent conflicts of desire, let alone any question of manpower. There are very good reasons to have entirely separate (and even multiple-of-kind partially overlapping/integrating/cross-referencing) systems for source code management, issue tracking, code review, forums, IM communication, wikis, public websites, docs (of whatever kinds and types for various audiences and authors, or public or not, or team-level spikes or plannings or retrospectives)... One aspect of Fossil I found weak was its user capabilities (https://fossil-scm.org/home/doc/trunk/www/caps/ -- no custom user categories alone is a deal breaker for so many things) but flaws in the execution of a fully integrated thing isn't really my point, my point here again is just that full integration despite its overlooked benefits and brilliance when applied to certain things is still not necessarily the right choice for something.
In Fossil
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

Showing the 15 most recent of 34 sources. Enable JavaScript to search and browse every indexed mention.

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.