close

TECHDEV · Open-source tool

picoexit

Pico CSS was archived by its maintainer on 2026-10-04 — v2.1.1 is the final release, forever. picoexit audits your project’s real Pico footprint (which selectors, which components, which version), flags the selectors most likely to rot as browsers move on, and gives you a concrete exit plan: stay pinned, migrate, or follow a community fork. For migrations it ships a codemod that rewrites the most common Pico classes to Tailwind v4, Bulma v1, or plain CSS + Open Props — always as a diff preview first, never touching your files without --apply.

Node.js 20+ · Zero runtime dependencies · 100% local · MIT

Quick example

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

Exit code: 1 (high drift-risk selectors in use)

audit exits non-zero when high drift-risk selectors are in use, so you can gate CI on it. Add --json for machine-readable output, --no-strict to always exit 0.

Example copied exactly from the picoexit README (“Quick example”).

Quick start

# 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   # scan a project
node dist/src/cli.js plan ./my-site    # get the 3-path exit plan

Zero runtime dependencies. 100% local — your code never leaves your machine.

CommandWhat it does
picoexit audit <dir> [--json] [--no-strict]Scan .html/.css/.js/.ts/.jsx/.tsx for Pico usage: delivery method (CDN / npm / vendored), version, every selector used with file:line, counts per component, drift-risk flags
picoexit plan <dir> [--json]3-path exit plan (stay pinned / migrate / community fork) with checklists, codemod coverage per target, and manual-effort estimates
picoexit migrate <dir> --to tailwind|bulma|openprops [--dry-run] [--apply]Codemod Pico classes to the target; dry-run prints a diff preview (default)

Commands copied exactly from the picoexit README (“Install” + “Commands”).

The codemod: diff first, never a surprise

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

Re-run with --apply to write the changes. Anything without a verified mapping is listed as manual work — never guessed.

Example copied exactly from the picoexit README (“Quick example”).

Mapping table

60 Pico v2.x hooks mapped to three targets. Target docs verified 2026-11-03 (Tailwind CSS v4, Bulma v1, Open Props). Highlights:

PicoTailwind v4Bulma v1Plain CSS + Open Props
.containermx-auto w-full max-w-7xl px-4containermax-width: var(--size-xxl); margin-inline: auto; ...
.gridgrid gap-4 md:grid-cols-N (N counted from your markup)columns + column on childrendisplay: grid; gap: var(--size-4);
articlerounded-lg border ... shadow-smboxsurface / radius / shadow tokens
.contrast / .secondary / .outlinebg-zinc-900 ... / bg-zinc-200 ... / bg-transparent border-2is-dark / is-light / is-outlinedgray tokens
.striped (table)manual CSSis-stripedtbody tr:nth-child(even) rule
dialog / modal classesmanual (replace with target’s dialog controller)manualmanual
data-theme / data-tooltipmanual (target’s dark-mode / tooltip pattern)manualmanual

Mappings are starting-point approximations — review against your design tokens. The full table lives in src/mappings.ts.

Mapping highlights copied from the picoexit README (“Mapping table”).

Out of scope (v0.1.0)

Out-of-scope list from the picoexit README.

Roadmap — not shipped yet

Roadmap copied from the picoexit README; none of these have shipped yet.

Disclaimer

picoexit is a community-built migration helper for Pico CSS users. It is not affiliated with, endorsed by, or connected to the Pico CSS project or its maintainer. “Pico CSS” is used here under nominative fair use to describe compatibility. Per the Pico license terms, the Pico CSS name and logo are not covered by the MIT license — this project uses its own name and branding.

Disclaimer copied from the picoexit README.

License

MIT — see LICENSE in the repository.

Related tools

More open-source tools from TECHDEV: sessguard, runverdict, gheist-guard, vetgate, context-diet, ci-failure-detective, agent-seatbelt, devsecops-os, env-doctor, skill-audit, logtrim, testguard, breakcheck, keymap, memgraph, ggufit, leaseguard, factfence, extverify, cargoscope, aibill

Have a say

Vote for this tool, suggest a feature, or discuss it with other operators on the community board.