cyberwitchery lab

log

notes on what we build, how it works, and what we learn doing it.

filterall
2026-10-27 all the way down: metacarp, a self-hosting compiler for carp

the third note in the cyberwitchery paper series. a compiler for carp, written in carp, that builds itself and runs as a library behind editors and notebooks.
CW:003 · experience report · v1.0

#papers #compilers #carp
2026-10-23 shopping for backends

in which we help out the imaginary person in charge of choosing a new dcim system

#alembic #network automation #tooling
2026-10-13 reacting to advisories in the age of llms

in this post, we follow one unmaintained-crate advisory through the org, and what it took to retire it.
RUSTSEC-2024-0449

#security #supply chain #ai
2026-10-09 secure defaults as ci

in this post, we examine the ci we run in every repo.
cargo install sbom-diff unsafe-budget

#security #supply chain #tooling
2026-10-01 alembic dev log, september 2026

0.10.0, a first demo, and alembic inside netbox and nautobot.
cargo install alembic-cli

#alembic #network automation #newsletter
2026-09-28 metrics for free: alembic <3 prometheus

use alembic together with prometheus and grafana to easily collect and visualize metrics about all of the devices in your system

#network automation #tooling #alembic
2026-09-21 netbox-secrets: offline secret recovery from the validation hash

every secret stores a pbkdf2 hash of its own plaintext at 1000 iterations, and the rest api hands that hash to anyone who can view the secret. reported july 22, still unpatched, published at the end of a 60-day window.
netbox-secrets ≤ 3.1.1 · unpatched · cve requested

#security #disclosure #network automation
2026-09-15 teaching personal taste to silicate: a drawing machine for tacit thought

the second note in the cyberwitchery paper series. can a drawing machine learn one artist’s quick love/meh/hate judgments well enough to change what it draws next?
CW:002 · case study · v1.0

#papers #generative art #ai
2026-09-10 one model, every tool: a fabric in nine shapes

a fabric shows up as an ansible inventory, a nornir directory, a prometheus target list, an ssh config, a dns zone, a containerlab topology, two diagrams and an avd project. we emit all nine from a single data model model.
cargo install alembic-cli

#alembic #network automation #tooling
2026-09-01 alembic dev log, august 2026

0.9.0: a larger team, identity through uid, and an operating guide for agents.
cargo install alembic-cli

#alembic #network automation #newsletter
2026-08-25 diagrams from your data model

architecture diagrams drift because they’re drawn by hand. the ones in this post are emitted from the same model that drives the fabric. text-first, diffable, regenerated on every run.
cargo install alembic-cli

#alembic #network automation #tooling
2026-08-18 every pull a lesson: moral history in a multi-turn trolley game

the first note in the cyberwitchery paper series. what happens to the trolley problem when the people on the tracks remember what you did, and once held the lever themselves.
CW:001 · lab note · v1.0

#papers #game theory #ethics
2026-08-09 nautobot to netbox, there and back again

the two tools don’t agree on a model. locations vs sites, status as a reference vs a string. a migration between them is a translation rather than an export. alembic has a map that does it.
cargo install alembic-cli

#alembic #network automation #tooling
2026-08-01 alembic dev log, july 2026

three releases, a see-before-write for schema, and files that refuse typos.
cargo install alembic-cli

#alembic #network automation #newsletter
2026-07-23 how we test the writes: fault injection and resumable apply

apply is the only step that writes. half-finished apply stays safe with a journal that resumes, writes safe to repeat, and an adapter whose only job is to fail.
cargo install alembic-cli

#alembic #network automation #tooling
2026-07-07 writing an external adapter for alembic

an external adapter is a process alembic spawns that speaks json over stdio. we offer sdks in rust and python
pip install alembic-adapter-sdk

#alembic #network automation #tooling
2026-07-01 alembic dev log, june 2026

a monthly log of what moved in alembic and the tools around it. this first issue sets the baseline.
cargo install alembic-cli

#alembic #network automation #newsletter
2026-06-19 contextual-encoder: output encoding for xss defense

encode untrusted strings for the context they land in
cargo add contextual-encoder

#security #rust #tooling #release
2026-04-18 heartbeat: a cyclical contributor bot for your github org

a cron-driven claude code agent that opens and reviews a small slate of prs each cycle
git clone git@github.com:cyberwitchery/cwl-agents

#ai #agents #tooling #release
2026-03-23 lepiter-cli: a terminal editor for lepiter knowledge bases

browse, search, and edit lepiter knowledge bases from your terminal
cargo install lepiter-cli

#tooling #release
2026-03-11 netform: lossless config diffing for network devices

parse and diff network configs, catch drift before it bites
cargo install netform_cli

#network automation #tooling #release
2026-03-04 alembic: a data-model-first dcim/ipam converger

sync your infrastructure data across netbox and nautobot
cargo install alembic-cli

#network automation #tooling #release
2026-02-22 unsafe-budget: an unsafe code budget gate for ci pipelines

keeps the unsafety demons out
cargo install unsafe-budget

#rust #go #supply chain #tooling #release
2026-02-17 sbom-diff: comparing software bills of materials

diff your sboms, catch surprises before they ship
cargo install sbom-diff

#supply chain #tooling #release
2026-02-09 infrahub.rs: a graphql client for infrahub in rust

talk to infrahub from rust, with typed graphql operations
cargo add infrahub

#network automation #tooling #release
2026-02-01 nautobot.rs: the netbox.rs companion for nautobot

interact with nautobot in your code and cli
cargo add nautobot

#network automation #tooling #release
2026-01-25 netbox.rs: an ergonomic netbox client in rust

interact with netbox in your code and cli
cargo install netbox-cli

#network automation #tooling #release
2026-01-21 familiar: prompts as cli primitives

compose and invoke agent prompts from reusable templates: conjurings + invocations.
pip install familiar

#ai #agents #tooling #release