Bedrock CLI: Skip the lazy part, work hard and smart.

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
VersionNode.jsLicense

// 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.

How we fix it

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.

How we fix it

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.

Recommended

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.

bash
$ 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.

bash
$ 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.

bash
$ 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.

bash
$ 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.

typescript
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.

json
{
  "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.

json
{
  "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.

Bedrock CLI

Default
  • Zero-setup runtime
    Just Node.js
  • TypeScript and JavaScript
    Both, pre-wired
  • Deploy to com.mojang on save
    deploy --watch
  • Finds the right game folder
    GDK/Preview/UWP/Edu
  • .mcaddon packaging
    One command
  • No lock-in (plain packs)
    Packs in, packs out
  • Learning curve
    Low: 4 commands

Regolith

  • ~
    Zero-setup runtime
    Filters add runtimes
  • ~
    TypeScript and JavaScript
    Via filters
  • ~
    Deploy to com.mojang on save
    watch + export target
  • ~
    Finds the right game folder
    Configured target
  • ~
    .mcaddon packaging
    Export config
  • ~
    No lock-in (plain packs)
    Filter pipeline
  • ~
    Learning curve
    Filters + config

mct (Microsoft)

  • ~
    Zero-setup runtime
    Node + config
  • ~
    TypeScript and JavaScript
    TS-focused
  • ~
    Deploy to com.mojang on save
    Watch, manual reload
  • ~
    Finds the right game folder
    Recent versions
  • ~
    .mcaddon packaging
    Separate step
  • No lock-in (plain packs)
    Standard packs
  • ~
    Learning curve
    Medium

Raw setup

  • Zero-setup runtime
    DIY
  • TypeScript and JavaScript
    Set it up yourself
  • Deploy to com.mojang on save
    DIY
  • Finds the right game folder
    Manual
  • .mcaddon packaging
    Zip by hand
  • No lock-in (plain packs)
    Standard packs
  • Learning curve
    Steep

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