{"id":29117839,"url":"https://github.com/prismarinejs/prismarine-web-client","last_synced_at":"2025-06-29T12:07:55.019Z","repository":{"id":178354086,"uuid":"342961897","full_name":"PrismarineJS/prismarine-web-client","owner":"PrismarineJS","description":"Minecraft web client running in your browser","archived":false,"fork":false,"pushed_at":"2025-01-26T22:02:43.000Z","size":59851,"stargazers_count":490,"open_issues_count":73,"forks_count":215,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-06-28T23:37:06.683Z","etag":null,"topics":["browser-game","minecraft","minecraft-client","web"],"latest_commit_sha":null,"homepage":"https://prismarinejs.github.io/prismarine-web-client/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PrismarineJS.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-27T21:27:58.000Z","updated_at":"2025-06-20T09:12:19.000Z","dependencies_parsed_at":"2024-01-03T14:14:16.812Z","dependency_job_id":"717765db-1cdd-4d66-8120-1684a510c1b3","html_url":"https://github.com/PrismarineJS/prismarine-web-client","commit_stats":{"total_commits":215,"total_committers":26,"mean_commits":8.26923076923077,"dds":0.5674418604651164,"last_synced_commit":"344f0cacfb88662e7e12a24e06cec5619394b75b"},"previous_names":["prismarinejs/prismarine-web-client"],"tags_count":7,"template":false,"template_full_name":"PrismarineJS/prismarine-template","purl":"pkg:github/PrismarineJS/prismarine-web-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrismarineJS%2Fprismarine-web-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrismarineJS%2Fprismarine-web-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrismarineJS%2Fprismarine-web-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrismarineJS%2Fprismarine-web-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PrismarineJS","download_url":"https://codeload.github.com/PrismarineJS/prismarine-web-client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrismarineJS%2Fprismarine-web-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262589898,"owners_count":23333257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser-game","minecraft","minecraft-client","web"],"created_at":"2025-06-29T12:07:51.590Z","updated_at":"2025-06-29T12:07:55.007Z","avatar_url":"https://github.com/PrismarineJS.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# prismarine-web-client\n[![NPM version](https://img.shields.io/npm/v/prismarine-web-client.svg)](http://npmjs.com/package/prismarine-web-client)\n[![Build Status](https://github.com/PrismarineJS/prismarine-web-client/workflows/CI/badge.svg)](https://github.com/PrismarineJS/prismarine-web-client/actions?query=workflow%3A%22CI%22)\n[![Discord](https://img.shields.io/badge/chat-on%20discord-brightgreen.svg)](https://discord.gg/GsEFRM8)\n[![Try it on gitpod](https://img.shields.io/badge/try-on%20gitpod-brightgreen.svg)](https://gitpod.io/#https://github.com/PrismarineJS/prismarine-web-client)\n\n| 🇺🇸 [English](README.md) | 🇷🇺 [Russian](README_RU.md)  | 🇵🇹 [Portuguese](README_PT.md) |\n| ----------------------- | -------------------------- | ---------------------------- |\n\nA Minecraft client running in a web page. **Live demo at https://prismarinejs.github.io/prismarine-web-client/**\n\n\n## How it Works\nprismarine-web-client runs mineflayer and prismarine-viewer in the browser, which connects over WebSocket to a proxy \nwhich translates the WebSocket connection into TCP to connect to normal Minecraft servers. Prismarine-web-client is based on:\n* [prismarine-viewer](https://github.com/PrismarineJS/prismarine-viewer) for the world rendering\n* [mineflayer](https://github.com/PrismarineJS/mineflayer) for the high-level Minecraft client API\n\nCheck these modules if you want to understand more how it works and contribute!\n\n## Screenshot\n![Screenshot of prismarine-web-client in action](screenshot.png)\n\n## Live Demo\nClick on this link to open it in your browser, no installation necessary: https://prismarinejs.github.io/prismarine-web-client/\n\n*Tested on Chrome \u0026 Firefox for desktop platforms.*\n\n## Usage\nTo host it yourself, run these commands in bash: \n```bash\n$ npm install -g prismarine-web-client\n$ prismarine-web-client\n``` \nFinally, open `http://localhost:8080` in your browser.\n\n## Features\n\n* Display mobs and players\n* Display blocks \n* Movement (you can move, and you see entities moving live)\n* Place and break blocks\n\n## Roadmap\n* Containers (inventory, chests, etc.)\n* Sounds\n* More world interactions (attacking entities, etc.)\n* Cosmetic rendering features (day night cycle, fog, etc.)\n\n## Development\n\nIf you're contributing/making changes, you need to install it differently.\n\nFirst, clone the repo.\n\nThen, set your working directory to that of the repo. For example:\n```bash\n$ cd ~/prismarine-web-client/\n```\n\nFinally, run\n\n```bash\n$ npm install\n$ npm start\n```\n\nThis will start express and webpack in development mode; whenever you save a file, the build will be redone (it takes 5s), \nand you can refresh the page to get the new result.\n\nConnect to http://localhost:8080 in your browser.\n\nYou may want to disable auto saving in your IDE to avoid constant rebuilding; see https://webpack.js.org/guides/development/#adjusting-your-text-editor.\n\nTo check the production build (will take a minute to build), you can run `npm run build-start`.\n\nIf you're interested in contributing, you can check projects at https://github.com/PrismarineJS/prismarine-web-client/projects.\n\nSome variables are exposed in the global ``window`` object for debugging:\n* ``bot``\n* ``viewer``\n* ``mcData``\n* ``worldView``\n* ``Vec3``\n* ``pathfinder``\n* ``debugMenu``\n\n### Adding stuff to the debugMenu\n\ndebugMenu.customEntries['myKey'] = 'myValue'\ndelete debugMenu.customEntries['myKey']\n\n### Some debugging examples\n\nIn Chrome DevTools:\n\n* `bot.chat('test')` allows you to use the chat\n* `bot.chat(JSON.stringify(Object.values(bot.players).map(({username, ping}) =\u003e ({username, ping}))))` display the ping of everyone\n* `window.bot.entity.position.y += 5` jumps\n* `bot.chat(JSON.stringify(bot.findBlock({matching:(block) =\u003e block.name==='diamond_ore', maxDistance:256}).position))` finds the position of a diamond block\n* `bot.physics.stepHeight = 2` allows you to walk about blocks\n* `bot.physics.sprintSpeed = 5` walks faster\n* `bot.loadPlugin(pathfinder.pathfinder)` then `bot.pathfinder.goto(new pathfinder.goals.GoalXZ(100, 100))` goes to position 100, 100\n\nFor more debugging ideas, read the [mineflayer](https://github.com/PrismarineJS/mineflayer) doc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprismarinejs%2Fprismarine-web-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprismarinejs%2Fprismarine-web-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprismarinejs%2Fprismarine-web-client/lists"}