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.
-
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.