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

dejado-bridge

v0.1.0

Published

DejaDo Screenpipe bridge — reads local Screenpipe data, runs pattern detection on-device, syncs summaries to DejaDo. Raw frames/audio/clipboard never leave your machine.

Readme

dejado-bridge

The DejaDo bridge reads your local Screenpipe database, runs pattern detection on-device, and syncs summaries to DejaDo.

Raw frames, audio, and OCR text never leave your machine. Only aggregated observations ("Used iTerm2 12 times for 45 minutes today") are sent. All observations are redacted for obvious secrets (API keys, credit cards, JWTs, password query params) before upload.

Install

# Prereq — Screenpipe running locally
brew install screenpipe && screenpipe

# Install the bridge
npm install -g dejado-bridge

Configure

  1. Go to https://dejado.ai/settings/bridge
  2. Click Create API key, copy the key (shown only once)
  3. Run:
dejado-bridge login
# Paste the key when prompted

Usage

# One-shot sync of everything new
dejado-bridge sync

# Daemon — sync every 5 min
dejado-bridge watch

# Inspect current state
dejado-bridge status

# Remove local config
dejado-bridge logout

Custom Screenpipe path

If Screenpipe's DB isn't at the default (~/.screenpipe/db.sqlite):

dejado-bridge login --db /custom/path/db.sqlite
# or
SCREENPIPE_DB_PATH=/custom/path/db.sqlite dejado-bridge sync

Self-hosted DejaDo

dejado-bridge login --api-url https://dejado.example.com
# or
DEJADO_API_URL=https://dejado.example.com dejado-bridge sync

What gets synced

The bridge reads three Screenpipe tables (frames, audio_transcriptions, ocr_text) and produces four types of observations:

| Type | When | Example | |---|---|---| | app_switch | App used 3+ times in the sync window | "Used Slack 47 times (128 min) today: #ops, #engineering" | | meeting | 5+ consecutive audio segments <2 min apart | "Meeting 42 min, 3 speakers: 'let's align on the Q2 roadmap…'" | | screen_capture | 6+ consecutive OCR frames in same app, >3 min | "Spent 18 min reading HubSpot (Pipeline)" | | clipboard | (reserved — Screenpipe doesn't yet expose clipboard events) | — |

What's redacted

Every text field is passed through the redaction pass before upload:

  • Credit card numbers (Luhn-matching 13-19 digit sequences)
  • SSNs
  • AWS access keys (AKIA…)
  • GitHub tokens (ghp_, gho_, ghs_)
  • Anthropic keys (sk-ant-…)
  • OpenAI keys (sk-…)
  • Slack tokens (xoxb-, xoxp-)
  • JWTs
  • PEM private-key blocks
  • Bearer / Basic / Authorization header values
  • Password/secret query parameters in URLs

Field lengths are hard-capped (summary ≤ 500, context ≤ 5000, appName ≤ 200, actionUrl ≤ 2000).

Configuration file

Stored at ~/.dejado/config.json with 0600 perms:

{
  "apiKey": "dejado_bridge_...",
  "apiUrl": "https://dejado.ai",
  "screenpipeDbPath": "/Users/you/.screenpipe/db.sqlite",
  "redactPatterns": []
}

Add extra redaction regex strings (applied globally, replaced with [REDACTED:USER]) via redactPatterns. E.g. to scrub a specific internal project codename:

{ "redactPatterns": ["\\bProjectRedacted\\b"] }

Cursor state lives at ~/.dejado/cursor.json — delete to force a full re-sync.

Development

git clone https://github.com/liorwn/dejado
cd dejado/bridge
npm install
npm run build
node dist/cli.js status

License

MIT