Pico CSS was archived by its maintainer on October 4, 2026. v2.1.1 is the final release, forever. If your project runs on Pico, nobody is patching it anymore.

I build small devtools in the open, and this one, picoexit, answers the question every Pico user now has to answer: what exactly am I depending on, and what do I do about it?

Measure before you migrate

The biggest mistake in any framework migration is starting to rewrite before you know what you have. picoexit audit scans your HTML, CSS and JS for real Pico usage:

node dist/src/cli.js audit ./my-site # picoexit audit - Pico delivery: **cdn** (v2.1.1) - Pico selectors used: **45 distinct**, 85 occurrences ## Drift-risk selectors - **role=search** (high risk): Pico styles [role=search] focus behavior with :has() selectors; core behavior, not just decoration. - index.html:29 

On my sample site it found 45 distinct selectors across 85 occurrences, each with a drift-risk flag. The ones that scare me: anything relying on :has(). Pico v2 uses it 23 times, mostly for focus behavior in forms and dropdowns. If a future browser changes how :has() behaves, there is no maintainer left to ship the fix. That is the real risk of an archived framework, and it is measurable.

audit exits 1 when high drift-risk selectors are in use, so you can gate CI on it. It detects delivery method (CDN, npm, vendored), version, every selector with file:line, and counts per component.

Three honest paths

picoexit plan gives you three options with checklists, not a sales pitch:

  1. Stay pinned. if your Pico usage is decoration-only and low drift-risk, then pinning v2.1.1 from a vendored copy is a legitimate strategy. The tool tells you when you are in this camp.
  2. Migrate. the codemod rewrites the most common Pico classes to Tailwind v4, Bulma v1, or plain CSS + Open Props. Always as a diff preview first (--dry-run is the default); nothing touches your files without --apply.
  3. Follow a community fork. anyblades/blades and leftium/nimble.css exist and looked alive when I checked on November 3, 2026, but they are early. Verify their activity yourself before betting a product on them.

The codemod does not guess

$ picoexit migrate ./my-site --to tailwind --dry-run --- index.html +++ index.html @@ line 39 @@ - <div class="grid"> + <div class="grid gap-4 md:grid-cols-3"> ## Manual work (not guessed by the codemod) - index.html:19. `.dropdown`: CSS-only <details> dropdown; Bulma dropdown needs its JS trigger structure. Manual rebuild. 

This is the part I am proudest of: anything without a verified mapping goes into "Manual work" instead of being guessed. The grid codemod counts real children with a tokenizer (3 children becomes md:grid-cols-3), element hooks get classes added to <article> and <nav> — but dialog JS, data-theme switching, tooltips and switches are listed as manual. A migration tool that pretends 100% automation is lying to you; this one is not.

60 verified mappings, target docs re-verified November 3, 2026 (Tailwind v4, Bulma 1.0.4, Open Props live). 48 tests, zero runtime dependencies, runs 100% locally.

picoexit demo

Recorded live on a sample site: audit, drift-risk flags, exit code 1. 11.2s, 66 frames, no staging.

Where the rivals beat us

  • css-codemod (npm) is a solid generic PostCSS toolkit. if you already have PostCSS in your pipeline and want to write your own transforms, it is the better foundation. It just does not know Pico.
  • Doing it by hand gives you full control over every class choice. If your site is small and you enjoy CSS, a weekend of careful rewriting beats any tool.
  • Staying pinned is zero work. For a marketing site that never changes, pinning v2.1.1 vendored and moving on is the rational move. picoexit will happily tell you that is what you should do.

picoexit wins one specific fight: measuring before deciding. It tells you exactly what you are standing on, so the exit plan is based on evidence, not vibes.

Legal note

The "Pico CSS" name and logo are not MIT. the maintainer kept them. This repo is picoexit, uses no Pico branding, and claims no affiliation: a community migration helper for Pico CSS users, nominative fair use.

Install

npm is not published yet. install from source (Node.js 20+):

git clone https://github.com/techdevfun/picoexit.git cd picoexit npm install # dev dependencies only (build/test); zero runtime dependencies npm run build node dist/src/cli.js audit ./my-site