Community写作与编辑github.com

feastalytics/cli

Feastalytics CLI + 智能体技能——从终端驱动营销活动、自动化、优惠、漏斗和会员计划奖励。适用于 Claude Code、Codex、Cursor。

cli 是什么?

Feastalytics CLI 是一款面向 AI 智能体(如 Claude Code、Codex、Cursor)的终端技能,允许开发者通过命令行直接调用 Feastalytics 平台的生产 API。该技能的核心价值在于提供了一套与平台内部 AI 智能体一致的、可动态发现的工具集(包括营销活动、自动化、优惠、漏斗和会员计划管理)。用户通过 `feast login` 完成一次身份认证后,即可使用 `feast tools`、`feast describe` 和 `feast call` 构成的核心交互流程:先发现可用工具及其 JSON 输入模式,再执行具体操作。该 CLI 强制要求对多组织用户显式指定 `--org` 参数,避免因操作错误组织而产生严重后果。尤为重要的是,CLI 执行写操作(创建、更新、删除)时无二次确认,因此智能体必须通过读取相关工作流文档(如 `references/workflows/campaigns.md`)来确保调用顺序和参数正确,并优先进行读操作以获取准确的实体 ID。技能还提供了链接辅助机制,通过 `references/links.md` 可生成准确的仪表盘和用户面 URL,用于在操作后快速跳转到相关页面。

兼容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add feastalytics/cli

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Feast CLI

从终端驱动 Feastalytics 平台。feast CLI 暴露了与平台内 AI 智能体相同的工具面(营销活动、自动化、优惠、漏斗、会员计划),作为已登录用户以普通命令形式调用生产 API。

CLI 是哪些工具存在以及它们接受什么的唯一事实来源——请始终在运行时发现它们,而不是假设,因为工具集会随着新端点被标记而增长。你的任务是选择合适的工具,将其作用于正确的组织,并传递有效的输入。

前提条件

必须安装 feast CLI 并将其加入 PATH:

npm install -g @feastalytics/cli    # 或临时运行:npx @feastalytics/cli <command>

一次性认证——令牌缓存在 ~/.config/feast-cli/credentials.json 中并自动刷新:

feast login                        # 打开浏览器进行默认授权
feast login --password [username]  # 无头/CI:用户名+密码提示,无需浏览器

如果某命令报告你未登录或会话已过期,请重新运行 feast login。

保持更新

CLI 和本技能都不会自动更新。当命令在 stderr 上打印更新通知时:

Update available: feast 0.1.1 → 0.2.0

同时更新两者,然后一行告知用户你已完成:

npm install -g @feastalytics/cli@latest      # 仅当 `feast` 已通过全局安装位于 PATH 中时执行
npx skills add feastalytics/cli -g -a '*' -y # 从仓库刷新本技能

如果你一直通过 npx 而非全局安装来调用 CLI,请跳过 npm install -g,在会话剩余部分改用 npx @feastalytics/cli@latest <command>——否则 npx 会重复使用缓存的副本。

每当你更新 CLI 时,同时更新本技能:两者从同一个仓库通过不同触发器发布,因此新 CLI 版本通常也意味着本技能的指导已更改。如果全局安装因权限失败,不要用 sudo 重试——告知用户并回退到 npx @feastalytics/cli@latest。

核心循环:发现 → 描述 → 调用

不要猜测工具名称或输入结构。检查正在运行的 CLI:

feast tools                 # 列出每个可用工具、其所属领域以及是否进行修改
feast describe <tool>       # 一个工具的完整描述 + 输入 JSON 模式
feast call <tool> --org <organizationId> --input '<json>'

在调用不熟悉的工具前始终先执行 describe——模式会告诉你确切必填字段,并且 CLI 会在发送任何内容之前根据该模式在本地验证你的 --input,因此错误负载会快速失败并给出清晰消息,而不是令人困惑的服务器错误。

组织:绝不让 API 猜测

大多数工具作用于一个组织。用户通常属于多个组织,因此明确目标组织至关重要。

feast whoami                # 显示已登录用户以及他们可以操作的每个组织(含名称)

使用 --org <organizationId> 传递目标组织:

  • 如果用户命名了一个组织,使用 feast whoami 将其解析为 ID 并传递该 ID。
  • 如果用户仅属于一个组织,CLI 会自动使用它——无需标志。
  • 如果他们属于多个组织而你省略了 --org,CLI 会拒绝并列出所有组织,而不是默默选择一个。这是有意为之:对错误组织进行操作比停下来询问更糟糕。发生这种情况时,向用户展示列表并确认他们指哪个。

读取与写入

查询工具(列出、描述、读取)是安全且只读的。变异工具(创建、更新、克隆、删除、应用)会更改生产数据。

  • 变异操作要求显式指定 --org。
  • 在运行之前,CLI 在服务端解析组织并打印其名称,因此错误的 --org 会显示为错误的餐厅名称而非不透明的 ID。请读取该行。
  • **没有确认提示。**变异操作会在调用时立即执行。不会二次询问,也无法撤销。

最后一点对于那些影响现实世界而不仅仅是数据库的工具尤其重要。购买电话号码会从账户扣费。批准创作者访问或决定提交会立即向该人发送短信且无法撤回。发布营销活动会使其上线,定价循环促销会创建真实的 Stripe 产品。保存自动化编辑会更改客人接收的内容。请将这些视为不可逆,并在调用之前明确用户的意图,因为调用之后就没有任何关卡了。

优先读取再写入:例如,先使用 listCampaigns 找到正确的 campaignId 再执行 updateCampaign,或在创建流程之前先执行 describe/listAutomationFlows。

构建良好输入

--input 接受 JSON 字符串(对于较大负载可使用 --input-file <path>)。根据通过 describe 获得的模式构建它。当工具通过 ID 引用另一个实体(活动 ID、位置 ID、流程 ID)时,请先使用相关的列表/读取工具查找该 ID,而不是自行编造。

对于字段的领域特定含义——自动化如何链式连接、漏斗屏幕包含什么、优惠如何结构化——当模式本身不足时,请查阅 references/domains.md 中的指导。

工作流

许多任务需要多步骤执行,并且具有应用通常强制要求的顺序。最重要的规则:自动化存在于流程内部——始终先找到流程(listAutomationFlows)或创建一个(createAutomationFlow),然后再添加自动化;切勿创建孤立的自动化。 同样的“先解析父级/ID,再行动”模式也贯穿于营销活动、漏斗和优惠中。

**在对任何多步骤任务采取行动之前,请阅读其对应的工作流文件。**每个文件都包含必需的调用顺序和领域规则,这些规则使结果不仅有效而且良好——两者都不在工具模式中。请先阅读它;不要从工具描述中重构顺序。

执行此操作阅读
创建、克隆或配置营销活动;策略积压中的优惠references/workflows/campaigns.md
任何涉及自动化的操作——创建、编辑、模拟、推广草稿references/workflows/automations.md
编辑漏斗屏幕、应用漏斗模板、暂存新屏幕references/workflows/funnels.md
编写 Meta 广告文案——面向客人或创作者招募references/workflows/facebook.md
创作者寻源——批准申请者、审核其内容、对话references/workflows/creators.md
会员计划奖励;读取或保存钱包通行证配置references/workflows/members-program.md
处理入职任务板;品牌身份references/workflows/onboarding.md
搜索客人/会员及其活动references/workflows/guests.md

当任务跨越多个文件时,请阅读多个文件——新营销活动通常意味着 campaigns.md 加上 automations.md 和 funnels.md。

某些操作是故意不暴露的:通过短信回复客人或创作者、向活跃会员触发自动化、奖励更新/删除、通行证图片生成,以及大多数创作者管道中除了两个批准决策之外的部分。工作流文件会说明哪些。不要为 feast tools 未列出的工作流捏造调用——告知用户该部分尚不可用。

链接你触及的内容

通过 CLI 完成的工作会出现在产品的某个位置,而链接是低成本但高价值的提供物——因此请随意提供。在创建、修改或发布了某些内容之后的操作轮次收尾时,请以一个简短的 Markdown 列表结束:在何处查看它、在何处编辑它、在何处预览它。不是要任何人必须去检查你的工作,而是因为打开该事物通常是下一步骤。当有人询问某个事物在何处或如何设置时,直接提供链接而非逐项点击的说明。

你不知道这些 URL——在编写任何 URL 之前请阅读 references/links.md。 仪表盘的结构与你从本技能其他地方的面向客人的链接中推断出的不同,因此一个看起来明显正确的 URL恰恰是需要检查的情况。错误的链接比没有链接更糟糕:它看起来权威但却返回 404。

该文件包含带有面板和选项卡名称的仪表盘路由、组织自己子域名下的面向客人的页面、完成漏斗草稿循环的预览路由,以及哪些查询参数实际上会抑制分析而不是仅仅将访问标记为预览。

工作示例

用户:“在我的 Plum Vietnamese 组织中的 Plum 位置添加一个满 5 减 5 的优惠。”

feast whoami                                    # 查找 Plum Vietnamese 的组织 ID
feast describe dfyCreateOffer                   # 了解优惠输入结构
feast call dfyGetMenuHierarchy --org <orgId> --input '{"locationId":"<id>"}'   # 查找位置/菜单 ID
feast call dfyCreateOffer --org <orgId> --input '{ ... }'                       # 创建优惠(先确认)

模式可以推广:识别组织、了解工具、解析任何引用的 ID,然后执行操作。

当某些操作失败时

  • “未登录/会话已过期” → feast login(在无头/CI 上下文中使用 feast login --password [username])。
  • “你属于多个组织” → 使用 feast whoami 获取 ID 并通过 --org 选择一个。
  • “输入与工具模式不匹配” → 重新阅读 feast describe <tool> 并修正命名字段。
  • 你期望的工具未被 feast tools 列出 → 可能尚不可用;不要捏造调用,告知用户。

相关技能