All done — here's the full post-publish state:

| | Status |
|---|---|
| **PyPI** | `nemostation` v0.1.0 live → https://pypi.org/project/nemostation/ |
| **One-liner** | `uv tool install nemostation` → installs `marlin` ✅ (verified, your machine is on it now) |
| **Public repo** | [Nemo-Station/marlin-cli](https://github.com/Nemo-Station/marlin-cli) — README install line matches the published name |
| **Memory** | updated so next session knows it's `nemostation`, not the squatted `marlin-cli` |

The experience is now exactly what a user gets on launch day: `uv tool install nemostation` → `marlin setup` → `marlin engine install` → `marlin find`. No git URL, no collision.

Loose ends, your call:
- **HF model card / Twitter copy** — the clean one-liner is ready to paste. The base [NemoStation/Marlin-2B](https://huggingface.co/NemoStation/Marlin-2B) card still points people at raw `mlx-vlm`; want me to add the `marlin` CLI as the lead install path there?
- **Token** — `~/.local/pypi-token` is account-scoped; keep it for the next `0.1.1` bump or `rm` it. (Project-scoped is selectable now that `nemostation` exists, if you want to tighten it.)
- **Live-prove the engine** — I still haven't run `marlin engine install` from the *published* package end-to-end (~10 min). Worth doing once before you put it on Twitter, so the first external user isn't the one who finds a bring-up bug.