Brioche Project Update - December 2025

Published on

By Kyle Lacy

Brioche is a new package manager and build tool that we're making from scratch! Build scripts are written in TypeScript, so you get type-checking and editor completions with no hassle. We have a growing package ecosystem, so you can bring your favorite languages and dev tools into your own projects!

Check out our docs if you want to give it a spin! If you like it, consider helping fund Brioche's development and hosting costs via Liberapay or GitHub Sponsors, or check out other ways you can get involved with Brioche!

It’s the final project update of the year! With the holidays and… life stuff, this month was a little slower for me for Brioche work. But there’s still a lot of exciting stuff to share, and we just crossed another major package milestone!!! 🎉

Highlights from the year

Highlights from the year

With the year coming to a close, I wanted to start with a quick look back at some of the major milestones we reached this year:

Status report

Status report

TypeScript 5.9.3 upgrade

TypeScript 5.9.3 upgrade

@jaudiger opened #388 to upgrade the TypeScript version embedded in Brioche from v5.3.3 to v5.9.3! We didn’t spot any breakages across the brioche-packages repo during this upgrade, so this should be a pretty safe update that should give us a few new type-level tools and checks for free.

This feels like the right time to upgrade, since this is the last TypeScript version before v6.0, which is then the final release before the native TypeScript port in v7.0! There was a blog post earlier this month about TypeScript’s progress towards the native port in v7.0. I’m hoping that we’ll be able to integrate TypeScript 7 into Brioche not long after it’s ready to go, so we can take advantage of the major speed boost in type-checking!

brioche fmt improvements

brioche fmt improvements

The brioche fmt got some nice quality-of-life improvements from @jaudiger in #386.

The -p flag is no longer necessary (since you’d only ever want to format a local project, never one remotely!), and additionally you can now format individual .bri files instead of a full project directory!

These commands are now all (roughly) equivalent:

Terminal window
brioche fmt packages/std
brioche fmt -p packages/std
brioche fmt packages/std/**/*.bri

More major groundwork packages

More major groundwork packages

@jaudiger has continued a streak of gettings lots of new exciting packages done, and that includes a ton more work towards Linux GUI applications! I’ll share his summary of the changes from just the past week:

I did a lot of things during the last week, I was mainly focused on:

  • packaging the core libraries to later build bigger ones such as Mesa, FFMPEG, Wayland, etc. We do need a lot of core things right now, but I’m moving in the right direction
  • adding more common CLI tools to reach a broader audience

There’s a lot of X11/Wayland packages in the modern Linux desktop stack, but we’re starting to get a lot of packages from that ecosystem wired up, so it’s really exciting progress!

(and personally, ffmpeg is one I’m really excited about— although that one is kind of its own little black hole of package management challenges!)

Sad personal news

Sad personal news

Midway through the month, we put our 15-year-old cat to sleep. She was amazing and lived a long, loving, happy life, but it was still sudden and it’s been real hard.

Adorable calico cat laying on the floor, basking in the sunlight from the window. She's laying on her side with her paws out and looking at you relaxedly, waiting for belly rubs.

So overall, this month has been pretty slow-going for me.

If you’ve got a cat or other fuzzy creature, give them cuddles and a big pet for me.

Continued infrastructure work

Continued infrastructure work

Well, with the time I did spend on Brioche this month, I mostly continued on with the infrastructure work I discussed last month. I made some good steps forward, and the foundation is pretty sturdy now! …although a lot of it is “in the weeds” Kubernetes stuff (Longhorn for storage, Grafana for monitoring, etc.), so nothing really exciting to share yet.

Minor caching tweaks

Minor caching tweaks

I opened and merged #379, which added some very minor tweaks to the cache:

This change is pretty unassuming, but came up after a hair-pulling debugging session of failures in the brioche-packages repo, where builds were failing to upload to the cache sporadically. I think the root cause was related to some weird DNS quirks from some of my recent infrastructure work. But after getting this change in, then bumping up one of the timeouts in the brioche-packages workflow in brioche-dev/brioche-packages#2073, things have been running smoothly.

Housekeeping

Housekeeping

New packages

New packages

Since the last update, there were 159 new packages. During this month, we blew past another major milestone:

🎉 Brioche now has over 500 packages! 🎉

(At the time of writing, we’re sitting at 514, with about 2 dozen more in the build queue!)

As is tradition, here are all the new packages this month:

  • 3cpio
  • 6tunnel
  • aardvark_dns
  • acl
  • acme_redirect
  • act
  • aerleon
  • aften
  • age
  • age_plugin_yubikey
  • argocd
  • audit
  • autoprefixer
  • bacon_ls
  • berkeley_db
  • bkmr
  • bosh_cli
  • c_ares
  • cairo
  • cargo_shear
  • ccusage
  • cdebug
  • cf_terraforming
  • cglm
  • cilium_cli
  • cliproxyapi
  • clive
  • clorinde
  • cloud_nuke
  • comrak
  • copilot_language_server
  • coredns
  • cpio
  • cppcheck
  • cubejs_cli
  • docker_compose
  • dolt
  • dysk
  • esbuild
  • fabio
  • fabric_ai
  • flac
  • fmt
  • forgejo_runner
  • freeimage
  • fresh_editor
  • gflags
  • gfold
  • giflib
  • gitlab_runner
  • gleam
  • glib
  • glm
  • go_security_tracker
  • gost
  • graphite2
  • graphql_client_cli
  • hwloc
  • ipsw
  • jarl
  • jbig2dec
  • jd
  • lazygit
  • lefthook
  • lf
  • libaec
  • libbsd
  • libgcrypt
  • libgpg_error
  • libiconv
  • libidn
  • libidn2
  • libmd
  • libogg
  • libpipeline
  • libsamplerate
  • libselinux
  • libsemanage
  • libsepol
  • libtasn1
  • libudev_zero
  • liburing
  • libvorbis
  • libwebp
  • lz4
  • mailpit
  • mcp_server_kubernetes
  • meilisearch
  • melange
  • mesheryctl
  • microsoft_gsl
  • monocle
  • mq
  • munge
  • nghttp2
  • nghttp3
  • npq
  • numactl
  • oh_my_posh
  • open_policy_agent
  • openjpeg
  • orc
  • oterm
  • p11_kit
  • pack
  • parlay
  • parquet_tools
  • pcsc_lite
  • pinact
  • poetry
  • popt
  • prek
  • prettier
  • ragel
  • range_v3
  • rbspy
  • resterm
  • restish
  • rnr
  • robotframework
  • rosa
  • rqlite
  • rust_bindgen
  • rustic
  • rv
  • sass
  • shadowsocks_rust
  • simdjson
  • soxr
  • spirv_headers
  • swc
  • systemfd
  • tinyxml2
  • tllist
  • tombi
  • topgrade
  • treemd
  • tuios
  • tzdata
  • utf8proc
  • valkey
  • vespa_cli
  • vgt
  • vite
  • viu
  • watchexec
  • wayland
  • wayland_protocols
  • weaviate
  • xcb_util_cursor
  • xcb_util_keysyms
  • xcb_util_renderutil
  • xcb_util_wm
  • xk6
  • xvidcore
  • z3
  • zerofs
  • zimg
  • zuban

Brioche core updates

Brioche core updates