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

engrm

v0.3.4

Published

Cross-device, team-shared memory layer for AI coding agents

Readme

Engrm

Cross-device memory for AI coding agents. Every session remembers what you learned yesterday — on any machine, for every team member.

npx engrm init

What It Does

Your AI agent forgets everything between sessions. Engrm fixes that.

  • Captures automatically — hooks into Claude Code to record discoveries, bugfixes, decisions, and patterns as you work
  • Remembers across devices — fix a bug on your laptop, continue on your desktop with full context
  • Shares with your team — one developer's hard-won insight becomes everyone's knowledge
  • Works offline — local SQLite is the source of truth; syncs when connected
  • Guards your code — Sentinel audits changes in real-time before they land

Quick Start

1. Sign up

Visit engrm.dev and create an account.

2. Install

npx engrm init

This opens your browser for authentication, writes config to ~/.engrm/, and registers the MCP server + hooks in Claude Code. Takes about 30 seconds.

Alternative methods:

# From a provisioning token (shown on engrm.dev after signup)
npx engrm init --token=cmt_your_token

# Self-hosted Candengo Vector
npx engrm init --url=https://vector.internal.company.com

# Manual setup (air-gapped environments)
npx engrm init --manual

3. Use Claude Code normally

That's it. Engrm works in the background:

  • Session start — injects relevant project memory into context
  • While you work — captures observations from tool use (edits, writes, commands)
  • Session end — generates a session digest, syncs to cloud, shows summary
━━━ Engrm Session Summary ━━━

📋 Request: Fix the OAuth redirect validation
🔍 Investigated: redirect_uri handling in auth.py
💡 Learned: scheme + host + port must all match registered URIs
✅ Completed: Stricter redirect_uri validation (auth.py)

🟢 Risk: Low (0.12)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

4. Check status

npx engrm status
Engrm Status

  User:        david
  Email:       [email protected]
  Device:      macbook-a1b2c3d4
  Plan:        Pro ($15/mo)
  Candengo:    https://www.candengo.com
  MCP server:  registered
  Hooks:       registered (6 hooks)

  Observations:    1,247 active
  By type:         change: 412, discovery: 289, bugfix: 187, ...
  Sentinel:        enabled (advisory, 142/200 today)
  Sync:            push 2m ago, pull 5m ago
  Security:        3 findings (1 high, 2 medium)

How It Works

Claude Code session
  │
  ├─ SessionStart hook ──→ inject relevant memory into context
  │
  ├─ PreToolUse hook ────→ Sentinel audits Edit/Write (optional)
  │
  ├─ PostToolUse hook ───→ extract observations from tool results
  │
  ├─ PreCompact hook ────→ re-inject memory before context compression
  │
  ├─ ElicitationResult ──→ capture MCP form submissions
  │
  └─ Stop hook ──────────→ session digest + sync + summary
        │
        ▼
  Local SQLite (FTS5 + sqlite-vec)
        │
        ▼ (sync every 30s)
  Candengo Vector (cloud)
        │
        ▼
  Available on all your devices + team members

MCP Tools

The MCP server exposes tools that Claude can call directly:

| Tool | Purpose | |------|---------| | search | Find relevant observations from memory (hybrid FTS5 + vector) | | timeline | Chronological context around an observation | | get_observations | Fetch full details by ID | | save_observation | Manually save something worth remembering | | install_pack | Load a curated knowledge pack for your stack |

Observation Types

| Type | What it captures | |------|-----------------| | discovery | Learning about existing systems or codebases | | bugfix | Something was broken, now fixed | | decision | Architectural or design choice with rationale | | change | Meaningful modification (feature, config, docs) | | feature | New capability or functionality | | refactor | Code restructured without behavior change | | pattern | Recurring issue or technique | | digest | Session summary (auto-generated) |


Features

Hybrid Search

Local FTS5 + sqlite-vec (all-MiniLM-L6-v2, 384 dims) combined with Candengo Vector's BGE-M3 semantic search. Results merged via Reciprocal Rank Fusion.

Sentinel — Real-Time Code Audit

LLM-powered review of every Edit/Write before it executes. Catches security issues, anti-patterns, and drift from team decisions.

⚠️  Sentinel: SQL query uses string concatenation instead of parameterized query
   Rule: sql-injection
   (Advisory mode — change allowed)

5 built-in rule packs: security, auth, api, react, database.

npx engrm sentinel init-rules        # Install all rule packs
npx engrm sentinel rules             # List available packs

Starter Packs

Pre-loaded knowledge for your tech stack. Detected automatically on session start.

Available: typescript-patterns, nextjs-patterns, node-security, python-django, react-gotchas, api-best-practices, web-security

npx engrm install-pack typescript-patterns

Secret Scrubbing

Multi-layer regex scanning for API keys, passwords, tokens, and credentials. Sensitive content is redacted before storage and sync. Custom patterns configurable in ~/.engrm/settings.json.

Observation Lifecycle

Observations age gracefully: active (30 days, full weight) → aging (0.7x search weight) → archived (compacted into digests) → purged (after 12 months). Pinned observations never age.


Pricing

| | Free | Vibe | Pro | Team | |---|---|---|---|---| | Price | $0 | $9/mo | $15/mo | £19/seat/mo | | Observations | 5,000 | 25,000 | Unlimited | Unlimited | | Devices | 1 | 3 | Unlimited | Unlimited | | Cloud sync | ✓ | ✓ | ✓ | ✓ | | Sentinel | — | Advisory (50/day) | Advisory (200/day) | Blocking (unlimited) | | Retention | 30 days | 90 days | 1 year | Unlimited | | Team namespace | — | — | — | ✓ |

Sign up at engrm.dev.


Self-Hosting

Point Engrm at your own Candengo Vector instance:

npx engrm init --url=https://vector.internal.company.com --token=cmt_...

Candengo Vector provides the backend: BGE-M3 hybrid search, multi-tenant namespaces, and team sync. See the Candengo docs for deployment.


Configuration

User config: ~/.engrm/settings.json

Created by engrm init. Contains API credentials, sync settings, search preferences, secret scrubbing patterns, and Sentinel configuration.

Project config: .engrm.json (optional)

Place in your project root to override project identity for non-git projects:

{
  "project_id": "internal/design-system",
  "name": "Design System"
}

Claude Code integration

Engrm auto-registers in:

  • ~/.claude.json — MCP server (engrm)
  • ~/.claude/settings.json — 6 lifecycle hooks

Tech Stack

  • Runtime: TypeScript, runs on Bun (dev) or Node.js 18+ (npm)
  • Local storage: SQLite via better-sqlite3, FTS5 full-text search, sqlite-vec for embeddings
  • Embeddings: all-MiniLM-L6-v2 via @xenova/transformers (384 dims, ~23MB)
  • Remote backend: Candengo Vector (BGE-M3, Qdrant, hybrid dense+sparse search)
  • MCP: @modelcontextprotocol/sdk (stdio transport)
  • AI extraction: @anthropic-ai/claude-agent-sdk (optional, for richer observations)

License

FSL-1.1-ALv2 (Functional Source License) — part of the Fair Source movement.

  • Free to use, modify, and self-host
  • You cannot offer this as a competing hosted service
  • Each version converts to Apache 2.0 after 2 years
  • Sentinel is a separate proprietary product

See LICENSE for full terms.


Built by the Engrm team, powered by Candengo Vector.