Physical Media Still Rocks
It’s been a while, happy Monday. This is the Monday Letter for June 8th, 2026.
Physical Media Still Rocks
My move to San Francisco was a bit of a whirlwind. I was lucky enough to get connected with my now-roommates (who are now some of my best friends) before the move, and they ended up securing our place. Only now do I appreciate what a gift that was, getting spared the gauntlet that is the San Francisco housing market.
My only preview of our home was a brief Messenger video call where I could make out a few pixels of our space. I didn’t know the neighborhood at all, nor the city, so I had no real sense of what I was walking into. Since then it’s been full of pleasant surprises. One of my favorites has been how quickly the library became part of my life here.
I was always going to spend some amount of time at SFPL—my mom is a librarian, after all. Reading is one of my favorite hobbies, and a good library is a small civic miracle: a public, quiet, generous place that makes it easier to be curious. It’s also an easy way to feel connected to a new city. You show up, you browse, you recognize a few faces the next time.
As it turns out: SFPL is not just books. My local branch has CDs, DVDs, magazines, and vinyl, which is where this whole thing started to click for me.
Vinyl was the hook. As someone with a steadily growing record collection, being able to borrow an LP instead of buying it is a no-brainer way to be a bit kinder to my bank account. My Saturday routine now usually includes a saunter over to the library and a peruse of the “New Arrivals” section. I’ll grab something old I’ve been meaning to listen to, a favorite of mine, and something truly random. Then I’ll toss each on throughout the week. It’s been a low-stakes way to expand my musical range without turning Spotify into another endless scroll.
From there, the next natural step was DVDs. Wiring a CD player into my Chromecast setup took more fiddling than I expected, but now that the plumbing is in place, it’s great. I’ve watched a bunch of shows, and it’s been genuinely nice not being on the hook for a dozen streaming services. Their catalogues are overwhelming anyway, with content constantly rotating in and out. Netflix one day, Amazon Prime the next, and the thing you wanted is suddenly gone.
Physical media is simple, and that simplicity is the point. You can hold it. You can lend it. You can return to it later and trust it will still be there. Blow off the disc, insert it into the tray, and boot it up. It’s yours for the week (until it’s due, of course). Enjoy it at your leisure.
There’s digital value too. If you like movies, Kanopy is available through most library memberships and has a ton of genuinely great stuff. Hoopla is solid for audiobooks.
The bigger takeaway for me is that the library is still one of the best deals in town. It’s more than just books these days, and the physical media alone is worth a visit. If you haven’t been in a while, go. Wander the stacks. Pick something you didn’t plan on. Bring a little offline back into your week.
And, what I’ve been up to.
-
I’ve been travelling recently! I spent some time in New England, sightseeing in Boston and hiking around the Green Mountains of New Hampshire and Acadia in Maine. The highlight of the trip was 2-days spent in Cutler, Maine; these are public lands, and stunning public lands at that. Here are a few photos.
embed -
I’m working on personal projects again. Most recently: weft, a package to help manage agent tools (MCPs, skills, sub-agents, and more) across popular coding agents (Claude Code, Codex, Cursor)—which each have similar, but slightly different expectations of how these are configured. It’s inspired by Vercel’s
npx skills(which is great!) but extends it to more of the AI ecosystem and supports a few missing primitives for skills (e.g., evals). The framework for evals I think is particularly neat; it’s just YAML! Given a skill like this:markdown--- name: using-weft description: Author an agent capability once (a skill or an MCP server) and compile it to every coding-agent harness with Weft. Use when the user wants to write, build, install, evaluate, or import Weft plugins and marketplaces. --- Weft is a compiler. You author a capability once in upstream-standard formats and Weft compiles it to each harness's native plugin layout (Claude Code, Codex, Cursor, Copilot, OpenCode). The author writes standards; the adapter for each harness is the only place that knows that harness's quirks. ## The two things you author - A skill is a directory with a `SKILL.md` (YAML frontmatter `name` + `description`, then a Markdown body of instructions). This file is itself a skill. - An MCP server is a directory with a `server.json` (the MCP Registry standard). Weft derives each harness's runnable config from it. A plugin groups components and is described by a `weft.yaml`: name: my-plugin version: 0.1.0 owner: { name: You, namespace: com.example } description: What it does. components: - skill: skills/my-skill - mcp: mcp/my-server A `marketplace.yaml` packages many plugins (the company-marketplace case). ## The workflow weft init my-plugin --namespace com.example # scaffold weft.yaml + a sample skill weft validate my-plugin # static checks (schema, namespacing) weft build my-plugin --out out # compile to every registered harness (no install) weft install my-plugin # place into every installed harness weft install my-plugin --target claude,codex # install to only Claude Code and Codex `weft install` detects which harnesses are present and installs to all of them, skipping the rest and reporting what it skipped. To install to only a specific set, pass that set to `--target`: the exact command for Claude Code and Codex is `weft install my-plugin --target claude,codex`. Force placement for an absent harness with `--all`, and install a single component with `--only my-skill`. It writes a content-addressed `weft.lock`; `weft update` re-places only artifacts whose hash changed, and `weft uninstall` removes everything it placed. Point `weft install` at a `marketplace.yaml` instead of a plugin and it installs every plugin in the marketplace across the targets in one command. The same primitive at a larger scale. ## Evaluating and importing - `weft eval my-plugin` runs a component's evals against the real headless harnesses and reports per-harness PASS/FAIL, honestly marking a harness UNTESTED when it can't run. - `weft import --from claude ./existing-plugin` reverse-compiles an existing native plugin or marketplace into the Weft model so you can cross-compile assets you already maintain. Import is any-to-any across all five harnesses. ## Output, machine-readable Every command takes `--quiet` (errors only), `--verbose`, and `--json` (a structured result on stdout) so you can script Weft. The rule of thumb: never hand-edit a generated manifest. Change the source standard and recompile. If a harness changes its format, that is one adapter's problem, not yours.You can write an eval for it like so:
yamlcomponent: io.github.michaelfromyeg/using-weft:using-weft # Three samples, majority pass (minPassRate 0.5) -- one-shot LLM answers vary in phrasing. cases: - name: install-to-specific-harnesses prompt: "Using Weft, what is the exact command to install the plugin in the current directory to only Claude Code and Codex? Reply with just the command." samples: 3 assert: - kind: output matches: "(?i)weft install" minPassRate: 0.5 - kind: output matches: "(?i)--target" minPassRate: 0.5 - kind: output matches: "(?i)codex" minPassRate: 0.5 - name: build-without-installing prompt: "Using Weft, what is the exact command that compiles a plugin to every harness WITHOUT installing it into any harness? Reply with just the command." samples: 3 assert: - kind: output matches: "(?i)weft build" minPassRate: 0.5 harnesses: [claude]Early days, but it feels good to be building again.
-
I’ve been listening to some great new albums. Planet Frog from Action Bronson is so good, as well as the new Vince Staples project Cry Baby. For concerts: this week I have James Blake at The Greek (my second time seeing him!) and Takuya Nakamura, a jungle DJ who also plays live music.
-
I’ve also been reading a bunch more. I recently finished Tomorrow and Tomorrow and Tomorrow by Gabrielle Zevin which I liked, but did not love (review here) and have picked up Football, a new release from Chuck Klosterman. He’s a culture critic, so naturally “America’s game” serves as more a lens to American society, instead of actually being about, say, the rules of football. Since moves to the States, I have
-
For movies: I just watched The Big Lebowski (1998) which was pretty damn hilarious. Movies also might be a much larger part of my life soon so… watch this space.
That’s all for now. Until next week… or so.