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-diff-feedback

v0.1.2

Published

Inline diff annotation plugin for opencode — leave feedback on agent-proposed code changes

Readme

opencode-diff-feedback

Inline diff annotation plugin for opencode. Review the diff in the initial permission ask, and if you want to provide feedback, reject the change, then run /feedback to open the plugin and leave line-by-line feedback.

Features

  • Rejected diffs are captured for review, file-by-file, with syntax highlighting
  • Attach inline comments to individual diff lines
  • Edit and delete annotations
  • Collected annotations are injected back into the session prompt when you return to the chat

Usage

When the agent proposes a change, review the diff in the permission ask dialog. If you want to provide feedback, hit reject, then run /feedback to open the plugin and leave line-by-line feedback.

Note: your opencode permission settings must be configured to ask before write/edit operations, otherwise the diff will be applied without giving you a chance to review or reject it.

| Action | Keys | | --- | --- | | Open diff review | /feedback | | Go back to the session | esc | | Switch files | / (or h / l) | | Move between lines | / (or j / k) | | Add a comment on a line | c | | Edit the latest comment on a line | e | | Delete the latest comment on a line | d |

Comments are summarized back into the prompt so the agent can react to your feedback on the next turn.

Installation

This is an opencode TUI plugin. Add it to your TUI config (tui.json):

{
  "plugin": ["opencode-diff-feedback"]
}

Requires @opencode-ai/plugin, @opentui/core, @opentui/solid, and solid-js.

Development

bun install
bun test

Syntax highlighting grammars are fetched into src/grammars by scripts/fetch-grammars.mjs.

Publishing

Releases are published to npm automatically via GitHub Actions (.github/workflows/publish.yml), which runs typecheck, tests, and npm publish --provenance using npm Trusted Publishing (OIDC) — no npm token needed.

To release a new version:

  1. Bump the version and create the matching tag:
    npm version patch   # or minor/major — bumps package.json and tags the commit
    git push --tags
  2. Create a GitHub release from that tag (or gh release create <tag> --generate-notes).
  3. The workflow publishes the exact version from the tag. It will fail if the tag and package.json version don't match.

Not built by the OpenCode team

This project uses "opencode" as part of its name because it's an opencode plugin. It is not built by the OpenCode team and is not affiliated with OpenCode in any way.