incus-compose v1.3 has been released

incus-compose v1.3 has been released

incus-compose is a drop-in replacement for docker compose that runs your compose.yaml on Incus, with the full Incus API as an escape hatch when you need more than the Compose spec covers. Twelve days for 1.3 to come: backup, port-forward, and all the commands you might have been looking for. Full release notes: incus-compose 1.3 has been released on the Linux Containers forum. Two bits that did not make the announcement. run was a lot of hassle to create Incus has no “start this, tell me what it exited with”. An instance runs its entrypoint and the exit status goes nowhere. ...

Tech · August 28, 2026 · 2 min · René Jochum
The Boring One In Action

The Boring One In Action

In The Ones I wrote down a table of imaginary agents. The top row was the boring one: an agent that asks what a thing is for, and cannot propose and cannot cut. Yesterday I ran it by hand. No custom runner, no daemon, no theones binary. Two terminal sessions, two log files, and a real task on incus-compose. It found real defects and the work landed. The interesting part is where the constraint came off, and that I did not notice at the time. ...

Tech · August 26, 2026 · 7 min · René Jochum
Constraints Outside, Freedom Inside

Constraints Outside, Freedom Inside

One of the architectural rules in the AGENTS.md of incus-compose is: Constraints outside, freedom inside. A unit is predictable from the outside: what it receives, what it returns, and which effects may escape are fixed. Inside those constraints, it is free to reconnect, coordinate goroutines, or replace its machinery without involving its callers. An operation may send messages or write files because those are its purpose. The problem is an incidental effect becoming somebody else’s responsibility: ...

Tech · August 19, 2026 · 3 min · René Jochum
Every Plugin Has A Mailbox

Every Plugin Has A Mailbox

It started with an LLM agent documenting the boundaries for me instead of building them. It was about concurrency, and what came out of it was a comment: which call may come from which goroutine, what has to be locked first, what to watch out for. All correct. All friendly. All just text. A boundary that lives in a comment isn’t a boundary. It’s a request. It holds as long as the comment is read and remembered. I just don’t want to remember; static linters should. Safe at any time, by any reader. ...

Tech · August 14, 2026 · 19 min · René Jochum
Twenty-Two Betas

Twenty-Two Betas

Six and a half months after the first announcement, 22 betas and 2 rcs later: incus-compose is 1.0.0. Three Rewrites ended on a line I want to pick back up. “go-orb: three years of work. No users. incus-compose: two months. Several.” That stayed true. People ran it, broke it, filed issues — and the core from The Core Should Know Nothing just kept absorbing what they threw at it. New resources, new edge cases, no changes to the core itself. ...

Tech · July 11, 2026 · 3 min · René Jochum
The Core Should Know Nothing

The Core Should Know Nothing

In Three Rewrites there was a sentence I glossed over: Hooks before and after every action — logging, dry-run, error context, all without touching the core. Half a sentence. But that’s exactly where the third attempt ended up. Today I want to unpack that one line. It’s going to be longer. What a hook is A hook is a function I slip in before or after an action. ensure, delete, start, stop — every action incus-compose runs on a resource can be intercepted. Before and after. ...

Tech · June 18, 2026 · 8 min · René Jochum
Three Rewrites

Three Rewrites

I hate spaghetti code. Warzone 2100, among other things, showed me why back in 2011. C code, globals everywhere. You change one variable and three things break that seem to have nothing to do with it. You read the code and can’t tell where a decision begins and where it ends. For three years — from 2022 to 2025 — I worked on go-orb. Alone. A framework for distributed systems, meant as the successor to go-micro. Config from anywhere, service discovery, RPC, streaming, pub/sub, kvstore, metrics. Every new idea became a feature, every feature a plugin. ...

Tech · June 8, 2026 · 3 min · René Jochum