Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

MrDoob Approves?

This is a browser-based tool to check, validate, formatter, lint javascript code.

Initially created for Mr.doob's Code Style™, it can now support multiple code styles.

It has evolved from a modified jscs of jscs by gero3 (for auto-fixing) before the offical node-jscs. It is now powered by eslint and code-mirror.

Build Status

Run the editor here

Old editor (JSCS)

For ESLint Users

npm install --save-dev eslint-config-mdcs

Add this to .eslintrc.

  "extends": "mdcs"


This tool helps to check if your code is in Mr.doob's Code Style™ and can help you auto-format it. This is useful if you are making a pull-request to mrdoob's javascript projects like three.js. More about this in this blog post


4.0 - 15 Nov 2016

  • Powered by ESLint
  • ES6 code support!
  • Updated Linting rules
  • Slight interface tweaks
  • Some cleanup

### Planned features for version 3

  • Minimalistic linting engine
  • JSCS Rule Editing
  • JSCS library 2 (supporting ES6 with babel)

2.0 - 1 Dec 2015

  • JSCS library with Autofix (v1.13.1, last official version without Babel)
  • Updated MDCS rules - space checks
  • Ability to chose other JSCS presets (crockford, google, jquery, wikimedia etc)
  • Simpler Autofix Button

1.0 - 12 Jan 2015

  • Mr.doob's Code Style™ validator
  • Check as you type
  • Gutter hinting
  • JS syntax highlighting using code mirror
  • Auto-formatting with diff editor
  • Jump to error
  • Trailing spaces hinting
  • Open file


This project uses some of these philosophy

  • TDDD style - TODO Driven Development.
  • Open open-source model - Significant contributors gets commit access to github repo
  • Release early, release often - main branch is gh-pages

Instructions for this project's workflow

You need npm, git, webpack to be able to create a compressed bundle. Clean install:

npm run install

will install webpack with npm install -g webpack and run npm install to update dependencies.

use webpack -p or npm run bundle to create bundles for release.

use webpack --watch or npm run watch if you are testing bundles locally.


p.s. This project, its name or code was neither approved or endorsed by mrdoob.