shell-script based bug tracker, command-line
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


BUGZY.TXT Command Line Bug Tracker

A simple, extensible shell script (bash) for managing bugs/features/enhancements and tasks.

Maintains summary, description, create_date, scheduled start date, due_date, severity, type, priority, assigned to, multiple comments, fix/resolution, various statuses.

All modifications are logged. Mails are sent using the 'mail' command if specified.


User Documentation


  1. Download the latest release from

  2. Edit the bugzy.cfg and update the TSV_DIR to whereever your bug files should be created.

  3. Make the file executable, and place it in your PATH.

    chmod +x
    mv ~/bin/bugzy

  4. Move the config file to your home directory.

    mv bugzy.cfg ~/

The bug files are created in a directory ".todos" inside TSV_DIR.

Add-ons may be placed in $HOME/.bugzy.actions.d (default).


Unfortunately, some reports do require GNU's date (coreutils). In add, I have coded so GNU will fail through to BSD then to perl, but there's a lot of work to do the same for all date calcs. There is a big difference in the options of GNU and BSD :-(.

If you use BSD date, pls install gnu's date as gdate and in replace DATE=$( date ) with DATE=$( gdate )


Current operations include add, mod, delete, list, list by severity, show / print, tag, quick/q (listing), grep, qadd (quick add) and various listings.

When adding an issue, entry of fields can be reduced by adding a default in the config file, and setting PROMPT to NO. When entering due_date, a value such as "+3" or "tomorrow" may be entered (provided your version of date can do the conversion.

You can add an issue with only a title using qadd. Defaults will be used for other fields, or can be passed on the command line (use help option for examples).

b qadd --type:bug --severity:cri --due_date:2009-12-26 "a title"

Actions to directly change status are open, started, closed, canceled, stopped or the first 3 letter of each.

"pri" adds a priority to as task or bug, which results in a change in color, and having it sorted above. "depri" removes priority.

"liststat" lists tasks for a given status (|open|closed|started|stopped|canceled|).

"show" item#

b show 106    # shows the bug 106, with colors 
b -p show 106  # show the bug in plain (no colors)

"viewlog" item#

b log 108 # displays logs of 108

"viewcomment" item# # view comments for a item

"addcomment" item# # add a comment

"fix" item# # add a fix or resolution

"recentcomment" | "rc" # view recent comments "recentlog" | "rl" # view recent logs

"delcomment" item# comment# # delete comment from an item

"lbs" # list by severity b lbs --fields:"1,3,4,7,8" # display only given fields

"upcoming" | "upc" [--start-date=true] list upcoming tasks based on due date (or optionally scheduled start date)

"overdue" [--started=1] list tasks that should have finished (or started) by now (an addon that uses GNU's gawk)

Add-ons include mdel, mpri, mdepri which do multiple deletes or priority setting and unsetting.

From v0.3.0, you may view deleted or archived data with the --deleted=true or --archived=true. This would work for show, print, list, quick, grep.


You may also alias bugzy to "b" in ~/.bashrc or equivalent.

 alias b='bugzy -d ~/bugzy.cfg'  
 alias bq='b q -CLO -CAN'

 b add "Module aaa crashes on startup"  
 b show
 b list  
 b mod 1 # user can select fields to modify 
 b start 1  
 b close --comment="some optional comment comes here" 1  
 b clo   --fix="resolved by ...." 1
 b show  
 b add "Module bbb crashes on startup" # user prompted for other fields 
 b pri 2 A  

 b depri 2  
 b q
 b q -CLO -CAN
 b q "(OPE|STA)"
 b status
 b grep crash
 b tag URG 1 2
 b grep @URG
 b liststat OPE
 b newest 5
 b recentlog
 b recentcomment
 b chpri 1 2 P2
 b chstart 1 2 +5
 b chstart 1 2 2009-12-25

 b -h     # short help
 b help   # longer help


Quick report


/* vim: set tw=72: */