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?


Failed to load latest commit information.

Majestic is a GUI for Jest

  • Run all the tests or a single file
  • Toggle watch mode
  • 📸 Update snapshots
  • Examine test failures as they happen
  • Console.log() to the UI for debugging
  • 🚔 Built-in coverage report
  • 🔍 Search tests
  • 💎 Works with flow and typescript projects
  • 📦 Works with Create react app

Majestic supports Jest 20 and above

Get started

Run majestic via npx in a project directory

cd ./my-jest-project # go into a project with Jest
npx majestic # execute majestic

or install Majestic globally via Yarn and run majestic

yarn global add majestic # install majestic globally
cd ./my-jest-project # go into a project with Jest
majestic # execute majestic

or install Majestic globally via Npm and run majestic

npm install majestic -g # install majestic globally
cd ./my-jest-project # go into a project with Jest
majestic # execute majestic

Running as an app

Running with the --app flag will launch Majestic as a chrome app.

Optional configuration

You can configure Majestic by adding majestic key to package.json.

// package.json
    "majestic": {
        // if majestic fails to find the Jest package, you can provide it here. Should be relative to the package.json
        "jestScriptPath": "../node_modules/jest/bin/jest.js",
        // if you want to pass additional arguments to Jest, do it here
        "args": ['--config=./path/to/config/file/jest.config.js'],
        // environment variables to pass to the process
        "env": {
          "CI": "true"

Optional configuration in project with multiple Jest configuration files

    "majestic": {
        "jestScriptPath": "../node_modules/jest/bin/jest.js",
        "configs": {
          "config1": {
            "args": [],
            "env": {}
          "config2": {
            "args": [],
            "env": {}


--config - Will use this config from the list supplied in optional configuration.

--debug - Will output extra debug info to console. Helps with debugging.

--noOpen - Will prevent from automatically opening the UI url in the browser.

--port - Will use this port if available, else Majestic will pick another free port.

--version - Will print the version of Majestic and will exit.

Shortcut keys

alt+t - run all tests

alt+enter - run selected file

alt+w - watch

alt+s - search

escape - close search


Have a look at some of the common workarounds.


Have a look at the contribution guide.


Thanks goes to these wonderful people (emoji key):

Duncan Beevers


Max Bridgland

📖 🤔 🐛 💻

Yuraima Estevez


Jake Crosby


Gavin Henderson




Luan Ferreira


Tushar Gupta


Agusti Fernandez

💻 🤔


🐛 💻 📖


💻 🤔

Vikram Dighe


John Smey

💻 🤔 🐛


💻 🐛

Rahul A. Krishna

💻 🤔 🔧

Amila Welihinda



🐛 💻

adam klein

⚠️ 💻

Raphaël Barbazza


Phil Alsford


This project follows the all-contributors specification. Contributions of any kind welcome!