AbsoluteJS

absolute ls

List your project's pages, grouped by framework — read straight from source, so it is always current.

#Usage

absolute ls discovers pages the same way the build does — scanning <frameworkDir>/pages for each framework in your config. Because it reads source, not build output, it never goes stale and works the same whether you use dev, start, or compile — including multi-service workspace configs. No build required.

BASH
# List your project's pages, grouped by framework (reads source — no build needed)
absolute ls

# Add built bundle sizes from a build you point at
absolute ls --sizes
absolute ls --sizes --outdir dist

# Machine-readable output
absolute ls --json

#Reading the output

Each framework gets its own group with a page count. Every row is a page and its source file. --json emits the same data as structured groups for scripting.

absolute ls
$ absolute ls
React · 2 pages Dashboard src/frontend/react/pages/Dashboard.tsx Home src/frontend/react/pages/Home.tsx Vue · 1 page Settings src/frontend/vue/pages/Settings.vue HTMX · 1 page Inbox src/frontend/htmx/pages/Inbox.html 3 frameworks · 4 pages

#Bundle sizes

Sizes live in build output, so they are opt-in. Pass --sizes to read a build's manifest and show each page's shipped size (server bundle + hydration entry + client/island bundles + CSS). Point it at a build with --outdir (defaults to your buildDirectory); a built 4m ago note keeps staleness visible.

absolute ls --sizes
$ absolute ls --sizes
build/manifest.json · built 4m 12s ago React · 2 pages Dashboard 312.4 KB src/frontend/react/pages/Dashboard.tsx Home 207.0 KB src/frontend/react/pages/Home.tsx Vue · 1 page Settings 918.7 KB src/frontend/vue/pages/Settings.vue 3 frameworks · 4 pages

#Size budgets

Add --budget (alongside --sizes) to enforce a per-page ceiling. Pages over the limit are flagged in red and the command exits non-zero, so a runaway bundle fails CI instead of quietly shipping. Budgets accept kb or mb — for example --budget 500kb or --budget 1mb.

BASH
# Fail the build if any page ships more than a size budget (needs --sizes)
absolute ls --sizes --budget 500kb

# Also accepts mb; combine with --json for CI
absolute ls --sizes --budget 1mb --json
absolute ls --sizes --budget 500kb
$ absolute ls --sizes --budget 500kb
React · 2 pages Dashboard 312.4 KB src/frontend/react/pages/Dashboard.tsx Home 207.0 KB src/frontend/react/pages/Home.tsx Vue · 1 page Settings 918.7 KB src/frontend/vue/pages/Settings.vue over budget 1 page over the 500 KB budget · exit 1