npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

yo-url-yo-json

v0.2.0

Published

Extract validated JSON from webpages using JSON Schema, CloakBrowser, llm-scraper, and Codex CLI.

Readme

🪀✨ yo url yo json

URL + Schema -> JSON

yo-url-yo-json is a Bun + TypeScript CLI for extracting validated JSON from a webpage using llm-scraper, CloakBrowser, and ai-sdk-provider-codex-cli.

how to use it

  1. say what you want to parse via cli or agent skill.
  2. get a generated json schema.
  3. use url + schema to generate reusable parser code.
  4. run it as many times as you want.

usage examples

install

  • Bun
  • Docker
  • Codex auth: codex login or OPENAI_API_KEY
  • Project deps: bun install

usage

agent skill

Project-local skill: skills/yo-url-yo-json/SKILL.md.

cli

Generate a JSON Schema with Codex:

yo-url-yo-json generate-schema --out ./schemas/product.schema.json

Parse a page with Codex-powered extraction:

yo-url-yo-json parse --url "https://example.com" --schema ./schemas/product.schema.json

parse and generate-schema are subcommands of the single yo-url-yo-json executable; they are not separate npm bin aliases.

Useful options for yo-url-yo-json parse:

--cache-dir .yo-url-yo-json/scripts
--model gpt-5.5
--force-regenerate
--headed
--verbose

package.json

From another TypeScript project:

bun add -d yo-url-yo-json
{
  "scripts": {
    "extract": "yo-url-yo-json parse --url https://example.com --schema ./schemas/product.schema.json",
    "schema": "yo-url-yo-json generate-schema --out ./schemas/product.schema.json"
  }
}

Stdout is parsed JSON. Diagnostics go to stderr.

runtime flow

flowchart TD
  A["URL + JSON Schema"] --> B["Start CloakBrowser via Docker"]
  B --> C{"Cached extractor valid?"}
  C -- "yes" --> D["Run cached Playwright extractor"]
  C -- "no" --> E["Generate extractor with llm-scraper + Codex CLI"]
  D --> F["Validate JSON Schema"]
  E --> F
  F --> G["Print JSON"]

Generated extractors are saved under .yo-url-yo-json/scripts/.

schemas

The project uses JSON Schema. Schema paths must end in .json.

cloakbrowser docker runtime

We use CloakBrowser via Docker.

Useful commands:

bun run docker:pull
bun run docker:cleanup
yo-url-yo-json parse --url "https://example.com" --schema ./examples/product.schema.json

development

bun run typecheck
bun test

# publish
bun run build
npm pack --dry-run
npm publish