This is a listing of some of the open source software projects I’ve made. Most of them are simple command line tools or libraries, a few are bigger projects. All of them are released under the MIT license.

Bruce’s PEGs

Screenshot of bp BP is a tool similar to grep or sed, but built around using a custom Parsing Expression Grammar syntax designed to be concise and ergonomic enough for quick everyday command-line usage, while also expressive enough to handle parsing arbitrarily complex grammar rules.

Check it out on Github

The Nomsu Programming Language

Screenshot of nomsu The Nomsu programming language is a dynamically typed languaged with natural language syntax and strong metaprogramming capabilities.

Check out the language’s full website at nomsu.org

bb - The Bitty Browser - Command line tool

Animated screenshot of bb bb is a minimalist command line file browser meant as an even smaller alternative to file browsers like nnn and Ranger. The whole program clocks in under 2,000 lines of C code, with no external libraries beyond the C standard library. It makes heavy use of shell scripting to attain a high level of flexibility and customizability without code bloat.

Check it out on BitBucket

btui - Bruce’s Text User Interface - Multi-language Terminal Library

Screenshot of BTUI program BTUI is a minimal, embeddable, single-header-file Text User Interface (TUI) library and alternative to bloatware like ncurses. BTUI aims to be less than 1% the size of ncurses, while also providing a better API for the programmer who is not afraid to roll up their sleeves and manage their own state. If you want a drop-in TUI library that lets you switch into TUI mode, write some strings to the screen with 24-bit color, and get user keypresses in real-time without line buffering, then this is the library for you! BTUI also has language bindings for both Lua and Python.

Check it out on BitBucket

bin - Console Trash Bin Management

Screenshot of bin manual page bin is a POSIX shell implementation of the Freedesktop.org trashcan specification. It lets you run bin <file> to move a file to the trash bin instead of just rm <file>, which permanently deletes it immediately. Later, the file can be recovered with bin -u <file> or permanently erased with bin -e <file>.

Check it out on BitBucket

ASCII Table - Command line tool

Screenshot of ascii program ASCII-Table is an incredibly useful command line program that displays a browsable ASCII table, and can also show and edit raw ASCII values. I used to constantly open Google to get the exact ASCII values, but now no longer!

Check it out on BitBucket

NowOpen - Command line tool

Screenshot of nowopen program output NowOpen is handy command line script that checks the current time and day and prints out which businesses are currently open, and for how much longer. The data is read in from a simple and flexible file format, and using nowopen is several orders of magnitude faster than Yelp, and is a great way to decide where to eat (nowopen food) or figure out if someplace you frequent is still open (nowopen library).

Check it out on BitBucket

Arg - Command line tool

Screenshot of arg program output Arg is an incredibly easy to use alternative to getopt and getopts for command line scripting. This tool does one thing, and does it well: it gets one argument from a list of arguments and prints it.

Check it out on BitBucket

Lua Debug TUI (LDT) - Lua library

Screenshot of LDT debugging LDT is a Lua tool for debugging Lua and Moonscript programs. Wrap your code in a function call to LDT and whenver a breakpoint or uncaught error occurs, LDT will open an interactive debugging window. This was invaluable when I was making Nomsu.

Check it out on BitBucket

Lua ImmuTable - Lua library

Screenshot of ImmuTable usage Lua ImmuTable is a Lua C-API library for immutable tables. Using immutable datastructures is a great way to program, and it’s something that was missing until this library.

Check it out on BitBucket

Hill Noise - Lua library

Render of 3D noise function This is a Lua implementation of Hill Noise, made for use with the LOVE game engine, or generally with Lua.

Check it out on BitBucket

Sampleprof - Lua library

Screenshot of sampleprof output Sampleprof is a Lua profiling library that uses sample profiling (randomly interrupting the program to gather data points) to get a good picture of runtime hot spots while being minimally invasive.

Check it out on BitBucket

LuaDiffer - Lua library

Screenshot of luadiffer output LuaDiffer is a simple Lua diff library, for comparing strings.

Check it out on BitBucket

Nuke - Command line gizmo

Animated screenshot of nuke program Nuke is a silly little command line program that lets you nuke files from orbit with ASCII animations. Because sometimes mere deletion is too good for a file.

Check it out on BitBucket

2pend - Command line gizmo

Animated screenshot of double pendulum 2pend is a console double pendulum simulator written in C with no external libraries. It’s just plain enjoyable to watch.

Check it out on BitBucket

TB Conway - Command line gizmo

Animated screenshot of conway’s game of life TB Conway is a simple implementation of Conway’s Game of Life written in C with no external libraries. Runs in the terminal and looks pretty.

Check it out on BitBucket

Vim PEG - Vim plugin

Screenshot of vim PEG highlighting This is a syntax plugin for Vim that handles Parsing Expression Grammars.

Check it out on BitBucket


Screenshot of dotfiles This is a collection of my general configuration files for vim, zsh, etc.

Check it out on BitBucket