node package manager


brnfckr, a brainfuck minifier written in JavaScript

For an online demo, see

Feel free to fork if you see possible improvements!

Installation and usage

In a browser:

<script src="brnfckr.js"></script>

Via npm:

npm install brnfckr

In Narwhal, Node.js, and RingoJS:

var brnfckr = require('brnfckr');

In Rhino:


Using an AMD loader like RequireJS:

    'paths': {
      'brnfckr': 'path/to/brnfckr'
  function(brnfckr) {

Usage example:

var code = 'lol . wat + heh [ huh . hah + oh ] yay';
brnfckr.minify(code); // '.+[.+]' 

Using the brnfckr binary

To use the brnfckr binary in your shell, simply install brnfckr globally using npm:

npm install -g brnfckr

After that you will be able to minify brainfuck programs from the command line:

$ brnfckr -c '.+[.+] prints out all ASCII characters'
$ brnfckr -f foo.b

See brnfckr --help for the full list of options.


brnfckr has been tested in at least Chrome 27, Firefox 3-19, Safari 4-6, Opera 10-12, IE 6-10, Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.9, and Rhino 1.7RC4.

Unit tests & code coverage

After cloning this repository, run npm install to install the dependencies needed for brnfckr development and testing. You may want to install Istanbul globally using npm install istanbul -g.

Once that’s done, you can run the unit tests in Node using npm test or node tests/tests.js. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use grunt test.

To generate the code coverage report, use grunt cover.


Mathias Bynens twitter/mathias


brnfckr is dual licensed under the MIT and GPL licenses.