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

user-memories

v1.0.4

Published

Extract user knowledge (identity, contacts, accounts, addresses, payments) from browser data into a self-ranking SQLite database. Install as a Claude Code agent skill.

Readme

user-memories

Extract what your browser knows about you into a self-ranking SQLite database. Reads autofill, login data, browsing history, bookmarks, WhatsApp contacts, LinkedIn connections, and Notion workspaces — directly from local browser files.

What it extracts

| Source | Data | Browser files | |--------|------|---------------| | Web Data | Autofill, addresses, credit cards | Web Data SQLite | | Login Data | Accounts, emails, usernames | Login Data SQLite | | History | Tool/service usage frequency | History SQLite | | Bookmarks | Interests, saved tools | Bookmarks JSON | | IndexedDB | WhatsApp contacts | LevelDB via ccl_chromium_reader | | Local Storage | LinkedIn connections | LevelDB via ccl_chromium_reader | | Notion | Workspace users, pages | IndexedDB |

Supported browsers: Arc, Chrome, Brave, Edge, Safari, Firefox.

Install

npx user-memories init                               # sets up ~/user-memories, Python venv, core deps
npx user-memories install-embeddings                  # optional: semantic search (~180MB)

Requires Python 3.10+ and Node.js 16+. macOS only (reads from ~/Library/Application Support/).

This creates ~/user-memories/ with a Python venv, installs dependencies, and symlinks Claude Code skills to ~/.claude/skills/.

Usage

cd ~/user-memories && source .venv/bin/activate
python extract.py                                    # scan all browsers
python extract.py --browsers arc chrome              # specific browsers
python extract.py --no-indexeddb --no-localstorage   # skip LevelDB (faster)
python extract.py --output /path/to/memories.db      # custom output path

To update after a new release:

npx user-memories update                             # updates code, preserves memories.db

Python API

from user_memories import MemoryDB, extract_memories

# Extract from browsers
mem = extract_memories("memories.db")

# Query
mem.search(tags=["identity", "contact_info"])
mem.text_search("github")
mem.semantic_search("what tools do I use most")

# Profile summary
print(mem.profile_text())

# History + supersession chain
mem.history("email")

How it works

Self-ranking — each memory tracks appeared_count (how often it was seen during extraction) and accessed_count (how often it was queried). The ratio accessed_count / appeared_count is the hit_rate, used to surface the most relevant memories.

Semantic dedup — new entries are compared against existing ones using nomic-embed-text-v1.5 embeddings (768-dim, ONNX Runtime). If cosine similarity >= 0.92 with the same key prefix, the old entry is superseded rather than duplicated.

Key schema — memories use structured keys with cardinality rules:

  • Single-value (first_name, last_name, full_name, ...): new values automatically supersede old ones
  • Multi-value (email, phone, account:github.com, tool:vscode, ...): multiple values coexist

Entity linking — accounts sharing the same username/email are automatically linked via same_identity relations.

Schema

memories (id, key, value, confidence, source, appeared_count, accessed_count,
          created_at, last_appeared_at, last_accessed_at, superseded_by,
          superseded_at, search_text, reviewed_at)

memory_tags (memory_id, tag)     -- identity, contact_info, address, payment,
                                 -- account, tool, contact, work, knowledge,
                                 -- communication, social, finance

memory_links (source_id, target_id, relation, created_at)

memory_embeddings (memory_id, embedding)  -- 768-dim BLOB

Project structure

extract.py                          # CLI entry point
user_memories/
  __init__.py                       # exports MemoryDB, extract_memories
  db.py                             # MemoryDB: schema, upsert, search, profile
  embeddings.py                     # ONNX Runtime embeddings + cosine search
  extract.py                        # extraction orchestrator
  ingestors/
    browser_detect.py               # find browser profiles
    constants.py                    # lookup maps, browser paths
    webdata.py                      # autofill, addresses, credit cards
    history.py                      # browsing history → tool usage
    logins.py                       # saved logins → accounts
    bookmarks.py                    # bookmarks → interests
    indexeddb.py                    # WhatsApp contacts
    localstorage.py                 # LinkedIn connections
    notion.py                       # Notion workspace data
    messages.py                     # message extraction

License

MIT