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

Published

Loops House CLI — manage hackathon projects, ideate with AI, query sponsor knowledge graphs, and submit from your terminal or AI agent

Downloads

816

Readme

loopshouse

The Loops House CLI — authenticate, browse hackathons, ideate with AI, query sponsor 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 everything up for a hackathon — 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 <hackathon-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 auth login --provider github     # or --provider google, or --email [email protected]
loops hackathon ideate --hackathonSlug <slug> -m "give me a project idea"
loops hackathon ideate --hackathonSlug <slug> -m "go deeper on idea 2"   # session continues automatically
loops knowledge query --hackathonSlug <slug> -s <sponsor> -q "how do I use the sponsor's SDK?"
loops project create --hackathonSlug <slug> --name "My Project" --repoUrl https://github.com/me/proj
loops project get --hackathonSlug <slug>
loops credits --hackathonSlug <slug>

The CLI is deliberately scoped to one hackathon at a time (no cross-hackathon listings); ideator conversations persist per hackathon in ~/.loops/sessions/.

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

Commands

| Group | Commands | | ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | | root | add <slug> [sponsorSlug] (interactive setup: CLI install/update, skill into agents, auth) | | auth | login, verify, status, logout | | hackathon | ideate (1 credit/turn; stateful session, --withProject, --new), session (show/--clear), submit | | project | get (your one project for a hackathon), create, update (PATCH — only passed fields change; no project id, yours is resolved) | | knowledge | query (1 credit/query — graph-RAG evidence from a sponsor's docs) | | artifact | list, save, update, remove (ideation scratchpad) | | root | credits (remaining agent credits), evaluate (per-sponsor evaluator prompt; your project auto-included) |

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://loops-platform.vercel.app | 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