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

loopshouse

v0.6.0

Published

Loops House events from your terminal or AI agent, for everyone in them — builders ideate, mine knowledge graphs and submit; hosts track enrollments, submissions and judging; sponsors and judges review. CLI, MCP server and agent skill in one binary.

Readme

loopshouse

The Loops House CLI — authenticate, ideate with AI, query knowledge graphs, and submit projects from your terminal or an AI agent. Built with incur, so the same definitions power a CLI, an MCP server, and an agent skill.

Install

One command sets up an event — it installs the CLI globally, writes the event's agent skill into your coding agents (Claude Code + the .agents standard), and signs you in:

npx loopshouse add <event-slug>

Re-run it any time to refresh the skill with the event's latest sponsors and deadlines. Or install manually:

npm i -g loopshouse
# or run from this repo:
bun run bin/loops.ts --help

Quick start

loops events                            # don't know the slug yet? list active/upcoming events (no auth needed)
loops auth login --provider github     # or --provider google, or --email [email protected]
loops ideate -e <event> -m "give me a project idea"
loops ideate -e <event> -m "go deeper on idea 2"        # session continues automatically
loops ideate -e <event> -m "how do I approach it?" --problems <problem>   # compete: focus on a problem
loops knowledge query -e <event> -s <sponsor> -q "how do I use the sponsor's SDK?"
loops knowledge query -e <event> -p <problem> -q "what does the problem require?"   # compete events
loops project create -e <event> --name "My Project" --repoUrl https://github.com/me/proj
loops project get -e <event>
loops project fields -e <event>                          # everything the event asks for (built-in + extra) and what's missing
loops project update -e <event> --answer <id>=<value>    # answer an extra field — the name works as the key too
loops credits -e <event>

Every event-scoped command takes --event (-e). Knowledge and evaluator commands take exactly one of --sponsor (-s, sponsor-keyed events) or --problem (-p, problem-keyed compete events). The CLI works on one event at a time (no cross-event listings); ideator conversations persist per event in ~/.loops/sessions/.

Tip: every event's playground has a "Use the skill" tab with the exact npx loopshouse add command. Append a sponsor slug (npx loopshouse add <slug> <sponsor>) to install a skill focused on that sponsor's bounties, docs, and judging criteria instead.

Commands

| Group | Commands | | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | root | events [--event <slug>] (no auth needed — list active/upcoming events, or look up one by slug + its eventType; a concluded event still resolves with ended/winnersUrl, not a 404) | | root | add <event> [sponsor] (interactive setup: CLI install/update, skill into agents, auth) | | auth | login, verify, status, logout, link (attach a GitHub/Google identity when sign-in hits "multiple accounts") | | root | ideate (1 credit/turn; stateful session, --sponsors/--problems focus, --withProject, --new), session (show/--clear) | | project | get (your one project for an event), create, update (PATCH — only passed fields change; no project id, yours is resolved) | | knowledge | query (1 credit/query — graph-RAG evidence; exactly one of --sponsor/--problem) | | artifact | list, save, update, remove (ideation scratchpad) | | root | credits (agent credits), evaluate (evaluator prompt; exactly one of --sponsor/--problem; project auto-included) |

Compatibility

The 0.2.x flag spellings — --hackathonSlug, --sponsorSlug, --problemSlug, --eventSlug, and their kebab forms — still parse: a shim in bin/loops.ts maps each legacy token to its canonical flag before parsing. Skills and scripts written against 0.2.x keep working unchanged; help text shows only the canonical flags.

Authentication

Auth uses Supabase Auth against the Loops platform. Three flows:

| Flow | Command | | ------------ | --------------------------------------------------------------------------------------------- | | GitHub OAuth | loops auth login --provider github | | Google OAuth | loops auth login --provider google | | Email OTP | loops auth login --email [email protected] then loops auth verify --email [email protected] --code 123456 |

OAuth runs a localhost callback server (default port 54321, --port to change), opens your browser, and exchanges the PKCE code for a session. Tokens are stored at ~/.loops/credentials.json (mode 0600) and refreshed automatically on each command.

Agent surfaces

loops --mcp          # start as an MCP stdio server
loops mcp add        # register the MCP server with your agent
loops skills add     # generate + install skill files
loops --llms         # print the machine-readable command manifest

Configuration

| Env var | Default | Purpose | | ------------------------- | ------------------------- | -------------------- | | LOOPS_PLATFORM_URL | https://www.loops.house | Platform API origin | | LOOPS_SUPABASE_URL | (baked) | Supabase project URL | | LOOPS_SUPABASE_ANON_KEY | (baked) | Supabase anon key |

Point these at http://localhost:3000 + your local Supabase to develop against a local stack.

Develop

bun install
bun run bin/loops.ts <args>   # run from source
bun run build                 # bundle to dist/loops.js
bun run typecheck             # tsc --noEmit