Skip to main content
logo

Beet

GitHub Actions PyPI PyPI - Python Version Discord

The Minecraft pack development kit.

Introduction

Minecraft resource packs and data packs work well as distribution formats but can be pretty limiting as authoring formats. You can quickly end up having to manage hundreds of files, some of which might be buried within the bundled output of various generators.

The beet project is a development kit that tries to unify data pack and resource pack tooling into a single pipeline. The community is always coming up with pre-processors, frameworks, and generators of all kinds to make the developer experience more ergonomic. With beet you can seamlessly integrate all these tools in your project.

Screencasts

Library

from beet import ResourcePack, Texture

# Open a zipped resource pack and add a custom stone texture
with ResourcePack(path="stone.zip") as assets:
    assets["minecraft:block/stone"] = Texture(source_path="custom.png")

The beet library provides carefully crafted primitives for working with Minecraft resource packs and data packs.

  • Create, read, edit and merge resource packs and data packs
  • Handle zipped and unzipped packs
  • Fast and lazy by default, files are transparently loaded when needed
  • Statically typed API enabling rich intellisense and autocompletion
  • First-class pytest integration with detailed assertion explanations

Toolchain

from beet import Context, Function

def greet(ctx: Context):
    """Plugin that adds a function for greeting the player."""
    ctx.data["greet:hello"] = Function(["say hello"], tags=["minecraft:load"])

The beet toolchain is designed to support a wide range of use-cases. The most basic pipeline will let you create configurable resource packs and data packs, but plugins make it easy to implement arbitrarily advanced workflows and tools like linters, asset generators and function pre-processors.

  • Compose plugins that can inspect and edit the generated resource pack and data pack
  • Configure powerful build systems for development and creating releases
  • First-class template integration approachable without prior Python knowledge
  • Link the generated resource pack and data pack to Minecraft
  • Automatically rebuild the project on file changes with watch mode
  • Batteries-included package that comes with a few handy plugins out of the box
  • Rich ecosystem, extensible CLI, and powerful generator and worker API

Installation

We recommend uv (https://github.com/astral-sh/uv#installation). With uv installed, you can try beet by running uvx beet. You can also install beet as a global tool on your machine.

$ uv tool install beet

If you see the message warning: ... is not on your PATH, you'll need to add the specified directory to your global path to invoke beet directly instead of using uvx beet.

You can make sure that beet was successfully installed by trying to use the toolchain from the command-line.

$ beet --help
Usage: beet [OPTIONS] COMMAND [ARGS]...

  The beet toolchain.

Options:
  -p, --project PATH  Select project.
  -s, --set OPTION    Set config option.
  -l, --log LEVEL     Configure output verbosity.
  -v, --version       Show the version and exit.
  -h, --help          Show this message and exit.

Commands:
  build  Build the current project.
  cache  Inspect or clear the cache.
  link   Link the generated resource pack and data pack to Minecraft.
  watch  Watch the project directory and build on file changes.

Contributing

Contributions are welcome. Make sure to first open an issue discussing the problem or the new feature before creating a pull request. The project uses uv.

$ uv sync

You can run the tests with uv run pytest. We use pytest-minecraft to run tests against actual Minecraft releases.

$ uv run pytest
$ uv run pytest --minecraft-latest

We also use pytest-insta for snapshot testing. Data pack and resource pack snapshots make it easy to monitor and review changes.

$ uv run pytest --insta review

The code is formatted and checked with ruff.

$ uv run ruff format
$ uv run ruff check

The documenation site uses Zensical.

$ uv run zensical serve
$ uv run zensical build

License - MIT

Metadata

Release files for beet 0.119.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for beet 0.119.1
File Size Uploaded
beet-0.119.1.tar.gz 98.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for beet 0.119.1
File Interpreter ABI Platform
beet-0.119.1-py3-none-any.whl Python 3 none any Details

Total release size: 226.3 kB

Release files / beet-0.119.1.tar.gz

Download URL beet-0.119.1.tar.gz
Size 98.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c54c5501791027b408ee7ef4e74dd93a59c1eb64032ca1c6c5588b48c1c0c220
BLAKE2b-256 checksum
How to use checksums
9c75a7546a802aa2c4fefb6c28777fdc8c393e9340f6dfcc729c6efdd914037e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / beet-0.119.1-py3-none-any.whl

Download URL beet-0.119.1-py3-none-any.whl
Size 127.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
af0c49d5dde1dd059339000c16092cc71eeec1c86636a595e3eb00f182b2ee58
BLAKE2b-256 checksum
How to use checksums
4af3caa919e1f6b3dcfb28247d7743a512babd4049875c6833c295c3cacba4d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.119.1 This release

2 release files

0.97.1

2 release files

0.97.0

2 release files

0.96.1

2 release files

0.96.0

2 release files

0.95.6

2 release files

0.95.5

2 release files

0.89.1

2 release files

0.89.0

2 release files

0.86.0

2 release files

0.85.0

2 release files

0.84.1

2 release files

0.84.0

2 release files

0.82.4

2 release files

0.82.3

2 release files

0.82.2

2 release files

0.82.1

2 release files

0.82.0

2 release files

0.81.3

2 release files

0.81.2

2 release files

0.81.1

2 release files

0.80.1

2 release files

0.80.0

2 release files

0.79.1

2 release files

0.79.0

2 release files

0.78.1

2 release files

0.78.0

2 release files

0.75.0

2 release files

0.74.0

2 release files

0.73.3

2 release files

0.73.2

2 release files

0.73.1

2 release files

0.73.0

2 release files

0.72.1

2 release files

0.72.0

2 release files

0.71.2

2 release files

0.71.1

2 release files

0.71.0

2 release files

0.70.0

2 release files

0.69.0

2 release files

0.68.2

2 release files

0.68.1

2 release files

0.68.0

2 release files

0.67.1

2 release files

0.67.0

2 release files

0.66.0

2 release files

0.65.1

2 release files

0.65.0

2 release files

0.64.2

2 release files

0.63.1

2 release files

0.63.0

2 release files

0.62.0

2 release files

0.61.0

2 release files

0.60.1

2 release files

0.60.0

2 release files

0.59.0

2 release files

0.58.0

2 release files

0.57.0

2 release files

0.55.1

2 release files

0.55.0

2 release files

0.51.2

2 release files

0.51.1

2 release files

0.51.0

2 release files

0.50.9

2 release files

0.50.8

2 release files

0.50.7

2 release files

0.50.6

2 release files

0.50.5

2 release files

0.50.4

2 release files

0.50.3

2 release files

0.49.0

2 release files

0.48.5

2 release files

0.48.4

2 release files

0.48.3

2 release files

0.48.2

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.0

2 release files

0.45.3

2 release files

0.45.2

2 release files

0.45.1

2 release files

0.45.0

2 release files

0.44.9

2 release files

0.44.8

2 release files

0.43.3

2 release files

0.43.2

2 release files

0.43.1

2 release files

0.43.0

2 release files

0.42.2

2 release files

0.42.1

2 release files

0.42.0

2 release files

0.41.9

2 release files

0.41.8

2 release files

0.41.6

2 release files

0.41.5

2 release files

0.41.4

2 release files

0.41.3

2 release files

0.41.2

2 release files

0.41.1

2 release files

0.39.0

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.1

2 release files

0.32.0

2 release files

0.31.4

2 release files

0.31.3

2 release files

0.31.2

2 release files

0.31.1

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.1

2 release files

0.24.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.3

2 release files

0.17.2

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.10.5

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page