CtrlK
BlogDocsLog inGet started
Tessl Logo

canonical/mason

Agent kit for working on canonical/chisel-releases. Cross-agent skills + scripts for authoring and reviewing chisel slice definition files.

81

Quality

85%

Does it follow best practices?

Impact

75%

Average score across 5 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

_chisel-cli.mdskills/chisel-slice-porter/kb/

Chisel: the Tool and its CLI

Chisel builds minimal Ubuntu root filesystems by extracting named slices of .deb packages instead of whole packages. It is a Go tool that consumes a chisel release (a branch of chisel-releases) as its source of truth.

Docs: https://documentation.ubuntu.com/chisel/en/latest/

Commands

chisel cut --release <ref> --root <dir> [--arch <a>] <pkg>_<slice> ...   # materialise rootfs
chisel find <pattern>                                                     # search slices
chisel info <pkg>_<slice>                                                 # inspect slice
chisel debug check-release-archives --release <ref>                       # download all pkgs, report cross-package path conflicts

Slices are addressed as <package_name>_<slice_name> -- the underscore separates package from slice (underscores are not allowed in Debian package names).

--release

Accepts:

  • ubuntu-XX.XX -- an online release branch.
  • a directory path -- anything containing a /, e.g. ./ for the current checkout.
  • omitted -- inferred from the host's /etc/lsb-release (DISTRIB_ID / DISTRIB_RELEASE), not /etc/os-release, and fetched from the chisel-releases repository, so the checkout's own SDFs are not used.

On a devel (unstable) or EOL (unmaintained) branch, add --ignore=unstable / --ignore=unmaintained or cut errors out.

Cutting from a checkout

mkdir -p rootfs
chisel cut --release ./ --root rootfs/ <pkg>_<slice> ...

--root must be an existing directory: chisel stops with target directory does not exist instead of creating it.

Inspecting the Repo Without a Full Checkout

# List live release branches
git ls-remote --heads https://github.com/canonical/chisel-releases.git 'ubuntu-*' \
  | awk '{print $2}' | sed 's|refs/heads/||'

# Read release manifest
curl -fsSL https://raw.githubusercontent.com/canonical/chisel-releases/ubuntu-24.04/chisel.yaml

# Read an SDF
curl -fsSL https://raw.githubusercontent.com/canonical/chisel-releases/ubuntu-24.04/slices/bash.yaml

# Sparse clone (slices + chisel.yaml only)
git clone --filter=blob:none --no-checkout --depth 1 \
  -b ubuntu-24.04 https://github.com/canonical/chisel-releases.git /tmp/cr
git -C /tmp/cr sparse-checkout set slices chisel.yaml
git -C /tmp/cr checkout

README.md

tile.json