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

saycoder

v0.1.4

Published

SayCoder setup helper for OpenCode models, MCP servers, and skills.

Readme

saycoder

A small CLI that configures OpenCode to use SayCoder as the model layer, plus practical third-party MCP servers and lightweight coding skills.

Setup flow

  1. Checks whether opencode is installed.
  2. If missing, asks whether to install it with npm install -g opencode-ai --foreground-scripts --verbose --loglevel verbose.
  3. Optionally enables China mirror optimization, measures available mirrors, and lets the user choose with arrow keys or number input on Windows.
  4. Installs OpenCode and verifies opencode --version before continuing.
  5. Prompts the user for a SayCoder API key.
  6. Validates the key with GET https://jstapi.xinbai.icu/v1/models.
  7. Uses the returned model list to populate OpenCode provider models.
  8. Writes OpenCode config and installs lightweight SayCoder skills.
  9. Tells the user to choose a model and start coding.

MCP defaults

  • context7: official remote MCP at https://mcp.context7.com/mcp for current docs.
  • time: optional local MCP via --time-mcp and uvx mcp-server-time for current time and timezone conversion.
  • tavily: optional remote web search MCP when --tavily-api-key is provided.
  • exa: optional remote web/code search MCP when --exa-api-key is provided and Tavily is not set.

SayCoder's base URL is only used for the OpenAI-compatible model channel, not for MCP hosting.

China mirror

When OpenCode is missing, setup asks whether to install through China mirror optimization. If enabled, it measures common npm mirrors and lets you choose one with arrow keys, or number input on Windows/non-TTY terminals. Mirror probes use the package metadata endpoint and fall back from HEAD to GET for registries that reject HEAD.

If OpenCode installation or verification fails, setup stops before writing OpenCode config and prints the npm exit code, any npm spawn error, a detected npm debug log path when npm reports one, and the manual install command. You can also force it with:

node bin/saycoder.js setup --npm-registry https://registry.npmmirror.com

Windows PowerShell troubleshooting

If automatic opencode-ai installation fails on Windows, rerun the printed command in a fresh PowerShell window as the same user. For example:

npm install -g opencode-ai --foreground-scripts --verbose --loglevel verbose --registry https://registry.npmmirror.com

Then check the npm debug log shown by saycoder or the newest log under your npm cache _logs directory. After a successful manual install, close and reopen PowerShell so the global npm bin path is refreshed, verify with opencode --version, then run npx saycoder again.

Installed skills

  • saycoder-lite-superpowers: clarify user intent, split logical goals, implement production code, and report completed/not completed work.
  • saycoder-code-review: lightweight production-readiness review before handoff.
  • saycoder-test-check: choose and report the smallest meaningful verification.

Local test

node bin/saycoder.js setup --dry-run --skip-install-check --skip-validate --api-key test-key

Dry-run output redacts API keys and other token-like fields.

Intended usage

npx saycoder

You can also pass options directly:

npx saycoder --npm-registry https://registry.npmmirror.com