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

@felipejesus/openloop

v0.1.1

Published

Ralph Loop plugin for OpenCode with automatic continuation until completion.

Readme

@felipejesus/openloop

Ralph Loop for OpenCode: start a task once, then let the plugin keep nudging the session forward until it truthfully emits <promise>DONE</promise>.

What it does

  • adds /ralph-loop to start an auto-continuation loop
  • adds /cancel-ralph to stop an active loop
  • adds /ralph-help for a quick reference
  • stores loop state in .opencode/ralph-loop.local.md
  • watches for session.idle, checks the last assistant reply, and continues the session if the task is not done yet

Install

Add the plugin name to your OpenCode config after publishing or installing it as a dependency:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["@felipejesus/openloop"]
}

On first load, the plugin copies its commands and skills into your OpenCode config directory so the slash commands are available globally.

For this repository specifically, a project-local loader lives at .opencode/plugins/ralph-loop.ts, so opening this repo in OpenCode will also load the plugin directly from source.

Commands

/ralph-loop Build a REST API with authentication
/cancel-ralph
/ralph-help

How it works

  1. /ralph-loop writes .opencode/ralph-loop.local.md
  2. the plugin binds that loop to the current OpenCode session
  3. when the session goes idle, the plugin checks the latest assistant text for <promise>DONE</promise>
  4. if the promise is missing and the iteration cap is not reached, the plugin sends a continuation prompt back into the same session
  5. the loop stops when the promise appears, the loop is cancelled, or maxIterations is reached

Development

npm install
npm run release:check

Release pipeline

GitHub Actions is configured with:

  • /.github/workflows/ci.yml to run type-checking and package validation on pushes and pull requests
  • /.github/workflows/release.yml to publish to npm and create a GitHub Release when a v* tag is pushed

Release migration plan:

  1. Publish the first version of @felipejesus/openloop with the existing NPM_TOKEN
  2. Open the @felipejesus/openloop package settings on npm
  3. Add a GitHub Actions trusted publisher
  4. Use felipepiresdejesus as the owner, openloop as the repository, and release.yml as the workflow filename
  5. After trusted publishing is working, delete the old NPM_TOKEN GitHub secret

The release workflow is compatible with both stages: npm will use the token for the first publish, then switch to GitHub OIDC once trusted publishing is configured.

To cut a release:

git tag v0.1.0
git push origin v0.1.0

Repo layout

src/index.ts              Main plugin implementation
commands/                 Slash commands installed into OpenCode
skills/                   Lazy-loaded skills installed into OpenCode