Skip to main content

Simple issue tracker to use with VCS

Project description

Small command line issue tracker mostly for those one person projects where you don’t want to depend on something like github to track your issues but want to keep issue tracking in your repository. requires python3 but doesn’t depend on any external libraries.



# easy_install issue


# pip install issue

or if you want to install it just for yourself without root access, you can add --user to either of those commands, e.g.

$ pip install --user issue

and it will install in ~/.local/bin/ which you can just add to your $PATH.

Getting started

$ init
$ add -d "my new issue"
$ add -t enhancement -d "my enhancement proposal"
open   1   bug           2013-12-27   my new issue
open   2   enhancement   2013-12-27   my enhancement proposal
$ close 1
closed   1   bug           2013-12-27   my new issue


usage: [-h] [subcommand] ...

Simple issue handler

optional arguments:
-h, --help            show this help message and exit

    add                 Add new issue
    edit                Edit individual issue
    close               Close an issue
    search (se)         Search issues
    show                Show more information on individual issue
    init                Initialize issue file
    remove (rm)         Remove an issue

Making the issues file

To make a new ISSUES file, you can use

$ init [-g] [-f]

which basically just make a file with [] in it. If you specify -g to make gzip compressed issues file. Compressed files won’t work so well with version control system, but you can do that anyway if you like. If you already have an issues file you want to compress, you can simply compress your ISSUES file with

$ gzip ISSUES

and it’ll make ISSUES.gz which works transparently with Similarly, if you want to move back to uncompressed file, you can uncompress it with

$ gzip -d ISSUES.gz

If you already have an ISSUES file, won’t overwrite it but you can force it to create the file anyway with -f. This won’t actually remove the old file, but simple moves it out of the way.

Adding issues

Basic way to add issues is to do

$ add -d "My issue description"

you can add -t to specify tags in comma-separated list. If you specify none, -t bug is assumed.

You can also leave -d out and will open the default editor for you specified in $EDITOR environment variable. In the editor you can write multiline issue description where first line will be used as the title and will be shown in default issue list. You can view the whole description with show <issue>


to add issue with feature tag, you can do

$ add -t feature -d "Add support for .gz files"

You can also specify multiple tabs with commas, without spaces

$ add -t bug,critical -d "Game crashes on save"

Closing issues

Closing issues works simply

$ close <number>

where <number> is the issue number you want to close. This will simply change issue status to ‘closed’. Closing issue will print the closed issue and the issue won’t show up in issue list anymore by default. You can still find it with search


$ close 4
closed   4   Feature   2013-12-27   Laser effects would be cool

Editing issue

You can edit any issue using

$ edit <number> [-t tag] [-s status] [-d description|-e]

which lets you edit issue’s tags, status and description as you like. -e cannot be used with -d description. Using -d you can specify the new description for the issue on the commandline, but if you want to edit the description more easily or if the issue description is multiline, you can use -e to open the description in the editor for editing.

-t allows you to add and remove tags by specifying + or - in front of the tags list or you can use = to replace the tags all together. You cannot add and remove tags at the same time.


To add feature tag to issue number 6:

$ edit 6 -t+feature

Removing tags works similarly. To remove critical tag from issue 46

$ edit 46 -t-critical

You can also specify multiple tags on the commandline

$ edit 7 -t+bug,low

to change issue status to wontfix you can do

$ edit 9 -s wontfix

to change issue status to closed and add critical tag:

$ edit 3 -s closed -t+critical

Searching for issues

Searching for issues works much like issue editing. You can specify any of -t, -s and -d to filter the issuelist by tags, status or description respectively. Search will be done on open issues by default, but you can search all issues by specifying -s all. You can specify multiple tags at the same time by separating them with comma


to search for all issues with bug tag:

$ search -s all -t bug

to search for closed issues with feature tag:

$ search -s closed -t feature

to search open issues for crash keyword, you can simply do

$ search -d crash

if you remember an old closed bug with critical and bug tags that contained word “impossible, you can do

$ search -s closed -t critical,bug -d impossible


To view multiline issue or issue description that doesn’t fit one terminal width, you can use

$ show <issue>


$ show 7
Status: open
Number: 7
Tag:    bug
Date:   2013-12-28

Program crashes when you specify both -e and -d
I found a way to make the program crash by doing

    $ edit 6 -d "will crash" -e

I get "Generic error"

Removing issues

To remove issues, you can simply do

$ remove <issue>

Using remove is discouraged since remove action cannot be undone, but you can either close it or mark it wontfix instead.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for issue, version 0.1.5
Filename, size File type Python version Upload date Hashes
Filename, size issue-0.1.5.tar.gz (22.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page