Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

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 official node-jscs. It is now powered by eslint and code-mirror.

Build Status

Run the editor here

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


5.0 - 26 Apr 2020

  • Update ESLint to version 6/7
  • Update ES configuration to ES2020 (includes async syntax)
  • Remove legacy JSCS support

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.