wow so syntax very doge much future
Clone or download



NPM version Build Status Dependency Status devDependency Status

This is an implementation of the best new compile-to-JS language, dogescript. Wow.

And yes, I am very aware I went about a very, er, non-conventional, way of parsing a language, and is probably riddled with bugs and edge-cases. However, this is dogescript, so anything goes!

         such dogescript
     very compiled
       npm wow


npm install -g dogescript


Command Line

dogescript without a file launches a REPL.

dogescript location/to/dogescript.djs pipes the result to stdout. Use a command like dogescript dogescript.djs > compiled.js to save to a file.


  • --beautify - Runs the code through a beautifier.
  • --true-doge - Implements "true doge" mode, which splits lines by 3 spaces, instead of by newlines. This stays behind a flag until the spacing it exports is identical to non-true-doge mode. Deprecated in 2.4.0, to be removed in 3.0.0
  • --run - Runs the dogescript code


dogescript(file, beauty, trueDoge)

  • file - A string of Dogescript.
  • beauty - A boolean, set to true if you want the output to be ran through a beautifier.
  • trueDoge - A boolean, set to true if you want to enable true-doge mode. Deprecated in 2.4.0, to be removed in 3.0.0

REPL Commands

  • .plz-load [path_to_doge]: loads dogescript code in the given file and adds it to the REPL environment. For this example, iota is a function that produces a series from 0 to n, ie: iota 5 => [0,1,2,3,4], and is defined in repl-test/iota.djs.


such iota much n
  very series is Array dose apply with null {length:n}&
  dose map with Number
wow series

Loaded and execute

DOGE> .plz-load repl-test/iota.djs
DOGE> undefined
DOGE> plz iota with 5
[ 0, 1, 2, 3, 4 ]

Language documentation

Projects using dogescript


Syntax highlighting

Build plugins


Dogescript was originally created by Zach Bruggeman, and is now maintained by the @dogescript/core team. Thank you to every contributor who's helped along the way!

$ git log --format='%aN' | sort -u
Alistair Mersereau
Bart van der Schoor
Ben Atkin
Cassidy Bridges
Chad Engler
Chris Wheatley
Christina Liu
Daniel Lockhart
Elan Shanker
Erik Erwitt
Jacob Groundwater
Joe Dailey
Johann Philipp Strathausen
Joseph Dailey
Mario Nachbaur
Nicholas Scheurich
Patrick Piemonte
Ray Toal
Zach Bruggeman


Join us at Since it is slack, you'll need an invite to the channel. Visit this site to get invited. The invite site is built with slack-invite-automation and is deployed to heroku. Since we are on the free tier, dyno's take a bit to load so give it at least 30 seconds to load the first time.