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

@rememlyai/hooks

v0.1.1

Published

Capture hooks for Rememly - ingest AI coding sessions into the personal capture layer for Claude Code, Cursor, and Codex.

Readme

@rememlyai/hooks - Rememly capture hooks

Capture AI coding sessions into your personal Rememly memory layer, so the next session (in any tool) starts already knowing what happened in the last one. This is the capture layer of Rememly's double-layer memory model (ADR-018): raw, verbatim, personal-only, and hash-idempotent. The curated layer (approval-gated extractions) is built separately by the extract_memories tool.

Two guarantees:

  • Personal-only. Captured transcripts are written to your personal scope and never to a team scope — a raw, unreviewed transcript is never pushed at a teammate. The server rejects any non-personal capture.
  • Idempotent. Every chunk is content-hashed, so re-uploading an overlapping transcript (the hooks fire repeatedly) saves nothing new.

Configure

Set these in your shell environment (the hooks read them at fire time):

| Variable | Required | Default | Meaning | | --- | --- | --- | --- | | REMEMLY_TOKEN | ✅ | - | A cm_* API token with memory:write | | REMEMLY_API_URL | | https://api.rememly.ai | Backend base URL | | REMEMLY_CAPTURE_EVERY | | 15 | Human turns between Stop uploads | | REMEMLY_CAPTURE_OFF | | - | Set to disable capture entirely | | REMEMLY_CAPTURE_DEBUG | | - | Set to log hook activity to stderr |

Claude Code

Full transcript capture. Install as a plugin (the .claude-plugin/ manifest wires the Stop, PreCompact, and SessionEnd hooks):

npm i -g @rememlyai/hooks
# then add this repo's plugin dir to Claude Code, or copy .claude-plugin/hooks.json
# into your ~/.claude/settings.json hooks block.
  • Stop - uploads once every REMEMLY_CAPTURE_EVERY human turns.
  • PreCompact — always uploads (the transcript is about to be summarised away; this is the one hard-guarantee firing).
  • SessionEnd — uploads anything new before the session closes.

The hook never emits blocking output — it always exits 0, so it can never wedge Claude Code, and it never loops on stop_hook_active.

Cursor

Cursor doesn't expose a parseable transcript, so instead of uploading we nudge the agent to call the Rememly checkpoint MCP tool itself. Copy hosts/cursor-hooks.json into your Cursor hooks config and replace /ABS/PATH/TO with the installed package path.

  • sessionStart — injects a context block: recall relevant memory first, and the inferred project container (your workspace folder name).
  • stop - every REMEMLY_CAPTURE_EVERY firings, returns a followup_message asking the agent to checkpoint the session (decisions, preferences, facts + a one-line diary). De-dup is automatic.

The hook does not provide MCP tools by itself. Connect the host to /mcp or @rememlyai/mcp first; the local package is preferred when the agent should resolve project memory and Todo work from the current git repository.

Codex

Codex reuses the Claude Code capture script. Copy hosts/codex-hooks.json into .codex/hooks.json and fix the path.

Develop

npm install
npm test        # vitest — pure core logic (parsing, cadence, container hints)

The pure, testable core lives in lib/capture-core.mjs; the runners in bin/ are thin I/O shells over it.