关于 pp-context-dev
pp-context-dev 是供 Agent 和团队从企业网站提取结构化信息的命令行技能,涵盖抓取、爬取、数据提取、品牌资料、竞品研究和变更监测,结果包含来源信息。
主要功能
- 01将网站抓取并转为 Markdown
- 02使用 JSON Schema 提取类型化数据
- 03生成品牌资料和设计规范
- 04发现实体并绘制竞品图谱
- 05生成带引用的来源包和变更摘要
- 06批量补全潜在客户资料
适用场景
- 01根据企业网站建立结构化资料
- 02在多个样本页面中统一提取字段
- 03查看品牌视觉体系与素材
- 04比较竞品或追踪网站变化
MCP 相关
README 提到 MCP 二进制不会继承 CLI 参数,并要求通过 MCP 主机配置传递路径迁移设置。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-context-dev安装后在 Claude Code 中输入/pp-context-dev确认已加载。
详细介绍
Context Dev — Printing Press CLI
前提条件:安装 CLI
此技能使用 context-dev-pp-cli 二进制文件。**调用此技能中的任何命令之前,必须确认已安装该 CLI。**如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。默认情况下,二进制文件安装在 macOS/Linux 上的
$HOME/.local/bin,以及 Windows 上的%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install context-dev --cli-only - 验证:
context-dev-pp-cli --version - 确保显示的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接通过 Go 安装的方式(需要 Go 1.26.6 或更高版本)。此方式会将程序安装到 $GOPATH/bin(默认为 $HOME/go/bin),因此请将该目录添加到 $PATH:
go install github.com/mvanhorn/printing-press-library/library/ai/context-dev/cmd/context-dev-pp-cli@latest
如果安装后 --version 报告“command not found”,则运行时无法在 $PATH 中找到二进制文件所在目录。验证成功之前,请勿继续执行技能命令。
面向 Agent 的 Context.dev CLI,可用于网站情报、品牌丰富、抓取、爬取、结构化提取、截图、风格指南、竞争对手地图、来源包和变更摘要。
命令参考
一流工作流——常见 Context.dev 操作任务优先使用这些工作流。
context-dev-pp-cli scrape <url> --agent— 抓取单个 URL 并转换为整洁的 Markdown。context-dev-pp-cli crawl <seed> --max-pages 5 --agent— 抓取同一域名下的页面。使用--estimate;超过 25 个页面时,需要使用--confirm或--yes。context-dev-pp-cli extract <url> --schema schema.json --agent— 使用 JSON Schema 文件提取类型化 JSON。context-dev-pp-cli styleguide <domain|url> --agent— 提取设计系统数据。context-dev-pp-cli screenshot <domain|url> --agent— 捕获截图预览。context-dev-pp-cli entity-discover --type company --name "<name>" --location "<place>" --agent— 按字段发现公开实体,包括搜索、品牌/抓取信息补充、排名和来源溯证。有效类型:company、venue、provider、school、agency、other。context-dev-pp-cli brand-brief <domain|url> --agent— 规范化品牌资料,包含域名、网站、标题、描述、徽标、颜色、字体、社交媒体、联系入口、截图、摘要和来源溯证。context-dev-pp-cli competitor-map --domain <domain|url> --max 5 --agent— 按类别/市场聚类的竞品集合,包含why_ranked、重合度信号和来源溯证。没有种子域名时使用--query。context-dev-pp-cli crawl-budget-plan <seed> --max-pages 25 --agent— 估算urlRegex、最大页面数、积分、风险及建议的抓取命令,不消耗抓取积分。context-dev-pp-cli source-pack --query "<query>" --max-sources 5 --agent— 搜索并抓取带引文的来源包。添加--schema schema.json,可针对每个来源执行提取。搜索失败时返回非零状态;无结果时返回status: "no_results"。context-dev-pp-cli website-change-digest <domain|url> --agent— 在 CLI 状态目录中保存抓取、样式指南和截图快照,并与之前的本地快照进行差异比较。context-dev-pp-cli schema-lab --url <url> --url <url> --schema schema.json --agent— 在多个样本上运行提取 Schema,并报告字段填充率、解析失败、遗漏、原始状态和来源溯证。context-dev-pp-cli brand-kit <domain|url> --agent— 按需生成品牌套件(别名:asset-pack):徽标、配色、字体、样式指南、截图、网站图标、社交媒体和来源溯证。context-dev-pp-cli brand-qa <domain|url> --question "What is the return policy?" --agent— 以自然语言询问品牌网站,并获取有依据的回答,以及已分析的 URL 和来源溯证。context-dev-pp-cli email-enrich [email protected] --agent— 将工作邮箱转换为公司资料和注册表单预填字段(公司名称、网站、行业),并提供来源溯证。context-dev-pp-cli ticker-enrich AAPL --agent— 根据股票代码或 ISIN 解析上市公司,获取品牌资料及 NAICS/SIC 行业代码。自动识别股票代码或 ISIN;传入--exchange可消除股票代码的歧义。context-dev-pp-cli trust-check <domain|url> --agent— 生成网站、社交媒体、地址、电话、徽标、标题/域名及网络信号的一致性/风险信号报告。不要将输出描述为欺诈判定。context-dev-pp-cli lead-enrich-batch leads.csv --domain-column domain --name-column name --location-column location --output enriched.json --resume --agent— 批量补充 CSV 行的信息,提供逐行成功/错误状态、来源溯证和失败原因。只有在单行错误应导致整个批次失败时,才使用--strict。
对于第二阶段工作流,优先使用 --agent 获取机器稳定的 JSON。支持多积分的命令支持 --estimate;所有工作流都支持 --dry-run。估算和试运行响应包含 estimated_credits 和 planned_requests,且不会消耗积分。website-change-digest 会将快照保存在解析后的 CLI 状态目录中,而不会保存在代码仓库中。entity-discover 会拒绝自由格式文本块以及敏感/可识别个人身份的上下文;只传入公开字段值。
brand — 管理品牌
context-dev-pp-cli brand create— 表示你可能很快会获取特定域名的品牌数据,以降低延迟。context-dev-pp-cli brand create-ai— 根据单个 URL 判断它是否为产品页面,并提取产品信息。context-dev-pp-cli brand create-ai-2— 从品牌网站提取产品信息。context-dev-pp-cli brand create-ai-3— 使用 AI 从品牌网站提取特定数据点。context-dev-pp-cli brand create-prefetchbyemail— 表示你可能很快会获取特定域名的品牌数据,以降低延迟。context-dev-pp-cli brand list— 从任意域名获取徽标、背景图、颜色、行业、描述等信息context-dev-pp-cli brand list-retrievebyemail— 使用电子邮件地址获取品牌信息,同时检测一次性和免费电子邮件地址。context-dev-pp-cli brand list-retrievebyisin— 使用 ISIN(国际证券识别码)获取品牌信息。context-dev-pp-cli brand list-retrievebyname— 使用公司名称获取品牌信息。context-dev-pp-cli brand list-retrievesimplified— 返回简化版品牌数据,仅包含域名、标题、颜色和徽标等基本信息context-dev-pp-cli brand list-retrieveticker— 使用股票代码获取品牌信息。context-dev-pp-cli brand list-transactionidentifier— 专为希望通过交易标题识别交易数据的平台设计的端点。
people — 管理人员
context-dev-pp-cli people— 根据标识符获取并规范化人员资料。
web — 管理 Web
context-dev-pp-cli web create— 从给定 URL 开始抓取网页,并将页面内容提取为 Markdowncontext-dev-pp-cli web create-extract— 抓取网站,使用提供的 JSON Schema 和说明优先选择相关的站内链接context-dev-pp-cli web create-search— 搜索 Web,并可选择在一次往返中将每条结果抓取为 Markdown。context-dev-pp-cli web list— 分析公司的落地页和 Web 搜索证据,返回同一产品或市场的直接竞争对手。context-dev-pp-cli web list-fonts— 抓取网站上的字体信息,包括字体系列、使用统计、回退字体以及元素/字数。context-dev-pp-cli web list-naics— 根据域名或名称,将任意品牌归类到 2022 年 NAICS 行业代码。context-dev-pp-cli web list-scrape— 抓取给定 URL,并返回页面的原始 HTML 内容。context-dev-pp-cli web list-scrape-2— 从网页提取图像资源,包括标准 URL、内联 SVG、数据 URI 和响应式图像源context-dev-pp-cli web list-scrape-3— 将给定 URL 抓取为大模型可用的 Markdown。context-dev-pp-cli web list-scrape-4— 抓取整个网站的站点地图,并返回所有发现的页面 URL。context-dev-pp-cli web list-screenshot— 截取网站屏幕截图。context-dev-pp-cli web list-sic— 根据域名或名称,将任意品牌归类到标准行业分类(SIC)代码。context-dev-pp-cli web list-styleguide— 从网站提取全面的设计系统,包括颜色、排版、间距、阴影和 UI 组件。
查找合适的命令
如果你知道要做什么,但不知道该用哪个命令,可以直接向 CLI 提问:
context-dev-pp-cli which "<capability in your own words>"
which 会根据此 CLI 精选的功能索引,将自然语言能力查询匹配到最合适的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有足够可靠的匹配项,此时请使用 --help 或尝试更具体的查询。
身份验证设置
运行 context-dev-pp-cli auth setup,获取用于获取令牌的网址和步骤(添加 --launch 可打开该网址)。然后存储令牌:
context-dev-pp-cli auth set-token YOUR_TOKEN_HERE
也可以将 CONTEXT_DEV_API_KEY 设置为环境变量。若未设置 CONTEXT_DEV_API_KEY,则会将 CONTEXT_API_KEY 用作备用项;为保持兼容性,仍支持旧版生成的 CONTEXT_DEV_BEARER_AUTH 变量。
运行 context-dev-pp-cli doctor 验证设置。
Agent 模式
为任意命令添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可用于管道 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select可保留部分字段。点分隔路径可深入嵌套结构;数组会逐元素遍历。在响应冗长的 API 中,这对控制上下文大小至关重要:context-dev-pp-cli brand list --domain example-value --agent --select id,name,status -
可预览 —
--dry-run显示请求,但不会发送 -
便于离线使用 — 在本地 SQLite 存储可用时,同步/搜索命令可使用该存储
-
非交互式 — 从不提示输入;所有输入都通过标志指定
-
显式重试 — 仅当已存在的创建结果也应视为成功时,才使用
--idempotent
响应封装
从本地存储或 API 读取的命令,会将输出封装在一个来源信息封套中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时来源还是本地。当且仅当 stdout 是终端,且未设置机器可读格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会向 stderr 输出人类可读的 N results (live) 摘要;通过管道传输的/Agent 消费者以及显式指定格式的运行都会在 stdout 输出纯 JSON。
路径和状态
Agent 应将 CLI 的路径解析器视为运行时契约的一部分:
-
使用
--home <dir>为单次调用指定目录,或设置CONTEXT_DEV_HOME=<dir>,将所有四种路径类型迁移到同一根目录下。 -
仅在某种路径类型需要单独设置时,才使用对应类型的环境变量:
CONTEXT_DEV_CONFIG_DIR、CONTEXT_DEV_DATA_DIR、CONTEXT_DEV_STATE_DIR、CONTEXT_DEV_CACHE_DIR。 -
解析顺序依次为:对应类型的环境变量、
--home、CONTEXT_DEV_HOME、XDG(XDG_CONFIG_HOME、XDG_DATA_HOME、XDG_STATE_HOME、XDG_CACHE_HOME),然后是平台默认值。 -
config存放config.toml和配置档案等设置。data存放credentials.toml、data.db、Cookie 和身份验证附属文件。state存放持久化查询、作业和teach.log。cache存放可重新生成的 HTTP/缓存文件。 -
存储的机密信息位于 data 目录下的
credentials.toml中。为保持兼容性,仍会读取现有旧版config.toml中的机密信息,并在首次写入身份验证信息时将其移出config.toml。 -
运行
context-dev-pp-cli doctor --fail-on warn,以显示路径和凭据位置警告。对于需要已解析目录的 Agent,agent-context会提供 schema v4 的paths块。 -
对于 MCP,请通过 MCP 主机配置传递路径重定位设置。MCP 二进制文件不会继承 CLI 标志:
{ "mcpServers": { "context-dev": { "command": "context-dev-pp-mcp", "env": { "CONTEXT_DEV_HOME": "/srv/context-dev" } } } }
集群优先级:继承的对应类型环境变量会覆盖该类型显式指定的 --home。将 CONTEXT_DEV_HOME 或对应类型的变量用作持久的集群控制选项;--home 仅用于单次调用。取消设置环境变量无法撤销路径重定位;清除 CONTEXT_DEV_HOME 前,请手动移动文件,否则 doctor 将找不到原根目录下的凭据。
Agent 反馈
当你(或 Agent)发现此 CLI 有不妥之处时,请记录下来:
context-dev-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
context-dev-pp-cli feedback --stdin < notes.txt
context-dev-pp-cli feedback list --json --limit 10
条目会以 feedback.jsonl 的形式存储在解析后的 data 目录下。除非设置了 CONTEXT_DEV_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 CONTEXT_DEV_FEEDBACK_AUTO_SEND=true,否则不会执行 POST。默认行为仅在本地保存。
记录让你感到_意外_的地方,而不是提交错误报告。简短、具体、写成一行:这种反馈会不断积累价值。
输出交付
每条命令都接受 --deliver <sink>。除了(或替代)stdout,输出还会发送到指定的 sink,因此 Agent 无需手动通过管道传递,就能路由命令结果。支持三种 sink:
| Sink | 效果 |
|---|---|
stdout | 默认;仅写入 stdout |
file:<path> | 将输出以原子方式写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到该 URL(使用 --compact 时为 application/json 或 application/x-ndjson) |
对于未知的 scheme,系统会拒绝请求并返回结构化错误,列出受支持的 scheme。Webhook 失败时会返回非零状态码,并在 stderr 中记录 URL 和 HTTP 状态码。
命名配置
配置是保存的一组标志值,可在多次调用中重复使用。如果计划任务中的 Agent 每次运行都以相同配置调用同一命令,就可以使用配置——这就是 HeyGen 的“Beacon”模式。
context-dev-pp-cli profile save briefing --json
context-dev-pp-cli --profile briefing brand list --domain example-value
context-dev-pp-cli profile list --json
context-dev-pp-cli profile show briefing
context-dev-pp-cli profile delete briefing --yes
显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,以便能够进行自省的 Agent 在运行时发现它们。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 4 | 需要身份验证 |
| 5 | API 错误(上游问题) |
| 7 | 速率受限(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示context-dev-pp-cli --help的输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 请参阅上文的先决条件 - 其他任何内容 → 直接使用(作为 CLI 命令执行并附带
--agent)
安装 MCP 服务
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/ai/context-dev/cmd/context-dev-pp-mcp@latest - 向 Claude Code 注册:
claude mcp add context-dev-pp-mcp -- context-dev-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which context-dev-pp-cli如果未找到,请提供安装选项(请参阅本技能顶部的先决条件)。 - 根据用户查询,从上文的独特功能和命令参考中匹配最合适的命令。
- 使用
--agent标志执行:context-dev-pp-cli <command> [subcommand] [args] --agent - 如果存在歧义,请查看子命令帮助:
context-dev-pp-cli <command> --help。