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

opencode-auto-improve

v0.3.0

Published

Auto-capture skills and durable memory from your sessions, present them for approval, and prune what is no longer useful — opencode learns like Hermes.

Readme

opencode-auto-improve

Auto-capture skills and durable memory from your opencode sessions, present them for your approval, and prune what is no longer useful. opencode learns like Hermes.

Zero-config standalone plugin. MIT. No opencode core changes.

Install

Add it to your opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["opencode-auto-improve"]
}

That's it. Opencode auto-installs it from npm (via Bun) at startup.

What it does

  1. Capture — at every session end, the plugin classifies what happened:

    • wrote files / committed / installed → skill candidate
    • durable fact about your environment or preferences → memory candidate
    • neither → nothing Candidates are staged in ~/.agents/learning-staging/. The plugin never writes to your live skill library.
  2. Approve — no command needed. At the end of a session that produced candidates, the plugin injects a chat message presenting each one ("[skill] " / "[memory] ") and asks you to approve or reject each (yes/no per item, or "all"/"none"). You never browse folders: the agent curates, you approve. On approval:

    • skill → ~/.agents/skills/<name>/SKILL.md (description ≤ 200 chars to keep the discovery index lean)
    • memory → ~/.agents/memory/facts.md (injected at session start on the next launch)
    • The staged JSON is renamed .promoted (or .rejected for rejections) so it is not presented again. Duplicate candidates (same fact already in facts.md, or a skill with the same name already staged/live) are never staged twice.
  3. Prune — the weekly checkup is /audit-skills (the companion skill): classify keep/remove/merge, propose removals, you approve. "Less is more" — a skill that is not useful must be removed.

Layout

opencode-auto-improve/
  index.js                        plugin entry (exports FmPrimaryLearning)
  plugins/fm-primary-learning.js  capture + memory injection (session.idle, session.created)
  learning/fm-learning-core.js    classify, stage, promote, dedup (shared logic)
  command/learn-review.md         optional /learn-review command (present + approve)

Runtime state (independent of any other tool's data dirs):

~/.agents/
  learning-staging/skills/<name>.json   staged skill candidates
  learning-staging/memory/<id>.json     staged memory candidates
  skills/<name>/SKILL.md                live skills (promoted only)
  memory/facts.md                       live memory (promoted only)

Why

Your agent improves with every session: procedures become skills, facts become memory, and the library stays lean because the audit removes what the models no longer need.

License

MIT