build-local-search-index

Builds a local DuckDB search index from the canonical merged people.csv without cloud services.

1|1|Updated Apr 28, 2026
One-click install
npx skills add https://github.com/powerset-co/powerpacks --skill build-local-search-index-powerset-co
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: build-local-search-index
Source: https://github.com/powerset-co/powerpacks/tree/main/packs/indexing/skills/build-local-search-index
Command: npx skills add https://github.com/powerset-co/powerpacks --skill build-local-search-index-powerset-co

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It lets you build and inspect a searchable local index of your imported people network entirely on your own machine, without depending on Modal, Postgres, Supabase, or TurboPuffer infrastructure. ## Core Features & Use Cases - Local index builds: Converts the canonical merged people.csv into a DuckDB search database under .powerpacks/search-index/ with stable UUIDv5 identifiers. - Dry-run cost estimation: Inspects the processing plan and reports estimated paid provider calls before any classification or embedding spend occurs. - Resumable, idempotent runs: A partial index resumes from the ledger file, and a completed index refreshes in place rather than duplicating. - Use Case: After importing your LinkedIn contacts, run the local indexing pipeline to produce a searchable DuckDB database, then point the search skill at it via the POWERPACKS_LOCAL_SEARCH_DB environment variable. ## Quick Start Ask your agent to build the local search index from my merged people data and show me the cost estimate first.

Frequently Asked Questions about build-local-search-index

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a local search index from my contacts CSV?▼

Run the index_contacts_pipeline with the run command and your operator id. It performs fan-in, promotes the canonical merged people.csv, and writes the index plus a DuckDB database under .powerpacks/search-index/.

How can I estimate indexing costs before running a full build?▼

Run the build_processing_pipeline with the --dry-run flag against your merged people.csv. It reports estimated paid provider calls and cost without making any LLM or network calls, so you can approve spend first.

Does local indexing require Modal, Supabase, or TurboPuffer?▼

No. The local path explicitly avoids Modal dispatch, Supabase/Postgres calls, and TurboPuffer. Plan, status, and dry-run operations are local-only, and a full run only calls configured classification or embedding providers for cache misses.

Can I resume a partial indexing run?▼

Yes. A partial index resumes from .powerpacks/search-index/ledger.json using the continue command. The run is idempotent, so a completed index refreshes the same directory instead of creating a new one.

Where does the local search database get written?▼

Artifacts are written under .powerpacks/search-index/, with the DuckDB database at .powerpacks/search-index/local-search.duckdb. Point the search tooling at it by exporting POWERPACKS_LOCAL_SEARCH_DB to that path.