1.3.0 • Public • Published


    NPM version Build Status Discord Try it on gitpod

    🇺🇸 English 🇷🇺 Russian

    A Minecraft client running in a web page. Live demo at

    How it Works

    prismarine-web-client runs mineflayer and prismarine-viewer in the browser, which connects over WebSocket to a proxy which translates the WebSocket connection into TCP to connect to normal Minecraft servers. Prismarine-web-client is based on:

    Check these modules if you want to understand more how it works and contribute!


    Screenshot of prismarine-web-client in action

    Live Demo

    Click on this link to open it in your browser, no installation necessary:

    Tested on Chrome & Firefox for desktop platforms.


    To host it yourself, run these commands in bash:

    $ npm install -g prismarine-web-client
    $ prismarine-web-client

    Finally, open http://localhost:8080 in your browser.


    • Display mobs and players
    • Display blocks
    • Movement (you can move, and you see entities moving live)
    • Place and break blocks


    • Containers (inventory, chests, etc.)
    • Sounds
    • More world interactions (attacking entities, etc.)
    • Cosmetic rendering features (day night cycle, fog, etc.)


    If you're contributing/making changes, you need to install it differently.

    First, clone the repo.

    Then, set your working directory to that of the repo. For example:

    $ cd ~/prismarine-web-client/

    Finally, run

    $ npm install
    $ npm start

    This will start express and webpack in development mode; whenever you save a file, the build will be redone (it takes 5s), and you can refresh the page to get the new result.

    Connect to http://localhost:8080 in your browser.

    You may want to disable auto saving in your IDE to avoid constant rebuilding; see

    To check the production build (will take a minute to build), you can run npm run build-start.

    If you're interested in contributing, you can check projects at

    Some variables are exposed in the global window object for debugging:

    • bot
    • viewer
    • mcData
    • worldView
    • Vec3
    • pathfinder
    • debugMenu

    Adding stuff to the debugMenu

    debugMenu.customEntries['myKey'] = 'myValue' delete debugMenu.customEntries['myKey']

    Some debugging examples

    In Chrome DevTools:

    •'test') allows you to use the chat
    •{username, ping}) => ({username, ping})))) display the ping of everyone
    • += 5 jumps
    •{matching:(block) =>'diamond_ore', maxDistance:256}).position)) finds the position of a diamond block
    • bot.physics.stepHeight = 2 allows you to walk about blocks
    • bot.physics.sprintSpeed = 5 walks faster
    • bot.loadPlugin(pathfinder.pathfinder) then bot.pathfinder.goto(new pathfinder.goals.GoalXZ(100, 100)) goes to position 100, 100

    For more debugging ideas, read the mineflayer doc.


    npm i prismarine-web-client

    DownloadsWeekly Downloads






    Unpacked Size

    221 MB

    Total Files


    Last publish


    • rom1504