v0.1.13 · powered by wrenlift runtime

Crack open
a script. Hatch
does the rest.

Hatch is a cozy ecosystem of libraries and frameworks for the Wren scripting language — tested, versioned, and ready to drop into any project running on the Wrenlift runtime.

📦 40 packages ⚡ runs on wrenlift 0.1.13 🪺 MIT licensed

Three steps. You're running.

A single static binary, no extra runtime to install. Add packages with one command and you're up.

01

Install the CLI

One line installs the hatch binary and the wrenlift runtime.

02

Init a project

Scaffolds a hatchfile manifest and an entry script.

03

Run it

Wrenlift compiles and runs your script with hatched packages linked.

Or install via:
brew winget scoop apt docker
# 1. install
$ curl -fsSL wrenlift.com/install.sh | sh

# 2. scaffold
$ hatch new my-app
$ cd my-app
$ hatch add @hatch:http @hatch:json

# 3. run
$ hatch run
  listening on :8080 

Pick your canvas.

Two first-party frameworks, both built on the same runtime. Same packages, same tooling, same hatchfile.

Web

@hatch:web

Server-rendered, htmx-native web framework for Wren. Ships a dev server with hot reload, file-based routing, and a production bundler that targets Wrenlift edge or Node.

# scaffold a web app $ hatch new my-site --template web $ cd my-site && hatch dev
Read the web guide

Game

@hatch:game

Sprite batching, audio mixer, input mapping, ECS-lite scenes. 2D first, with hot reload for scripts, shaders, and assets — and a software renderer fallback so your prototype runs anywhere, browser included.

# scaffold a game $ hatch new my-game --template game $ cd my-game && hatch play
Read the game guide

Featured packages.

Curated, semver-pinned, spec-driven tested. Browse the full registry or search below.

@hatch:test
v0.2.0

Tiny test runner for *.spec.wren files.

May 3, 2026 ● dev tools
@hatch:image
v0.1.5

Image encode + decode. PNG / JPG / BMP / WebP in, RGBA8 buffer out — `Image.decode(bytes)` feeds straight into `@hatch:gpu`'s `Device.uploadImage(image)`, and `Image.encodePng(...)` writes synthesized buffers back out. Backed by the `image` crate.

May 3, 2026 ● data
@hatch:physics
v0.1.4

Rapier-backed physics. `World2D` and `World3D` from one import — bodies, colliders, gravity, force / impulse, position + velocity reads. Bundles rapier2d + rapier3d in a single cdylib so games never have to choose between dimensions at the package level. Wires into `@hatch:game` for a step-per-frame physics loop.

May 3, 2026 ● system
@hatch:gpu
v0.2.11

GPU primitives + 2D/3D renderers. Device, Buffer, Texture, Sampler, ShaderModule, BindGroup, RenderPipeline, CommandEncoder, RenderPass on the bottom; Camera2D/3D, Renderer2D (sprite batcher), Renderer3D (lit), Mesh, Material on top. wgpu on native, WebGPU on web — same Wren API both targets.

May 3, 2026 ● system
@hatch:window
v0.2.9

Window + input for any WrenLift app. winit on native, page-attached canvas on web — same `Window.create({...})` API, same `pollEvents` / `closeRequested` / `size` surface across targets. Bring-your-own canvas via `Window.attach(elementId)` on web.

May 3, 2026 ● system
@hatch:audio
v0.1.3

General-purpose audio playback for WrenLift apps. cpal-backed output stream + a tiny mixer; WAV decoding via hound. `Audio.context()` opens the device, `Sound.load(bytes)` decodes a clip, `audio.play(sound)` schedules immediate playback against the global mixer.

May 3, 2026 ● system
@hatch:sqlite
v0.1.6

Embedded SQLite. `Database.open(path)` returns a connection; prepared statements with named parameter binding, rows iterated as Maps, transactions, error handling. Backed by rusqlite (bundled libsqlite — no system dependency).

May 3, 2026 ● data
@hatch:hello
v0.1.0

Reference plugin layout for wasm-only `@hatch:*` packages. A `Hello.greet(name)` foreign method backed by a tiny Rust cdylib — copy this directory as the starting point for your own on-demand plugin and replace the body with the real work.

May 3, 2026 ● data
@hatch:web
v0.1.5

Server-rendered, htmx-native web framework for Wren. Router, middleware, content-negotiated rendering via @hatch:template, HTTP/1.1 server on top of @hatch:socket.

May 2, 2026 ● networking
@hatch:http
v0.3.2

HTTP/1.1 client with TLS, streaming bodies, and fiber-cooperative reads.

May 2, 2026 ● networking
@hatch:toml
v0.1.1

TOML parser and serializer, backed by the Rust `toml` crate.

May 1, 2026 ● data
@hatch:url
v0.1.1

URL parser, builder, and percent-encoder.

May 1, 2026 ● networking

Built for tiny scripts
and serious shipping.

Tiered runtime, fast

Wrenlift's tiered runtime is engineered for speed — cold scripts start quickly, hot paths get faster the longer they run.

Sandboxed by default

Capability-based permissions for filesystem, network, and process access.

Hatch bundle format

Ship your app and its packages as a single .hatch bundle — reproducible, signed, runnable on any wrenlift host.

Semver, properly

Lockfiles, deterministic resolution, and reproducible builds out of the box.