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

@silverbackbase/trace

v0.2.1

Published

Marketing action memory primitive for AI agents

Readme

Trace

Marketing action memory for AI agents.

Trace gives your AI agent a memory of past marketing actions. Before every recommendation, it checks what was already done. When a performance drop is mentioned, it correlates with recent actions. It reminds you when it's time to analyze results.

Local-first. SQLite. No account, no API key, no data leaving your machine.

npx @silverbackbase/trace init

→ Configures MCP, skill, and end-of-session hook in Claude Code automatically.


Why

Your agent recommends optimizing a page that was updated three weeks ago. It doesn't know. You explain, it moves on — until next session, when it's forgotten again.

A lead drop arrives. The agent digs into Analytics, campaigns, keywords. It doesn't know you changed the Google Ads budget ten days ago. Nobody logged that.

Trace is the missing primitive. Agents have tools to read data — not to remember actions.


How it works

1. Install

npx @silverbackbase/trace init
# or with a custom directory
npx @silverbackbase/trace init --dir /path/to/trace

Configures automatically:

  • MCP server in ~/.claude.json — 5 tools available in Claude Code
  • Proactive skill in ~/.claude/skills/trace/SKILL.md
  • End-of-session reminder hook in ~/.claude/settings.json

Restart Claude Code to activate.

2. Log actions

trace add   # interactive mode
# or inline
trace add "Rewrote service page H1 and intro" \
  --client acme \
  --channel seo \
  --type page_updated \
  --url https://acme.fr/service

3. The agent acts on memory

Before any marketing recommendation, the agent calls trace_before_action. If a similar action was done recently and hasn't been reviewed yet, it returns review_first instead of proceeding blindly.

trace_before_action({
  client_name: "Acme",
  channel: "seo",
  action_type: "page_updated",
  asset_url: "https://acme.fr/service"
})
// → { recommendation: "review_first", reason: "Action done 18 days ago, not yet reviewed." }

MCP Tools

| Tool | Description | |------|-------------| | trace_log | Log a marketing action with full context | | trace_before_action | Check if a similar action was done recently — returns act, wait, or review_first | | trace_correlate | Find recent actions that may explain a reported performance drop | | trace_due | Return actions whose review window has passed | | trace_query | Search and filter past actions by client, channel, period, or keyword |


CLI

trace init              # Initialize (configure MCP, skill, hook)
trace add [summary]     # Log an action — interactive or inline
trace list              # Recent actions
trace due               # Actions pending review
trace search <query>    # Search by keyword

Channels & action types

| Channel | Action types | |---------|-------------| | seo | page_created, page_updated, backlink_added, redirect_added, schema_added | | sea | campaign_created, budget_changed, keyword_added, ad_updated | | local_seo | gmb_post, gmb_photos, gmb_response, citation_added | | cro | ab_test_started, ab_test_ended, form_changed, cta_changed | | content | article_published, newsletter_sent, social_post |


Review windows

Trace auto-calculates a review_date based on action type:

| Action type | Review after | |-------------|-------------| | budget_changed | 7 days | | ab_test_ended | 14 days | | page_updated | 45 days | | page_created | 60 days | | backlink_added | 90 days |


Self-host / SDK

npm install @silverbackbase/trace
import { openDb, addAction, getDueActions } from "@silverbackbase/trace";

const db = openDb("/path/to/trace");
addAction(db, {
  client_name: "Acme",
  channel: "seo",
  action_type: "page_updated",
  summary: "Rewrote service page",
});
const due = getDueActions(db);
db.close();

Requirements

  • Node.js 22+
  • Claude Code (for MCP + skill + hook)

License

MIT — SilverBackBase