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-bell

v0.3.0

Published

OpenCode plugin: privacy-friendly terminal bell notifications

Readme

opencode-bell

Never miss an OpenCode prompt again.

  • Zero dependencies — single-file plugin
  • Privacy-friendly — no message content, no external commands, no network calls
  • Configurable — choose which events trigger the bell
  • Smart debounce — avoids bell spam for the same event type per session

Install

npm (recommended)

Add the plugin to ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["[email protected]"]
}

Restart OpenCode. It will auto-install the package and cache it under ~/.cache/opencode/node_modules/.

Local file

Copy index.js into ~/.config/opencode/plugins/ and restart OpenCode.

Configuration

Two environment variables control behavior:

| Variable | Default | Description | |---|---|---| | OPENCODE_BELL_EVENTS | permission.asked,question.asked,session.idle,session.error | Comma-separated list of events that trigger the bell | | OPENCODE_BELL_OUTPUTS | bell | Comma-separated output methods: bell and/or osc | | OPENCODE_BELL_DEBOUNCE | 1200 | Minimum ms between repeated bells for the same event type and session. Must be >= 1; 0 or negative falls back to default |

Example — bell only on permission requests, with a 5-second debounce:

export OPENCODE_BELL_EVENTS="permission.asked"
export OPENCODE_BELL_DEBOUNCE="5000"

Example — terminal notification plus bell, similar to Claude Code's iterm2_with_bell style:

export OPENCODE_BELL_OUTPUTS="bell,osc"

Supported Events

| Event | Fires when | |---|---| | permission.asked | OpenCode needs approval to run a tool | | question.asked | OpenCode asks the user a question | | session.idle | A session completes and is waiting for input | | session.error | A session encounters an error |

How it works

The plugin writes the BEL character (\x07) to stdout by default. Your terminal emulator interprets it — typically as an audio beep, a visual flash, or a dock badge, depending on your terminal settings.

When OPENCODE_BELL_OUTPUTS includes osc, the plugin also writes an OSC 9 terminal notification escape sequence. Terminals that support OSC 9 can turn it into a native-looking notification; unsupported terminals usually ignore it.

Troubleshooting

No sound or flash? Check your terminal bell settings:

  • Terminal.app: Settings -> Profiles -> Bell

Uninstall

  • Remove opencode-bell from opencode.json and restart OpenCode.
  • If you used the local-file method, delete ~/.config/opencode/plugins/index.js (or whichever filename you used).

License

MIT