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

v0.2.5

Published

OpenCode plugin that bridges OpenCode events to cmux notifications and sidebar metadata

Readme

opencode-cmux

npm

OpenCode plugin that bridges OpenCode events to cmux notifications and sidebar metadata.

Requirements

  • OpenCode ≥ 1.0
  • cmux (macOS app) installed; the plugin invokes cmux via $CMUX_BUNDLED_CLI_PATH (set by cmux's shell integration), falling back to cmux on $PATH
  • The plugin is a no-op when not running inside a cmux workspace

Installation

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

{
  "plugin": ["opencode-cmux"]
}

OpenCode will download the package automatically on next start.

Local / development

Build the package, then symlink the output directly into OpenCode's plugin directory:

ln -sf ~/path/to/opencode-cmux/dist/index.js ~/.config/opencode/plugins/cmux.js

Make sure opencode-cmux is not listed in opencode.json when using the symlink, to avoid loading it twice.

Configuration

Create ~/.config/opencode/opencode-cmux.json to customize plugin behavior:

{
  "splits": true,
  "notifications": {
    "done": false
  }
}

| Option | Type | Default | Description | |----------------------------|---------|---------|----------------------------------------------------------| | splits | boolean | false | Open cmux split panes for subagent sessions | | notifications.done | boolean | true | Show a popup when a session finishes | | notifications.permission | boolean | true | Show a popup when OpenCode requests a permission | | notifications.question | boolean | true | Show a popup when OpenCode asks a clarifying question | | notifications.error | boolean | true | Show a popup when a session errors |

If the file does not exist or any key is omitted, defaults are used. Each notification type can be toggled independently — useful when running multiple agents in parallel and per-turn Done popups become noisy.

Subagent splits

When splits is enabled and a subagent spawns, the plugin opens a cmux split with a live opencode attach view. Requires --port to expose an HTTP server:

opencode --port 0  # binds to first available port

Without --port, splits are silently skipped even when enabled.

What it does

| Event | cmux action | |---|---| | Session starts working | Sidebar status: "working" (amber, terminal icon) | | Session completes (primary) | Desktop notification + log + clear status | | Session completes (subagent) | Log only (no notification spam) | | Session error | Desktop notification + log + clear status | | Permission requested | Desktop notification + sidebar status: "waiting" (red, lock icon) | | AI has a question (ask tool) | Desktop notification + sidebar status: "question" (purple) |

How it works

The plugin responds to OpenCode lifecycle events by firing cmux CLI commands (cmux rpc notification.create, cmux set-status, etc.). Each action targets the current cmux workspace, providing ambient awareness of what OpenCode is doing without requiring you to switch context. All commands are no-ops when cmux is not running.

License

MIT