import-gmail

Sync Gmail mailboxes via msgvault and import contacts as local candidate records.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Getting your Gmail contacts into a searchable local network normally requires manual exports, paid data providers, or ad-hoc scripts. This Skill automates the full pipeline: OAuth setup, multi-account mailbox sync with a bounded history window, and local contact extraction into candidate CSV rows — all free and local, with no paid APIs. ## Core Features & Use Cases - Guided OAuth setup: Creates the msgvault Google OAuth app in the browser, authorizes multiple Gmail accounts, and runs an all-account token health preflight before any mail is downloaded. - Bounded multi-account sync: Syncs selected accounts through a single discover command with a configurable history window (default 3 years, or full history), storing mail in a durable incremental msgvault archive. - Free local contact import: Extracts contact metadata from the synced archive into .powerpacks/network-import/import/gmail/people.csv as candidate rows, with identity resolution and enrichment deferred to the Deep Context stage. - Use Case: A recruiter links three Gmail accounts, syncs the last 3 years of mail, and stages thousands of contacts locally so they can later be enriched and searched alongside LinkedIn and messaging sources. ## Quick Start Ask your agent to run $import-gmail, then tell it which Gmail accounts to link and how many years of mail to sync.

Frequently Asked Questions about import-gmail

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

FAQPage Schema
How do I import Gmail contacts into a local searchable network?▼

Run the $import-gmail flow: it checks msgvault status, asks which Gmail accounts to link and how far back to sync, sets up OAuth, syncs the mailboxes, and writes contacts to import/gmail/people.csv as candidate rows. Identity resolution and indexing happen later in the Deep Context stage.

How far back does the Gmail sync go by default?▼

The default sync window is 3 years of mail. You can choose any number of years or answer "all" for full mailbox history, which maps to a --sync-after date of 2004-01-01. Reruns rescan the chosen window and skip already-stored messages.

Does importing Gmail contacts cost money or use paid APIs?▼

No. The import is entirely free and local: it reuses the synced msgvault archive and writes candidate rows without calling Parallel.ai, RapidAPI, OpenAI, or Modal. Paid enrichment and identity resolution are handled separately by the Deep Context processing layer.

Can I sync multiple Gmail accounts at once?▼

Yes. Pass one --account-email flag per selected account to a single discover command, which syncs all accounts and builds the discovery artifacts together. Running separate invocations per account rewrites the manifest and can leave only the last account available for import.

Why does the sync refuse to start after adding accounts?▼

Step 5 requires the all-account auth-check to return status ok for the exact selected set. A local account row does not prove the refresh token is still valid, so missing or expired tokens must be re-authorized with add-account or add-account --force-auth before any mailbox sync begins.

What data from my Gmail is sent to external services?▼

None during import. The msgvault archive stores messages locally, and the importer reads only contact and interaction metadata from SQLite. Message bodies, subjects, snippets, and attachments are never sent to identity providers by this skill.