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

@geohar/opencode-cribsheet

v0.3.0-dev.0

Published

OpenCode plugin: run the crib (cribsheet) memory + code-index MCP server via sharedserver, register its endpoint, inject the reach-for-crib directive, and ship the /crib command. Stands down when a combiner already serves crib.

Readme

@geohar/opencode-cribsheet

An OpenCode plugin that brings crib (cribsheet — persistent cross-session markdown memory + a code symbol index) to OpenCode: it starts crib (supervised by sharedserver), registers its HTTP MCP endpoint, injects the reach-for-crib directive, and ships the /crib recall command — and stands down when a combiner already serves crib.

It is the OpenCode counterpart of cribsheet's Claude Code plugin, and mirrors its behaviour.

What it does

  1. Stand-down switch. If a combiner already serves crib, the plugin neither registers a standalone MCP entry nor launches a backend (the combiner owns crib's lifecycle):

    • MCP_COMBINER=1 — global switch.
    • MCP_COMBINER_SERVES_CRIBSHEET=0|1 — per-backend override (wins).

    The directive and /crib command are injected either way — crib's tools are present via the combiner too.

  2. Register. Otherwise it injects cribsheet into OpenCode's mcp config as a type: "remote" endpoint (default http://127.0.0.1:7732/mcp). A user- defined entry is left untouched.

  3. Run one warm crib. It drives sharedserver:

    sharedserver use cribsheet --pid <opencode-pid> --grace-period 1h \
        -- crib --mcp --http --host 127.0.0.1 --port 7732

    sharedserver refcounts by PID, so one crib process is shared across clients (OpenCode, Claude Code, Neovim) and outlives any single one. unuse on exit.

  4. Reach-for-crib directive. Appended to the system prompt each session via experimental.chat.system.transform — the analogue of the Claude Code plugin's SessionStart additionalContext.

  5. /crib command. Registered in OpenCode's command config, mirroring cribsheet's commands/crib.md: recalls memory (crib note apropos) and the code index (crib code lookup) for a topic, then summarizes.

Install

Add it to your opencode.json plugin list:

{
  "plugin": [
    "@geohar/opencode-cribsheet@latest"
  ]
}

With options (all optional — defaults shown):

{
  "plugin": [
    ["@geohar/opencode-cribsheet@latest", {
      "port": 7732,
      "host": "127.0.0.1",
      "gracePeriod": "1h",
      "manage": true,
      "register": true,
      "instructions": true,
      "command": true,
      "notify": true
    }]
  ]
}

Options

| option | default | meaning | |---|---|---| | mcpName | "cribsheet" | key under OpenCode's mcp config | | url | http://127.0.0.1:<port>/mcp | MCP URL to register | | register | true | register the endpoint with OpenCode | | instructions | true | inject the reach-for-crib directive into the system prompt | | command | true | register the /crib command | | manage | true | launch/attach crib via sharedserver (false → register only) | | binary | auto | path to sharedserver ($SHAREDSERVER_BIN also honoured) | | lockdir | — | override SHAREDSERVER_LOCKDIR | | name | "cribsheet" | sharedserver instance name | | gracePeriod | "1h" | sharedserver grace period | | logFile | — | capture crib output (sharedserver --log-file) | | crib | crib on PATH | override the crib command ($OPENCODE_CRIBSHEET_COMMAND) | | checkout | — | cribsheet checkout for uv run --project ($OPENCODE_CRIBSHEET_CHECKOUT) | | port | 7732 | HTTP port crib serves on | | host | 127.0.0.1 | HTTP host crib binds | | notify | true | show TUI toasts for attach/health outcomes |

Requirements

  • sharedserver on PATH (cargo install sharedserver) — unless manage: false.
  • crib on PATH (install cribsheet), or a checkout + uv.

Relationship to the other plugins

crib behind a combiner is served through mcp-combiner; set MCP_COMBINER=1 (or run mcp-combiner env-disable) and this plugin stands down. The Claude Code counterpart ships in the cribsheet repo's marketplace.