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

ru-mcp

v0.1.1

Published

rū — a protocol for seeding and resolving context with AI agents via #tags

Readme

A protocol for seeding and resolving context with AI agents.

Three primitives. One syntax. Works with any AI surface.

#context   — seed and retrieve your personal knowledge
@mention   — address a specific agent
/command   — execute a workflow

The idea

AI agents are powerful, but they're stateless by default. Every conversation starts cold. You re-explain who you are, what you're working on, what matters. That friction compounds.

rū fixes this by giving you a simple way to seed context intentionally — and retrieve it anywhere, automatically.

A #tag in your message is a signal. It resolves to knowledge you've already curated — from any connected source — and delivers it to the agent before it responds. You stop repeating yourself.

rū is not tied to any single app. Your context can live in Obsidian, Apple Notes, Granola, a browser extension, or anything else. The # primitive resolves across all of them.


The # primitive — two modes

The # primitive has a private mode and a public mode.

Private (#tag) Resolves from your local vault. Never leaves your machine. Only you can call it.

#project    → your notes on a specific project
#research   → your curated research context
#me         → your background, preferences, working style

Public (#folder/document.namespace) A path you've claimed under your namespace and chosen to share. Other users — or agents — can call it to retrieve your published context.

#rū/onboarding.yourusername      → your public onboarding guide
#research/summary.yourusername   → your public research summary

Private is the default. Public requires a deliberate claim under a namespace you own. You decide what's shareable.


Context sources

rū resolves #tags from any connected source. Sources are pluggable — connect one or many.

| Source | Status | |---|---| | Obsidian (via Local REST API plugin) | Available now | | Apple Notes | Planned | | Granola AI | Planned | | Browser extension (native rū harvester) | Phase 4 |


Install

Requires: Claude Desktop, Node.js 18+, and at least one connected source (see above).

To connect Obsidian: also requires the Local REST API plugin.

npx ru-mcp setup

The wizard will:

  1. Ask for your Obsidian API key (found in Obsidian → Settings → Community Plugins → Local REST API)
  2. Verify the connection to your vault
  3. Write the config to Claude Desktop automatically

Then fully quit and relaunch Claude Desktop (Cmd+Q, not just close the window).


How it works

rū runs as a local MCP server. Claude Desktop connects to it on startup. When you start a conversation, attach the auto_context prompt (paperclip icon → Add from rū → auto_context). From that point on, any #tag in your message automatically retrieves matching context from your vault before Claude responds.

No cloud. No account. Your context stays on your machine.

Smart retrieval: If a tag appears at the top of a note (page-level), rū fetches the full note. If it appears inline, rū returns just the surrounding snippet. You always get the right amount of context.


Using rū in Claude Desktop

  1. Start a new conversation
  2. Click the 📎 paperclip icon at the bottom of the input box
  3. Select "Add from rū" → choose auto_context
  4. From this point on, any #tag you write will automatically pull context from your vault

Example: If you have notes tagged #project in Obsidian (replace with any tag you use):

What should I focus on this week? #project

Claude retrieves your #project context and factors it into the response.

Note: Add auto_context once per conversation. It doesn't persist across new chats.


Tagging your notes

In Obsidian, add #tag anywhere in a note. rū finds it.

For page-level context (the whole note is about this topic), put the tag on line 1:

#project

This project is about building a tool that...

For inline context (the tag marks a section within a larger note):

## Meeting notes — Feb 2025

#project The client confirmed the scope...

Finding your API key

  1. Open Obsidian
  2. Go to Settings (gear icon, bottom left)
  3. Scroll to Community Plugins → click Local REST API
  4. Your API key is shown under "API Key"

Troubleshooting

"Couldn't reach Obsidian at port 27124"

  • Make sure Obsidian is open and Local REST API plugin is enabled
  • If you see a different port in the plugin settings, re-run setup

rū doesn't appear in Claude Desktop

  • Fully quit Claude Desktop (Cmd+Q) and relaunch after setup

"OBSIDIAN_API_KEY environment variable is not set"

  • Re-run npx ru-mcp setup

Coming next

  • Namespace registry — claim your namespace, publish #folder/document.namespace paths, share context with anyone
  • Browser extension — harvest context from anything you read

See SPEC.md for the full protocol specification.


Creator

rū was created by Diana Angelica Valdes Contreras.

Protocol design, architecture, and vision: Diana Angelica Valdes Contreras MIT License © 2025