@preserve-cli/seed
v0.2.0
Published
Preserve workspace CLI — seed brand, assets, products, proof, glossary, and overview from any marketing website
Readme
@preserve-cli/seed
Seed brand profiles, images, products, proof, glossary, and overview documents into a Preserve workspace from any public marketing website.
Prerequisites
- An existing Preserve workspace
- A workspace API key with seed/publish scope (
brand.seed), created by a workspace owner or admin
Usage
npx @preserve-cli/seed \
--url https://example.com \
--slug my-workspace \
--auth-key pk_live_…Verify published workspace knowledge:
npx @preserve-cli/seed verify \
--slug my-workspace \
--auth-key pk_live_…Dry-run scrape only (writes local cache, no publish):
npx @preserve-cli/seed \
--url https://example.com \
--slug my-workspace \
--auth-key pk_live_… \
--dry-runEnvironment variables
PRESERVE_API_KEY— fallback for--auth-keyPRESERVE_BASE_URL— fallback for--base-url(default:https://mcp.preserve.design)
Commands
| Command | Description |
|---------|-------------|
| preserve-seed (default) | Crawl a website and publish full workspace knowledge |
| preserve-seed verify | Read back published brand, assets, products, glossary, and proof via MCP |
Flags
| Flag | Description |
|------|-------------|
| --url | Website to scrape (required unless --skip-scrape) |
| --slug | Workspace slug |
| --auth-key | pk_live_ key with brand.seed scope |
| --base-url | MCP host (default https://mcp.preserve.design) |
| --max-pages | Maximum marketing pages to crawl (default 40) |
| --include-blog | Include /blog pages in the crawl |
| --dry-run | Scrape only; write local cache, no publish |
| --skip-scrape | Publish from existing local cache |
| --output-dir | Cache directory (default ./.preserve/{slug}/) |
What gets scraped
The CLI discovers pages via sitemap.xml, homepage nav/footer links, and priority marketing paths (/about*, /platform*, /product*, /pricing, /glossary, /case-study*, etc.).
It publishes:
- Brand — company name, voice, colors, typography (from meta tags, JSON-LD, and CSS)
- Assets — favicon, OG image, primary logo (customer/partner logos filtered out)
- Products — one product per matched marketing/product page
- Proof — case studies, testimonials, homepage metrics, FAQ claims
- Glossary — terms from
/glossaryplus company name - Overview — markdown company overview document
Local cache
After scraping, files are written to .preserve/{slug}/:
pages.json
brand.json
assets-manifest.json
products.json
proof.json
glossary.json
overview.mdUse --skip-scrape to re-publish from cache without re-crawling.
Local development
From the monorepo root:
pnpm --filter @preserve-cli/seed build
pnpm preserve -- --url https://www.docket.io --slug docket-inc --auth-key pk_live_… --dry-run
pnpm preserve verify -- --slug docket-inc --auth-key pk_live_…Publish to npm
The package is standalone (no monorepo workspace dependencies). From the repo root:
pnpm --filter @preserve-cli/seed pack:check # build + validate tarball
pnpm preserve:publish # npm publish --access publicRequires npm login with publish access to @preserve-cli.
