Skip the lazy part,
work hard and smart.
Scaffold, build, and deploy Minecraft Bedrock add-ons in TypeScript or JavaScript. One command to start, one to ship straight into the right Minecraft folder.
npx create-mc-bedrock
Run in your terminal after installing Node.js.
- TypeScript or JavaScript
- Deploys to every Minecraft layout
- No lock-in
// pain
Leave us the lazy setup work, focus on building.
Spend your time creating, not setting up. All the essentials are handled for you, so you can jump straight into development.
Manual deploy loop
TS-compile, copy to com.mojang, reload the world, repeat. Forever.
bedrock-build deploy --watch rebuilds and re-syncs on save.
bedrock-build deploy --watch
No manual zipping
Packaging an addon meant hand-zipping folders and praying the structure was right.
bedrock-build pack produces a clean .mcaddon in one command.
bedrock-build pack
// positioning
Where Bedrock CLI fits
Three tools, three bands. mct teaches the official way, Regolith powers heavy pipelines, and Bedrock CLI is the approachable middle.
mct (Microsoft)
The official toolchain. Best when you're learning the raw @minecraft API or following a Microsoft tutorial.
Best for: learning the official way.
Bedrock CLI
The approachable middle. Scaffold once, then create:weapon, create:block, create:entity wire every linked file for you. Grows from your first add-on to a shipped one.
Best for: building and shipping add-ons fast.
Regolith
Advanced filter pipelines for large multi-pack projects with custom transforms.
Best for: heavy pipelines at scale.
// features
Everything a professional Bedrock dev needs.
From an 8 year experienced developer who worked on the official Minecraft x Cut the Rope DLC.
One command to scaffold
Name it, pick a language, get a wired manifest and deps. No copy-paste setup, no source picker.
$ npx create-mc-bedrock ? Project name › my-addon ? Language › TypeScript ? Install deps? › yes ✓ workspace ready in my-addon/
create:* generators
One command writes every linked file: behavior JSON, resource JSON, texture and lang registration. Beginners run it with zero flags; CI runs it fully non-interactive.
$ npm run create:weapon -- fire_sword --mode 3d --icon sword → create packs/BP/items/fire_sword.item.json → create packs/RP/attachables/fire_sword.attachable.json → create packs/RP/render_controllers/fire_sword.rc.json → merge item_texture.json + en_US.lang ✓ fire_sword wired in one shot
Hot reload to com.mojang
Edit, save, see it in Minecraft. No alt-tab, no manual copy.
$ bedrock-build deploy --watch → watching packs/ and src/ → build OK · synced BP + RP → build OK · synced BP + RP
Production builds
Minified, sourcemap-free bundles ready for Marketplace, CurseForge, or anywhere.
$ bedrock-build pack → build --release → packaged dist/my-addon-1.0.0.mcaddon
TypeScript first
Strict types against @minecraft/server. Autocomplete and refactor like a real codebase.
import { world } from "@minecraft/server"; world.afterEvents.playerSpawn.subscribe((e) => { e.player.sendMessage("Welcome!"); });
Fresh UUIDs every time
Manifests are regenerated at scaffold time. Two projects never collide on import.
{ "header": { "name": "my-addon", "uuid": "9c1d…<auto>", "version": [1, 0, 0] } }
Config you can actually read
One bedrock.config.json controls entry, pack paths, deploy target, and engine version.
{ "name": "my-addon", "entry": "src/main.ts", "packs": { "bp": "packs/BP", "rp": "packs/RP" }, "deploy": { "target": "retail" } }
// comparison
How Bedrock CLI compares
Three bands, three trade-offs. mct is for learning the official way, Regolith is for advanced filter pipelines, and Bedrock CLI is the approachable middle: scaffold once, generate linked files, ship.
| Feature | Bedrock CLI | Regolith | mct (Microsoft) | Raw setup |
|---|---|---|---|---|
| Zero-setup runtime | ✓Just Node.js | ~Filters add runtimes | ~Node + config | ✕DIY |
| TypeScript and JavaScript | ✓Both, pre-wired | ~Via filters | ~TS-focused | ✕Set it up yourself |
| Deploy to com.mojang on save | ✓deploy --watch | ~watch + export target | ~Watch, manual reload | ✕DIY |
| Finds the right game folder | ✓GDK/Preview/UWP/Edu | ~Configured target | ~Recent versions | ✕Manual |
| .mcaddon packaging | ✓One command | ~Export config | ~Separate step | ✕Zip by hand |
| No lock-in (plain packs) | ✓Packs in, packs out | ~Filter pipeline | ✓Standard packs | ✓Standard packs |
| Learning curve | ✓Low: 4 commands | ~Filters + config | ~Medium | ✕Steep |
Bedrock CLI
Default- ✓Zero-setup runtimeJust Node.js
- ✓TypeScript and JavaScriptBoth, pre-wired
- ✓Deploy to com.mojang on savedeploy --watch
- ✓Finds the right game folderGDK/Preview/UWP/Edu
- ✓.mcaddon packagingOne command
- ✓No lock-in (plain packs)Packs in, packs out
- ✓Learning curveLow: 4 commands
Regolith
- ~Zero-setup runtimeFilters add runtimes
- ~TypeScript and JavaScriptVia filters
- ~Deploy to com.mojang on savewatch + export target
- ~Finds the right game folderConfigured target
- ~.mcaddon packagingExport config
- ~No lock-in (plain packs)Filter pipeline
- ~Learning curveFilters + config
mct (Microsoft)
- ~Zero-setup runtimeNode + config
- ~TypeScript and JavaScriptTS-focused
- ~Deploy to com.mojang on saveWatch, manual reload
- ~Finds the right game folderRecent versions
- ~.mcaddon packagingSeparate step
- ✓No lock-in (plain packs)Standard packs
- ~Learning curveMedium
Raw setup
- ✕Zero-setup runtimeDIY
- ✕TypeScript and JavaScriptSet it up yourself
- ✕Deploy to com.mojang on saveDIY
- ✕Finds the right game folderManual
- ✕.mcaddon packagingZip by hand
- ✓No lock-in (plain packs)Standard packs
- ✕Learning curveSteep
Note: mct is the place to learn the raw API the official way, and Regolith is powerful for advanced multi-pack filter pipelines. Bedrock CLI is the complement, not a replacement: it emits plain standard packs both tools can also consume, with zero lock-in.
Ready to ship your add-on?
One command to scaffold, one command to deploy, one command to pack. That's the whole pitch.
npx create-mc-bedrock