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

@erminhhho/profile

v0.7.20

Published

OpenCode-first AI coding environment setup

Readme

Profile

Personal OpenCode environment setup. One command, clean defaults, managed MCPs, and project files on demand.

Installs OpenCode, writes global rules, enables PTY/LSP/MCPs, configures RTK, and can generate a compact project map for OpenCode.

Commands

npx @erminhhho/profile help

Init — full environment setup

npx @erminhhho/profile init

Detects environment, checks prerequisites, installs/validates tools, removes old managed files, generates the complete project setup, and finishes with doctor. It does not start loop.cjs.

| Tool | What it does | How it hooks in | | ---------------- | -------------------------------------------- | ------------------------ | | opencode-pty | Background and interactive terminal sessions | OpenCode plugin | | Serena | Semantic code navigation and refactoring | OpenCode MCP | | RTK | Compresses command output (git/test/lint) | OpenCode PreToolUse hook | | LSP | Code diagnostics and semantic navigation | OpenCode config |

init is strict. If OpenCode, opencode-pty, Serena, RTK, cleanup, any generator, or doctor checks fail, the command fails.

Individual generators

npx @erminhhho/profile agents
npx @erminhhho/profile spec
npx @erminhhho/profile loop
npx @erminhhho/profile map
npx @erminhhho/profile config

agents generates AGENTS.md, spec creates SPEC.md when it does not exist, loop generates LOOP.md and loop.cjs, map generates .opencode/map.md, and config generates the global and project OpenCode configuration.

Map — generate project context

npx @erminhhho/profile map

Writes .opencode/map.md. The map is deterministic and small: package scripts, runtime hints, config files, entry points, routes, data files, and tests.

Doctor — diagnose setup

npx @erminhhho/profile doctor

Checks whether OpenCode, opencode-pty, Serena, project AGENTS.md and opencode.json, allowed project permissions, LSP, managed MCPs, and the current project map are active.

Generated files

Managed files:

  • LOOP.md — project workflow generated by profile init or profile loop
  • SPEC.md — project specification template created by profile init or profile spec only when missing
  • loop.cjs — project loop runner generated by profile init or profile loop
  • AGENTS.md — local project instructions generated by profile init or profile agents
  • .opencode/map.md — project map generated by profile init or profile map
  • opencode.json — portable project OpenCode config with opencode-pty, allowed permissions, LSP, managed MCPs, compact tool output defaults, and project instructions

The OpenCode config is project-local and can be versioned with the repository, so it applies consistently on Windows, Linux, and macOS.

OpenCode model selection is not hardcoded by this profile. config and init preserve existing model/provider settings.

The generated AGENTS.md tells OpenCode to use Serena for semantic code work, Context7/Nuxt UI for current docs, Playwright for UI verification, and PTY sessions for dev servers, watch modes, REPLs, prompts, and commands that may hang. One-shot commands still use normal shell execution.

Managed MCPs:

  • Enabled by config: serena, nuxt-ui, context7, sequential, playwright, filesystem, and firecrawl
  • Serena is disabled by default on Windows because each OpenCode instance starts a separate local MCP process.

Restart OpenCode after init, config, or MCP changes; OpenCode loads config only on startup.

Legacy files from earlier versions are removed during init:

  • .github/copilot-instructions.md
  • .github/instructions/
  • .github/skills/
  • .github/profile.manifest.json

Profile files

Edit these in the repo to change agent behavior:

| File | Purpose | | ----------------- | ----------------------------------------------------- | | stack.md | Technology stack (Nuxt, Biome, PostgreSQL, Docker) | | architecture.md | App structure: autonomous, flat, no coupling | | design.md | Design philosophy: functional, minimal, Nuxt UI-first | | naming.md | Naming conventions: single-word, lowercase, English | | workstyle.md | Execution gates: minimal changes, real-flow validation |

Publishing

npm test
npm version patch  # or minor / major
npm publish

After publish, workspaces update with:

npx @erminhhho/profile init
npx @erminhhho/profile map