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

@brightdata/enrich

v0.1.1

Published

Enrich CSVs with company and person data using Bright Data + LLM agents

Readme

@brightdata/enrich

Headless CLI for the Open Enrich engine. Enrich any CSV with company and person data using Bright Data's web infrastructure + LLM agents.

Install

npx @brightdata/enrich --version
# or
npm install -g @brightdata/enrich

First-run setup

You'll need a Bright Data account (with two zones: SERP API + Web Unlocker) and an OpenRouter API key.

enrich login

Or set env vars instead:

BRIGHT_DATA_API_KEY=...
BRIGHT_DATA_SERP_ZONE=...
BRIGHT_DATA_UNLOCKER_ZONE=...
OPENROUTER_API_KEY=...

Env vars always take precedence over the stored config.

Usage

# Describe what you want in natural language
enrich leads.csv --describe "company size, recent funding, tech stack"

# Or pick specific preset fields
enrich leads.csv --fields employee_count,industry,funding_stage

# See what would happen without making API calls
enrich leads.csv --describe "..." --dry-run

# Specify the identifier column explicitly
enrich leads.csv --describe "..." --column email_address

# Write to a specific output path
enrich leads.csv --describe "..." --output enriched.csv

# Stream NDJSON events for programmatic use
enrich leads.csv --describe "..." --json | jq .

Commands

| Command | Description | |---|---| | enrich <input.csv> | Enrich the given CSV (the default command). | | enrich login | Interactively configure and store credentials. | | enrich logout | Remove stored credentials. |

Options

| Option | Description | Default | |---|---|---| | -o, --output <path> | Output CSV path. | <input>.enriched.csv | | --column <name> | Identifier column. | auto-detected | | --first-name <name> | Column containing the person's first name. | — | | --last-name <name> | Column containing the person's last name. | — | | --describe <text> | Natural-language description of the fields you want. | — | | --fields <names> | Comma-separated preset field names (alternative to --describe). | — | | --concurrency <n> | Rows enriched in parallel. | 30 | | --no-resume | Overwrite the output instead of auto-resuming. | resume on | | --dry-run | Resolve config and exit without making API calls. | off | | --json | Stream NDJSON events to stdout; do not write a CSV. | off | | -q, --quiet | Suppress progress; print only the final summary. | off | | -v, --verbose | Show every agent_progress event. | off |

Provide either --describe (natural language) or --fields (preset names). Run enrich with no arguments to print full help.

Identifier & name columns

The CLI auto-detects the column that identifies each row (e.g. a company domain, website, or email). Override it with --column when detection guesses wrong. For person-level enrichment, point --first-name/--last-name at the relevant columns so the agents can disambiguate people at the same company.

How resume works

If you re-run with the same --describe/--fields and the output file already exists, the CLI checks the header and skips rows that already have output. Interrupted runs (Ctrl-C) auto-resume on the next run. Pass --no-resume to overwrite.

Cost

Bright Data charges per tool call (~$0.0015). OpenRouter charges per LLM token. Use --dry-run for a rough estimate before kicking off large runs.

License

MIT