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, 11:00:58 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

4 sources
I suppose it depends on how far you trust your ability to keep everything in your head, and reload everything coming back, and follow through on notes to self. I make todos too, but I try to honor a self-agreement that they be short lived and ideally not make it very far beyond my machine. I linked https://github.com/dspinellis/git-issue in another comment but it gives a sense of the command line experience. I've also at times hacked up various scripts to create or modify items in github/jira/our internal POS, it can make things more likely to hit the tracker than to be met with a shrug. (It's so odd how sensitive programmers can be to even minor blocks in flow like a few seconds waiting for a webpage, or avoiding refactoring a method / class because in Java a new method might best belong to a new class which to do things 'proper' often e
Read the rest
ntails a new file and then another new file for unit tests, adding them to version control, and all that takes like 30 seconds even with IDE support and is annoying.) I've at times thought about a small vim command that would call one of those scripts to create a new issue pre-templated with the file and location I was on, create, then insert the work item id, but never got around to it. As a pre-commit hook something to look for TODOs explicitly might be interesting, though I generally dislike hooks.
In The Linux codebase has over 3k TODO comments, many from over a decade ago
Might I suggest you give a chance to having separate TODO and WISHLIST and TASKS text files in the root folder that use whatever id scheme you like and point to the code, with the code referring back to those ids only rarely? Or even a single file with sections for those things and more, perhaps called PLAN? Keeping things separate keeps the code tidier, gives you license to put more details than you're likely to put in a one or two line comment, lets you refer to multiple code points instead of the local comment area, can be given to a high school student temp worker, and so forth. For personal projects I've used https://github.com/dspinellis/git-issue a few times for a local command line issue tracker, it's not bad. I've got a longstanding mental TODO to try out Fossil one of these days though with all that and more integrated...
In The Linux codebase has over 3k TODO comments, many from over a decade ago
I was thinking of something that wouldn't be affected by the git history. There's no point in having branches for issue comments. Something like: $ git issue add "foo doesn't work" Created issue ece5591: foo doesn't work $ git issue comment ece5591 "the problem might be with bar" Created comment 0191fa1 on issue #10. $ git issue comment --reply 0191fa1 "or with baz" Created comment f98e783 on issue #10. $ git issue show ece5591 foo doesn't work -- ece5591 Your Name <your@email> the problem might be with bar -- 0191fa1 Your Name <your@email> or with baz -- f98e783 Your Name <your@email> $ git issue push Pushed issues ece5591. $ git issue pull Pulled issues 3ebdc7e, 24cdb90. EDIT: I just gave myself a clue: https://github.com/dspinellis/git-issue
In GitHub Outage Currently Ongoing – Issues, PRs, Notifications

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.