Monorepo for Aesthetic.Computer aesthetic.computer

Easel master

The tool has been deciding what it is called since it was born three days ago. `0f8fef6404` said so out loud while naming the terminal palette: "It suffixes the palette, not the tool. The tool is still deciding what it is called and these names travel to other machines." It is Easel. The name was already in use — @jeffrey has called it the easel in conversation all along — and it is the better one. Aesthetic Code described where it came from; Easel describes what it is. You stand a piece on it and work on the piece. Renamed through, including the wire value: `agent_type` is `easel`, the directory is `easel/`, the binary is `bin/easel`, the environment is `EASEL_*`, the config lives in `~/.config/easel`. The Swift side moved with it in the same commit, because a marker saying `easel` and a menubar looking for `aesthetic-code` produce a rock that renders as nothing at all. Both are installed together here; neo follows in the same pass. Two things deliberately keep their names. The `-aesthetic` Terminal profile family, because it was named for the palette and not the tool, on purpose, for exactly this day. And `ac`, because it is what gets typed. One name is given back. The tool claimed `aesthetic` while it was called Aesthetic Code, which displaced the platform helper of that name into `aesthetic-platform`. It has no business holding it now, so the installer drops the symlink if it is still ours and the Fish shim stops erasing the function. The installer also removes the old `# aesthetic-code:start` block, which is inert once its path is gone but sits in the config of every machine that ever installed the old name. And the thing now stands an easel up when it opens. The canvas carries the two facts a session starts with that are worth knowing — the name of the piece and the address it already answers at — with the name written on a character at a time, because that is what an easel is for. Each frame reads the live values rather than a snapshot, so the address appears at whatever moment the sign-in resolves, which is exactly when it starts being true. Any key puts it away; a screen too short to hold it never sees it. 56 tests pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A1xZ1BonXHyds6EzF5H9Hb