mcpField
P
pp-producthunt

pp-producthunt

github.com/mvanhorn营销与增长2.1k254 次安装今天更新
代码仓库

关于 pp-producthunt

pp-producthunt 是通过 Printing Press CLI 查看和分析 Product Hunt 发布内容的只读技能,适用于创始人与营销人员。它提供发布追踪、分类研究和本地优先查询。

主要功能

  1. 01发布轨迹与基准分析
  2. 02比较发布并筛选问题评论
  3. 03主题快照与发布日历
  4. 04搜索品牌提及及相似发布
  5. 05同步并查询本地 SQLite

适用场景

  1. 01对照分类领先项目追踪发布进展
  2. 02依据历史基准设定投票目标
  3. 03监测竞争对手与品牌提及
  4. 04寻找相似发布以辅助定位

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-producthunt

安装后在 Claude Code 中输入/pp-producthunt确认已加载。

详细介绍

Product Hunt — Printing Press CLI

前提条件:安装 CLI

此技能依赖 producthunt-pp-cli 二进制文件。**在调用此技能中的任何命令之前,必须确认 CLI 已安装。**如果尚未安装,请先安装:

  1. 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install producthunt --cli-only
    
  2. 验证:producthunt-pp-cli --version
  3. 确保报告的安装目录位于将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接通过 Go 安装的方式(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/marketing/producthunt/cmd/producthunt-pp-cli@latest

如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。在验证成功之前,请勿继续执行技能命令。

何时使用此 CLI

当 Agent 或脚本需要 Product Hunt 数据时,请选择此 CLI,例如每日发布排行榜、主题垂直领域探索、包含评论的单个发布详情,或 PH 自身 UI 从不展示的聚合趋势。借助本地 SQLite 存储和 GraphQL 回退机制,重复查询的成本很低;无需身份验证的动态信息流意味着用户甚至还没配置密钥时,此 CLI 就已派上用场。本周要发布产品的独立创始人可以使用发布日控制台(launch-day、benchmark、trajectory、questions、compare);进行竞品调研的营销人员可以使用营销调研工作台(category snapshot、posts grep、lookalike、launches calendar)。

何时不使用此 CLI

对于需要创建、更新、删除、发布、评论、点赞、邀请、订购、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。这个已发布的 CLI 只提供用于检查、导出、同步和分析的只读命令。

独特功能

这些功能在其他任何用于此 API 的工具中都不可用。

创始人发布日控制台
  • posts launch-day — 并排展示你的发布产品的投票随时间变化的趋势,以及今日排名前 5 的发布产品,帮你解答“我有没有追上领先者”。由同步驱动,从本地存储刷新。

    在发布日,当产品制作者询问“我的表现和领先者相比如何”时使用——并排趋势图可以替代十个浏览器标签页。

    producthunt posts launch-day my-launch-slug --json
    
  • posts benchmark — 根据积累的本地历史数据,报告某个主题中排名前 10 和前 50 的发布产品在第 N 小时时的百分位曲线。帮助创始人判断他们在第 6 小时获得的投票数对于其类别来说是否“不错”。

    在发布前使用它设定切合实际的目标,或在发布期间判断缓慢起步是该类别的正常情况,还是实际问题。

    producthunt posts benchmark --topic artificial-intelligence --hour 6 --json
    
  • posts trajectory — 根据本地快照绘制单个发布产品的投票随时间变化趋势。这是 launch-day-tracker 的基础功能,也适合在发布结束后单独进行回顾分析。

    回顾过去的发布或竞品时使用——趋势曲线能显示势头,而单一的日终投票数会掩盖这一点。

    producthunt posts trajectory my-launch-slug --json
    
  • posts questions — 仅筛选看起来是真正问题的评论(正则表达式 ? 加上“how does”“what's the”“can it”等启发式动词),并按投票数排序。将数百条发布日评论缩减为需要产品制作者回复的评论。

    在发布日当天或之后使用它,判断哪些评论值得认真回复,哪些只是喝彩或垃圾信息。

    producthunt posts questions my-launch-slug --json
    
  • posts compare — 以列对齐的方式比较两个或更多发布产品:投票数、评论数、主题、标语、URL、发布时间差。无需再来回切换浏览器标签页。

    当创始人要将自己的发布与过往案例进行对比,或营销人员要在相似的竞品发布之间进行综合判断时,使用此功能。

    producthunt posts compare cursor-ide windsurf-ide claude-code --json
    
营销人员研究台
  • category snapshot — 按时间范围生成适合放入幻灯片的主题简报:排行榜 + 与上一时间范围相比的热度变化 + 最活跃的发布者账号 + 新兴标语标签。

    每周进行类别研究时使用此工具——这份单项输出的简报可以替代手动打开 30 个发布页面。

    producthunt category snapshot --topic artificial-intelligence --window weekly --agent --select leaderboard,momentum_delta
    
  • posts grep — 在指定时间范围内搜索发布内容的标语和描述,查找某个词语——可以是你的品牌、竞争对手的品牌或类别关键词。返回匹配的发布内容及匹配片段。

    可将其用作定期品牌提及监控工具,或查找推介中提及你的类别的竞争产品发布内容。

    producthunt posts grep --term "\\bclaude\\b" --since 7d --topic developer-tools --json
    
  • posts lookalike — 给定发布内容的 slug,根据主题重合度和标语 FTS 排名,找出最相似的过往发布内容。自动构建竞品集。

    可用此工具快速构建竞品集,或在规划自己的定位时查找先例。

    producthunt posts lookalike notion --json --select edges.node.name,edges.node.tagline
    
  • launches calendar — 显示一周内每天发布的产品(并列出前几周以供参考),以及按小时划分的分布情况,帮助创始人选择合适的发布时段。

    安排发布前使用此工具,在你的主题中找出竞争较少的日期或时段。

    producthunt launches calendar --topic artificial-intelligence --week 18 --json
    
跨用户画像监控
  • topics watch — 检测自上次同步以来,主题中投票数达到阈值的新帖子。通过离线方式实现订阅功能,而该 API 本身并不提供此功能。

    可将此工具设为 cron 任务,以便在某个垂直领域出现值得关注的新产品发布时收到提醒,同时避免频繁调用 GraphQL 端点。

    producthunt topics watch artificial-intelligence --min-votes 200 --json
    
面向 Agent 的基础设施
  • posts since — 以本地数据优先查询指定时间范围:posts since 2h、posts since 24h。如果时间范围超出上次同步时间,则回退到实时 GraphQL 查询。

    在 Agent 工作流中回答“Product Hunt 上有什么新内容”时,可使用此工具——本地优先的行为有助于降低 token 成本,而回退机制则能确保数据始终新鲜。

    producthunt posts since 6h --json --select edges.node.name,edges.node.votesCount
    
  • context — 返回一个 JSON 数据块,包含指定时间范围内的热门帖子、热门评论、主题关注者和你的查看者状态。一次调用即可让 Agent 了解“当前该主题的状态”。

    在 Product Hunt 的 Agent 工作流中,可将其作为首次调用——一份快照即可替代“列出帖子,再列出评论,然后检查查看者”。

    producthunt context --topic artificial-intelligence --since 24h --json
    

命令参考

feed — Product Hunt 精选发布内容的公开 Atom Feed(无需身份验证)

  • producthunt-pp-cli feed — 获取近期精选发布内容的公开 Atom Feed;无需 token

手写命令

  • producthunt-pp-cli posts — 通过 GraphQL 获取、列出和分析 Product Hunt 发布项目
  • producthunt-pp-cli posts get <id-or-slug> — 获取单个发布项目的完整详情(投票数、评论、主题、创作者、媒体)
  • producthunt-pp-cli posts list — 按主题、排序方式、精选标记或发布时间范围筛选并列出发布项目
  • producthunt-pp-cli posts comments <id-or-slug> — 列出发布项目的评论(Product Hunt 会隐藏评论者身份)
  • producthunt-pp-cli posts trajectory <slug> — 根据本地快照绘制发布项目的投票数变化曲线
  • producthunt-pp-cli posts launch-day <my-slug> — 并排呈现你自己的发布项目与今日排名前 5 的发布项目的变化曲线
  • producthunt-pp-cli posts benchmark — 显示某个主题下排名前 10 / 前 50 的发布项目在第 N 小时的投票数百分位曲线
  • producthunt-pp-cli posts compare <slug1> <slug2> [<slug3>...] — 按列对齐比较 N 个发布项目:投票数、评论、主题、标语、URL
  • producthunt-pp-cli posts questions <slug> — 筛选发布项目的评论,仅保留看起来是真正提问的评论
  • producthunt-pp-cli posts grep — 按关键词搜索已同步发布项目的标语和描述(品牌提及追踪器)
  • producthunt-pp-cli posts lookalike <slug> — 查找同一主题下标语词元相似的过往发布项目(竞品集合)
  • producthunt-pp-cli posts since <duration> — 优先使用本地数据的时间范围查询(例如,posts since 6h);无结果时回退到实时 API
  • producthunt-pp-cli comments — 按 ID 获取单条评论
  • producthunt-pp-cli comments get <id> — 按 ID 获取单条评论
  • producthunt-pp-cli collections — 获取并列出 Product Hunt 精选合集
  • producthunt-pp-cli collections get <id-or-slug> — 获取单个合集及其发布项目列表
  • producthunt-pp-cli collections list — 列出合集,可按精选标记或其中包含的发布项目 / 用户筛选
  • producthunt-pp-cli topics — 获取、列出和搜索 Product Hunt 主题(类别)
  • producthunt-pp-cli topics get <id-or-slug> — 获取单个主题(关注者数量、发布项目数量)
  • producthunt-pp-cli topics list — 列出主题,可按最新或热度排序
  • producthunt-pp-cli topics search <query> — 按名称或描述搜索主题
  • producthunt-pp-cli topics watch <slug> — 检测自上次同步以来主题中投票数达到阈值的新发布项目
  • producthunt-pp-cli users — 获取用户资料以及用户的发布 / 投票历史(Product Hunt 会隐藏非本人用户的信息)
  • producthunt-pp-cli users get <id-or-username> — 获取用户资料(只有 whoami / 本人能返回完整数据;非本人用户会返回 [REDACTED])
  • producthunt-pp-cli users posts <username> — 列出用户发布的项目(发布项目数据不会被隐藏;用户身份本身可能会被隐藏)
  • producthunt-pp-cli users voted-posts <username> — 列出用户投过票的项目(隐藏信息的注意事项与 users posts 相同)
  • producthunt-pp-cli whoami — 显示已认证用户(完整数据;报告剩余复杂度预算和认证模式)
  • producthunt-pp-cli category — 营销研究工作台:类别级快照和趋势
  • producthunt-pp-cli category snapshot — 生成适用于幻灯片的主题时间范围简报:排行榜、势头变化、活跃账号、新兴标签
  • producthunt-pp-cli launches — 用于选择发布时段的日历和时间分析
  • producthunt-pp-cli launches calendar — 显示一周内每天发布的项目及按小时分布情况
  • producthunt-pp-cli context — 单次调用获取 Agent 快照:以一个 JSON 对象返回热门发布项目、热门评论、主题状态和查看者信息
  • producthunt-pp-cli today — 今日热门发布项目(posts list --order=RANKING --posted-after=midnight 的别名)
  • producthunt-pp-cli recent — 最新发布项目(posts list --order=NEWEST 的别名)
  • producthunt-pp-cli search <query> — 对本地同步的发布项目进行全文搜索
  • producthunt-pp-cli sync — 同步本地存储:发布项目、主题、合集、评论(基于游标,可恢复)
  • producthunt-pp-cli sql <query> — 对本地 SQLite 存储执行只读 SQL
  • producthunt-pp-cli auth — 管理 Product Hunt 身份验证(默认使用开发者令牌,也可使用 OAuth client_credentials)
  • producthunt-pp-cli auth onboard — 交互式向导:引导你创建免费的 OAuth 应用,并预填 https://localhost/callback 作为...
  • producthunt-pp-cli auth set-token <token> — 显式设置开发者令牌,无需使用引导向导
  • producthunt-pp-cli auth status — 报告当前启用的认证模式及其可访问的数据
  • producthunt-pp-cli doctor — 根据认证阶段提供诊断:告知你是需要完成引导、重新生成令牌,还是等待预算重置
查找合适的命令

知道想做什么,但不知道该用哪个命令时,可以直接询问 CLI:

producthunt-pp-cli which "<capability in your own words>"

which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找到最匹配的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有足够可靠的匹配项,此时请改用 --help 或缩小查询范围。

使用示例

自己的发布日驾驶舱
producthunt posts launch-day my-launch-slug --json

将你的发布投票走势与今日排名前 5 的项目并排呈现,无需刷新网站即可回答“我是否正在追赶领先者”

筛选发布评论中的真实问题
producthunt posts questions my-launch-slug --json

将同步的评论筛选为看起来是真实问题的内容(使用正则表达式 \\? 加上疑问动词),并按投票数排序——无需再滚动浏览 200 条评论,寻找值得回复的 5 条

使用 --agent --select 精简深层嵌套的响应
producthunt posts list --topic artificial-intelligence --posted-after 2026-04-01 --agent --select edges.node.name,edges.node.votesCount,edges.node.user.username

Posts 列表的响应存在深层嵌套(edges -> node -> user);搭配 --agent 和点分隔的 --select 路径,只保留 Agent 所需的列,大幅降低令牌消耗

面向营销的每周分类简报
producthunt category snapshot --topic developer-tools --window weekly --json

单一输出的简报:本周排行榜、与上周相比的势头变化、最活跃的发布者账号,以及新兴标签语——可直接用于幻灯片

品牌提及监控
producthunt posts grep --term "\\bclaude\\b|\\banthropic\\b" --since 7d --json

查找指定时间段内标语或描述中包含 claude 或 anthropic 的所有发布——安排每晚运行,以捕捉竞争动态

身份验证设置

Product Hunt 的 GraphQL API 支持两种身份验证模式;CLI 可处理这两种模式。个人使用建议采用以下方式:访问 https://www.producthunt.com/v2/oauth/applications,创建应用(表单要求填写重定向 URL,但个人令牌流程不会用到它——请设为 https://localhost/callback),然后滚动到应用页面底部,点击 Create Token 生成永不过期的开发者令牌。设置 PRODUCT_HUNT_TOKEN=<your-token>,或运行 producthunt auth onboard 进行交互式设置。对于 CI/自动化,另一种模式是 OAuth client_credentials:从同一应用页面获取 PRODUCT_HUNT_CLIENT_ID 和 PRODUCT_HUNT_CLIENT_SECRET 并进行设置;CLI 会在内部用它们换取访问令牌,并在收到 401 时刷新令牌(注意:在 OAuth client_credentials 模式下,whoami 命令会返回 null,因为 public scope 没有用户上下文)。公开的 Atom 源(producthunt feed)完全不需要令牌。

运行 producthunt-pp-cli doctor 验证设置。

Agent 模式

为任意命令添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 可通过管道传输 — JSON 输出到 stdout,错误输出到 stderr

  • 可筛选 — --select 可保留部分字段。点分隔路径可深入嵌套结构;数组会逐元素遍历。对于冗长的 API,这对缩小上下文至关重要:

    producthunt-pp-cli feed --agent --select id,name,status
    
  • 可预览 — --dry-run 会显示请求,但不会发送

  • 支持离线使用 — 有本地 SQLite 存储时,同步/搜索命令可以使用该存储

  • 非交互式 — 从不显示提示,所有输入都通过标志指定

  • 只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会修改数据的请求

响应封装

从本地存储或 API 读取数据的命令,会将输出封装在一个溯源信息中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

从 .results 中解析数据,并查看 .meta.source 以确定数据来自实时数据还是本地数据。只有在 stdout 连接到终端时,才会将便于阅读的 N results (live) 摘要打印到 stderr;通过管道传输的使用方或 Agent 使用方在 stdout 上只会收到纯 JSON。

Agent 反馈

当你(或 Agent)发现这个 CLI 有什么不对劲时,请记录下来:

producthunt-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
producthunt-pp-cli feedback --stdin < notes.txt
producthunt-pp-cli feedback list --json --limit 10

条目会存储在本地的 ~/.producthunt-pp-cli/feedback.jsonl。除非设置了 PRODUCTHUNT_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 PRODUCTHUNT_FEEDBACK_AUTO_SEND=true,否则绝不会发送 POST 请求。默认情况下仅保存在本地。

记录让你感到意外的地方,而不是提交错误报告。简短、具体,写成一行:这才是能不断累积价值的内容。

输出传递

每条命令都接受 --deliver <sink>。除了(或代替)标准输出,输出还会发送到指定的目标,因此 Agent 无需手动管道传输即可路由命令结果。支持三种目标:

目标效果
stdout默认;仅写入标准输出
file:<path>将输出原子性地写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到 URL(使用 --compact 时为 application/json 或 application/x-ndjson)

不支持的方案会被拒绝,并返回一条结构化错误,列出支持的方案。Webhook 请求失败时会返回非零状态,并在标准错误中记录 URL 和 HTTP 状态码。

命名配置

配置是保存的一组标志值,可在多次调用中重复使用。当计划任务中的 Agent 每次运行都以相同配置调用同一命令时,可以使用它——这是 HeyGen 的 “Beacon” 模式。

producthunt-pp-cli profile save briefing --json
producthunt-pp-cli --profile briefing feed
producthunt-pp-cli profile list --json
producthunt-pp-cli profile show briefing
producthunt-pp-cli profile delete briefing --yes

显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,方便进行自省的 Agent 在运行时发现它们。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
4需要身份验证
5API 错误(上游问题)
7请求过于频繁(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 producthunt-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他任何内容 → 直接使用(作为带 --agent 的 CLI 命令执行)

MCP 服务安装

  1. 安装 MCP 服务:
    go install github.com/mvanhorn/printing-press-library/library/marketing/producthunt/cmd/producthunt-pp-mcp@latest
    
  2. 在 Claude Code 中注册:
    claude mcp add producthunt-pp-mcp -- producthunt-pp-mcp
    
  3. 验证:claude mcp list

直接使用

  1. 检查是否已安装:which producthunt-pp-cli 如果未找到,请提供安装选项(参见本技能顶部的先决条件)。
  2. 根据“独特功能”和“命令参考”,将用户查询与最合适的命令匹配。
  3. 使用 --agent 标志执行:
    producthunt-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果有歧义,请查看子命令帮助:producthunt-pp-cli <command> --help。

评论

支持 Markdown