
ae-engage
AE Engage capability gateway: config center, flows, push/config channels, strategies, templates, task management, operation activities, and query lifecycle. Trigger words: config center, scene config, push channel, config channel, operation strategy, operation task, operation activity, query lifecycle, template, config item, Engage, Hermes, engage-scene, engage-setting, engage-flow, engage-task, engage-activity, engage-query.
- Installs
- 870
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/thinkingaiagenticengine/ae-cli --skill ae-engage- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads ae-engage automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
ae-engage
AE CLI (ae-cli) is the command-line tool for the Agentic Engine data analysis platform, used by AI Agents and human users.
Capability contract
- Responsibilities: engagement channels, configuration, strategies, task drafts/lifecycle, flows, activities and their reports/query lifecycle.
- Inputs: verified project/resource identifiers and operation-specific configuration. Reuse known audience/event/property definitions; discover missing prerequisites only when the chosen operation needs them.
- Outputs: configuration/task/resource identifiers, reports, or query/run status with the actual persisted state. Saving a draft does not submit approval or start delivery.
- Boundaries: general analysis, metadata discovery and standalone audience creation are separate capabilities; they are not mandatory preflight stages for every engagement request.
- Completion: the user's requested engagement action is verified, or pending/blocked work is reported. Draft creation, approval submission and sending are distinct actions with their own user-intent requirements.
Cross-skill collaboration
When remaining work is outside this skill's scope, or a necessary prerequisite needs another capability, follow the collaboration protocol. Choose from the skills available in this run by capability, preserve verified context, and continue the remaining task. Reuse this protocol if already loaded.
Global AE CLI Rules
AE CLI (ae-cli) is the command-line tool for the AE (Agentic Engine) analysis platform. For AE analysis-side requests, prefer ae-cli and this skill's reference docs over model memory.
Global parameters:
| Parameter | Description |
|---|---|
--format <json|table> | Output format. Default is JSON. |
--jq <expr> | jq filter expression for JSON output. |
--host <url> | Override the active AE host. Available on every command and may be placed after the subcommand, e.g. ae-cli engage-flow flow list --host <url>. |
Output and errors:
- Successful commands return machine-readable JSON by default. Envelope may include optional
_notice.host_compat. - Failed commands return
{ "ok": false, "error": { "type": "...", "message": "...", "hint": "..." } }and exit non-zero. - CRITICAL — Host compat (do this first): After each
ae-clirun, check stderr and_notice.host_compat. If either is present, open the user reply with a short ⚠️ version warning and quote thenpm i -g/npx skills add(or update-cluster) lines verbatim, then present the business result. Soft tip;ok: truecan still carry the notice.
Safety constraints:
- Read commands can execute directly after required IDs and references are verified.
- Write commands require explicit user intent. Ordinary
writecommands execute without CLI confirmation; onlyhigh-risk-writecommands use the confirmation gate. - Never invent command names, flags, JSON payloads,
project_id, resource IDs, field names, event names, property names, metric definitions, or date formats. Read the matching command reference and discover real project metadata first. - NEVER fabricate or guess resource names (reports, dashboards, events, properties, metrics, clusters, tags, alerts). Always use list commands to discover real resources first. If a resource is not found after fuzzy search and full list fallback, explicitly tell the user "resource not found" and stop - do not proceed with fabricated names.
Overview
The ae-engage package provides Hermes Engage capabilities across config items, flows, channel settings, task data, and query lifecycle. Use capability-gateway commands through ae-cli engage-flow|engage-task|engage-setting|engage-scene|engage-query <resource> <action>; low-frequency reports use the L3 references below.
Typical use cases include:
- Querying and managing channels, config channels, approvers, and whitelists
- Querying project channel touch-limit or fatigue-control rules
- Querying task lists, task details, experiment reports, and metric reports
- Querying config items and strategies, copying templates, and managing strategy status
- Querying flow lists, node schemas, and flow reports, and saving or managing flows
Keyword Routing
When the user mentions a product term below (including common Chinese UI labels), open the listed reference(s) first — do not guess commands or IDs.
| Keyword | Product meaning | CLI domain | Primary reference | Related references |
|---|---|---|---|---|
| Config center | Engage scene management / config center overview | engage-scene | references/scene-config-item.md | scene-config-param.md, scene-config-group.md, scene-preset-metric.md, scene-config-metric.md, scene-config-channel.md, channel-mgmt.md, scene-strategy.md, scene-template.md; L3 reports: config-item-trigger-report.md, config-item-analysis-report.md, config-item-strategy-comparison.md |
| Scene config | Same as config center; params, groups, metrics, channels, strategies, and templates under a config item | engage-scene | references/scene-config-item.md | Same as above; params/groups/metrics: scene-config-param.md, scene-config-group.md, scene-preset-metric.md, scene-config-metric.md |
| Config item | A single config item in the config center | engage-scene | references/scene-config-item.md | scene-config-param.md, scene-preset-metric.md, scene-config-metric.md, scene-strategy.md, scene-template.md |
| Push channel | Project-level message push channels (Webhook, FCM, APNS, etc.) | engage-setting | references/channel-list.md | channel-detail.md, add-channel.md (Webhook vs Client differ: url = HTTP vs scene key; custom params user: vs user:/client:), update-channel-status.md, delete-channel.md, channel-update-config.md, channel-test-send.md, channel_touch_limits_list.md |
| Config channel | Config-center Webhook/client config channels (not the same as push channels) | engage-scene | references/scene-config-channel.md | channel-mgmt.md (create/enable-disable/copy/delete workflows). User params in config.customsParamList require columnName with user: prefix (e.g. user:#account_id); reuse verified property names or discover a property lookup capability. |
| Operation strategy | Ops/delivery strategies under a config item | engage-scene | references/scene-strategy.md | Custom audience: scene-strategy-audience.md — semantic definitionRequest (Analysis condition shape); do not pass targetClusterQp/qp; preflight props (stop + list if missing); template: scene-template.md |
| Operation task | Hermes push/engagement tasks (list, save, lifecycle, reports) | engage-task | references/task-list.md | task-detail.md (get), save-task.md, build-task-save-guide.md, task-stats.md, task-delete.md, push-record-query.md, task-user-detail-export.md, task-indicator-user.md, task-data-overview.md, task-data-detail.md, task-metric-detail.md, task-metric-update.md, task-experiment-report.md |
| Operation activity | Campaign activity management and delivery trends by activity, topic, or standalone task | engage-activity | references/activity-activity.md | activity-data-detail.md, activity-topic.md, activity-task.md, activity-approval.md |
| Template | Strategy templates under a config item | engage-scene | references/scene-template.md | scene-config-param.md (template fields reference paramId); enable via template update then template update-status before strategy create |
Easy to confuse:
- Push channel →
ae-cli engage-setting channel …(Hermes push channel settings) - Config channel →
ae-cli engage-scene config-channel …(config-center channels; seechannel-mgmt.md) - Flow / Task canvas nodes use
channelIdfrom push channels; config items bindchannel_idfrom config channels
Parameter Conventions
- Use regular flags for simple parameters, for example
--project-id,--task-id, and--flow-uuid - Use JSON flags for array parameters, for example
--strategy-uuid-list '["id1","id2"]' - Use named JSON flags for object parameters, for example
--req '{...}'and--flow-list '[...]' - Optional global parameters work the same way as in other domains, for example
--host,--mcp-url, and--dry-run
Naming boundary:
- CLI flags use kebab-case; outer Capability input and all Capability response keys use snake_case.
- Nested business DTOs passed through
--reqor--payloadkeep their documented native camelCase fields. Do not mechanically convert those nested DTO keys to snake_case. - Semantic audience, event, trigger, completion, and metric definitions are closed contracts. The CLI rejects malformed or unknown semantic fields locally;
--validateapplies the same precise Hermes capability schema without writing. - Successful migrated commands return their business payload under
data; read the matching reference's Response shape before selecting fields.
JSON Parameter Format
Common JSON flag examples:
--provider-list '["webhook","fcm"]'
--strategy-uuid-list '["strategy_a","strategy_b"]'
--flow-id-list '["flow_1","flow_2"]'
--req '{"pageNum":1,"pageSize":20}'
Common Scenarios
1. setting
# Query the channel list
ae-cli engage-setting channel list --project-id 1
# Filter by provider
ae-cli engage-setting channel list --project-id 1 --provider-list '["webhook","fcm"]'
# Query config channels (config center channel management — use engage-scene, not legacy +config_channel_*)
ae-cli engage-scene config-channel list --project-id 1 --channel-type 0
# Query project channel touch-limit rules
ae-cli engage-setting channel-touch-limits list --project-id <project_id>
# Update a channel's config / reach-funnel settings
ae-cli engage-setting channel update-config --project-id <project_id> --channel-id <channel_id> --enable-touch-event 1
# Send a test message to a channel
ae-cli engage-setting channel test-send --project-id <project_id> --channel-id <channel_id> --push-id <send_id> --content-list '[{"key":"title","value":"hello"}]'
# Batch update / toggle / save channel touch-limit (fatigue-control) rules
ae-cli engage-setting channel-touch-limits batch-update --project-id <project_id> --items '[{"rule_id":"r1","enable":true,"rule_def":"[]"}]'
ae-cli engage-setting channel-touch-limits toggle --project-id <project_id> --rule-id <rule_id> --enable false
ae-cli engage-setting channel-touch-limits save --project-id <project_id> --channel-biz-type <biz_type> --rule-def '[]' --enable true
# Remove an approver from a project
ae-cli engage-setting approval-approver delete --project-id <project_id> --approver <open_id> --yes
# Whitelist add / update / delete / verify
ae-cli engage-setting whitelist add --project-id <project_id> --prop-code <prop_code> --column-name <column_name> --column-type string --whitelist-list '[{"entity_id":"u1","source_value":"v1"}]'
ae-cli engage-setting whitelist update --project-id <project_id> --whitelist-id <id> --note-name <name>
ae-cli engage-setting whitelist delete --project-id <project_id> --whitelist-ids '["wl-1"]' --yes
ae-cli engage-setting whitelist verify --project-id <project_id> --prop-code <prop_code> --column-type string --whitelist-prop-list '["v1"]'
# Push-language (localization) get / set
ae-cli engage-setting push-language get --project-id <project_id>
ae-cli engage-setting push-language set --project-id <project_id> --push-language-column <prop_code>
# Client param update / delete / list
ae-cli engage-setting client-param create --project-id <project_id> --column-name level --column-type varchar --column-desc Level
ae-cli engage-setting client-param update --project-id <project_id> --column-name level --column-desc Level
ae-cli engage-setting client-param delete --project-id <project_id> --column-name level --yes
ae-cli engage-setting client-param list --project-id <project_id>
# Config table upload / save / list / query-data / update-data / delete
ae-cli engage-setting config-table upload --project-id <project_id> --request-id <rid> --file-name data.csv --file-content "$(base64 -i data.csv)"
ae-cli engage-setting config-table save --project-id <project_id> --request-id <rid> --info-name <table_name>
ae-cli engage-setting config-table list --project-id <project_id>
ae-cli engage-setting config-table query-data --project-id <project_id> --info-id <info_id>
ae-cli engage-setting config-table update-data --project-id <project_id> --request-id <rid> --info-name <table_name> --info-id <info_id>
ae-cli engage-setting config-table delete --project-id <project_id> --info-id <info_id> --yes
# Preset event list / update
ae-cli engage-setting preset-event list --project-id <project_id>
ae-cli engage-setting preset-event update --project-id <project_id> --add-event-definition '<semantic_event_json>'
# Common metric list / get / create / update / delete
ae-cli engage-setting common-metric list --project-id <project_id>
ae-cli engage-setting common-metric get --project-id <project_id> --metric-name <name>
ae-cli engage-setting common-metric create --project-id <project_id> --metric-type 1 --metric-name <name> --metric-definition '<semantic_metric_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
ae-cli engage-setting common-metric update --project-id <project_id> --metric-type 1 --metric-name <name> --metric-definition '<semantic_metric_json>' --metric-window-num 1 --metric-window-time-unit day --display-name <display>
ae-cli engage-setting common-metric delete --project-id <project_id> --metric-name <name> --yes
2. task
# Query the task list
ae-cli engage-task task list --project-id 1 --req '{"pageNum":1,"pageSize":20}'
# Build a save_task guide before composing the final req
ae-cli engage-task task build-save-guide --project-id 1 --req '{"context":{"triggerType":2,"channelId":"channel_123"}}'
# Save a task draft (create when req.taskId is omitted)
ae-cli engage-task task save --project-id 1 --req '{"baseInfo":{"taskName":"Demo Task"},"channelConfig":{"channelType":1,"channelId":"channel_123","groupContentList":[{"contentList":[{"pushLanguageCode":"default","content":"[]"}]}]},"targetConfig":{"targetClusterType":3},"triggerConfig":{"triggerType":2},"controlConfig":{"completionIndicatorDef":{"completionIndicators":[]}}}'
# Query task details
ae-cli engage-task task get --project-id 1 --task-id task_123
# Submit a saved draft task for approval
ae-cli engage-task task submit-approval --project-id 1 --task-id task_123
# Query task reports through the Hermes inline task-data capabilities
ae-cli engage-task effect query --project-id 1 --task-id task_123 --start-time 2026-04-01 --end-time 2026-04-07 --metric-id-list '["metric_1"]'
ae-cli engage-task data-detail query --project-id 1 --task-id task_123 --detail-type time --start-time 2026-04-01 --end-time 2026-04-07
ae-cli engage-task indicator-user sql --project-id 1 --task-id task_123 --indicator main --start-time 2026-04-01 --end-time 2026-04-07
ae-cli engage-task indicator-user run --project-id 1 --task-id task_123 --indicator secondary --secondary-index 1 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100
ae-cli engage-task indicator-user export --project-id 1 --task-id task_123 --indicator metric --metric-id metric_1 --source metric --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv
For L3 task reports, read references/task-data-overview.md, references/task-data-detail.md,
references/task-metric-detail.md, or references/task-experiment-report.md before invocation.
Before using engage-task indicator-user, read references/task-indicator-user.md; its grouping,
indicator, summary/detail, metric, experiment, and timezone flags have conditional compatibility rules.
3. config
# Query the config item list
ae-cli engage-scene config-item list --project-id 1
# Query the strategy list
ae-cli engage-scene strategy list --project-id 1 --config-id cfg_123
For L3 config reports, read references/config-item-trigger-report.md,
references/config-item-analysis-report.md, or references/config-item-strategy-comparison.md before invocation.
4. flow
# Query the flow list
ae-cli engage-flow flow list --project-id 1
# Query flow details
ae-cli engage-flow flow get --project-id 1 --flow-uuid flow_uuid_123
# Query flow operation records and application logs
ae-cli engage-flow operation-log query --project-id 1 --flow-id flow_id_123
# Query flow versions and task push records
ae-cli engage-flow version list --project-id 1 --flow-id flow_id_123
ae-cli engage-flow flow update-remark --project-id 1 --flow-uuid flow_uuid_123 --flow-version-desc "Second version"
ae-cli engage-task operation-log query --project-id 1 --task-id task_id_123
ae-cli engage-task push-record query --project-id 1 --task-id task_id_123 --page-num 1 --page-size 20
ae-cli engage-task user-detail export --project-id 1 --task-id task_id_123 --task-instance-id instance_123 --user-status fail --artifact-format csv
ae-cli engage-task segment-list query --project-id 1 --task-id task_id_123
ae-cli engage-task group list --project-id 1
ae-cli engage-task metric list --project-id 1 --task-id task_id_123
ae-cli engage-task channel-ref stats --project-id 1 --channel-id channel_123
ae-cli engage-task task delete --project-id 1 --task-id task_id_123 --yes
ae-cli engage-task task submit-approval --project-id 1 --task-id task_id_123
# Query the node schema
ae-cli engage-flow node-config schema --project-id 1 --node-type message_push
ae-cli engage-flow metric update --project-id 1 --flow-id flow_id_123 --metric-map '<metric_map_json>'
# Query or export newly exposed flow report surfaces
ae-cli engage-flow report metric-detail run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow report metric-detail export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow metric-user run --project-id 1 --flow-id flow_id_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow metric-user export --project-id 1 --flow-id flow_id_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow node-user run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow node-user export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name entry --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
ae-cli engage-flow node-metric-user run --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name metric_setting_id_123 --start-time 2026-04-01 --end-time 2026-04-07 --limit 100 --timeout-seconds 120
ae-cli engage-flow node-metric-user export --project-id 1 --flow-id flow_id_123 --node-uuid node_uuid_123 --indicator-name metric_setting_id_123 --start-time 2026-04-01 --end-time 2026-04-07 --artifact-format csv --timeout-seconds 21600
User-detail run commands are for bounded inline rows and accept --request-id, --limit, and --timeout-seconds; metric-detail run returns the report object. Export commands accept --request-id, --artifact-format csv|jsonl (default jsonl), and --timeout-seconds, then return run_id and artifact_id; poll with ae-cli engage-query run inspect --run-id RUN_ID, then download with ae-cli engage-query artifact download --run-id RUN_ID --artifact-id ARTIFACT_ID --output ./artifact.jsonl.gz. Cancel running async work with ae-cli engage-query query cancel --run-id RUN_ID.
For flow report/user-detail commands, read the matching reference before composing non-trivial input:
- Flow canvas custom metric configuration:
references/flow-metric-update.md - Metric-detail report object or flattened report export:
references/flow-metric-detail-report.md - Users behind a process-level metric segment:
references/flow-metric-user.md - Users behind a node-level data segment:
references/flow-node-user.md - Users behind a node-level metric segment:
references/flow-node-metric-user.md
5. scene (scene management / config center)
New capability-gateway command group engage-scene covers the config center: config items, params, groups, preset/related metrics, config channels, strategies, and templates. Complex DTOs are passed with --payload (native camelCase JSON).
# Config item list / get / create / update / delete
ae-cli engage-scene config-item list --project-id <project_id>
ae-cli engage-scene config-item get --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-item create --project-id <project_id> --config-id <config_id> --config-name <name> --business-type params
ae-cli engage-scene config-item update --project-id <project_id> --config-id <config_id> --config-name <name>
ae-cli engage-scene config-item delete --project-id <project_id> --config-id <config_id> --open-id <open_id> --yes
# Config param list / batch-add / update / batch-delete
ae-cli engage-scene config-param list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-param batch-add --project-id <project_id> --config-id <config_id> --params '[{"param_name":"a","param_type":"string"}]'
ae-cli engage-scene config-param update --project-id <project_id> --config-id <config_id> --param-id <param_id> --param-name a
ae-cli engage-scene config-param batch-delete --project-id <project_id> --param-ids '[1,2]' --yes
# Config group list / batch-add / update / batch-delete
ae-cli engage-scene config-group list --project-id <project_id>
ae-cli engage-scene config-group batch-add --project-id <project_id> --group-names '["g1"]'
ae-cli engage-scene config-group update --project-id <project_id> --group-id <group_id> --group-name g2
ae-cli engage-scene config-group batch-delete --project-id <project_id> --group-ids '[1,2]' --yes
# Preset metric get / set
ae-cli engage-scene preset-metric get --project-id <project_id> --config-id <config_id>
ae-cli engage-scene preset-metric set --project-id <project_id> --config-id <config_id> --impression-event-definition '<semantic_event_json>'
# Config metric list / get / batch-add / update-rule / batch-delete
ae-cli engage-scene config-metric list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene config-metric get --project-id <project_id> --metric-id <metric_id>
ae-cli engage-scene config-metric batch-add --project-id <project_id> --config-id <config_id> --ta-metric-ids '[1,2]'
ae-cli engage-scene config-metric update-rule --project-id <project_id> --metric-id <metric_id> --event-list '[{"event_name":"e1","filter":"true"}]'
ae-cli engage-scene config-metric batch-delete --project-id <project_id> --config-id <config_id> --metric-ids '[1,2]' --yes
# Config channel list / get / create / update / update-status / delete / query-log
# User params: reuse or discover verified customsParamList property names; then use user:<prop_name>
# Strategy custom audience: scene-strategy-audience.md — semantic definitionRequest; strategy predict for 预估人数
# Workflows: references/channel-mgmt.md · schema: references/scene-config-channel.md
ae-cli engage-scene config-channel list --project-id <project_id> [--channel-type 0|1]
ae-cli engage-scene config-channel get --project-id <project_id> --channel-id <channel_id>
ae-cli engage-scene config-channel create --project-id <project_id> --channel-name <name> --channel-type 0 --config '<json>'
ae-cli engage-scene config-channel update --project-id <project_id> --channel-id <channel_id> --channel-name <name> [--config '<json>']
ae-cli engage-scene config-channel update-status --project-id <project_id> --channel-id <channel_id> --channel-status 1|2
ae-cli engage-scene config-channel delete --project-id <project_id> --channel-id <channel_id> --yes
ae-cli engage-scene config-channel query-log --project-id <project_id> --channel-id <channel_id>
# Strategy create / update / log / batch-copy
ae-cli engage-scene strategy create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","strategyName":"s1"}'
ae-cli engage-scene strategy update --project-id <project_id> --payload '{"strategyUuid":"uuid-1"}'
ae-cli engage-scene strategy log --project-id <project_id> --strategy-uuid <uuid>
ae-cli engage-scene strategy predict --project-id <project_id> --definition-request '{"type":"condition","conditions":{...}}' --zone-offset 8 [--strategy-uuid <uuid>]
ae-cli engage-scene strategy batch-copy --project-id <project_id> --config-id <config_id> --strategy-ids '["s1"]'
# Template list / get / create / update / update-status / delete
ae-cli engage-scene template list --project-id <project_id> --config-id <config_id>
ae-cli engage-scene template get --project-id <project_id> --config-id <config_id> --template-id <template_id>
ae-cli engage-scene template create --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","templateName":"t1"}'
ae-cli engage-scene template update --project-id <project_id> --payload '{"configId":"cfg-1","templateId":"tpl-1","config":[]}'
ae-cli engage-scene template update-status --project-id <project_id> --config-id <config_id> --template-id <template_id> --status 1
ae-cli engage-scene template delete --project-id <project_id> --config-id <config_id> --template-id <template_id> --yes
6. activity (campaign activities)
New capability-gateway command group engage-activity covers campaign activities: activities, approval workflow, topics, activity types, and standalone tasks. Complex DTOs are passed with --payload (native camelCase JSON).
Activity payload guardrails
Before generating any activity topic or standalone-task payload, enforce the same subset exposed by the Hermes activity UI:
triggerTypemust be0(schedule single) or1(schedule repeat). Activity tasks do not support manual (2) or triggered (3-6) task types.- Do not configure A/B or horse-race experiments. Omit
expConfigor use only{"enableExp":false}, and provide exactly one non-experimentgroupContentListgroup. - Standalone activity tasks must use
triggerTimeStrategy: "fixed_time_zone"and the parent activitytzOffset. Schedule times must remain inside the activity period. - A topic root supports audience types
1(custom) and2(existing cluster), not3(all users). A standalone activity task may use1,2, or3. - Topic tasks inherit schedule, timezone, channel, frequency limits, channel touch limits, whitelist, and experiment settings from the topic. They may only add an inclusion-only custom
definitionRequest; never generate task-levelclusterKey, trigger rules, or shared-setting overrides.topic getmay return the canonical task markertargetClusterType=1; preserve it for update if present, but never use another task-level value. - Resolve the parent activity first and confirm it is editable (
mappingStatus0,2, or5). Limits for topics, tasks, and languages are project configuration values; do not hardcode defaults. approval submitandapproval approvevalidate every persisted activity task. Approval does not normalize unsupported task data. OnACTIVITY_TASK_COMPATIBILITY_VIOLATION, cancel/withdraw approval as needed, correct or recreate each reported task, and submit again.
# Activity create / update / delete / list / get / pause / end / stats / info-list
ae-cli engage-activity activity create --project-id <project_id> --payload '{"activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
ae-cli engage-activity activity update --project-id <project_id> --payload '{"activityId":"act-1","activityName":"a1","activityType":"other_type","tzOffset":8,"periodType":0}'
ae-cli engage-activity activity delete --project-id <project_id> --activity-id <activity_id> --yes
ae-cli engage-activity activity list --project-id <project_id> --page 1 --page-size 20
ae-cli engage-activity activity get --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity pause --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity end --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity activity stats --project-id <project_id>
ae-cli engage-activity activity info-list --project-id <project_id> --activity-id <activity_id>
# Approval submit / approve / reject / cancel
ae-cli engage-activity approval submit --project-id <project_id> --activity-id <activity_id> [--reason <reason>]
ae-cli engage-activity approval approve --project-id <project_id> --activity-id <activity_id>
ae-cli engage-activity approval reject --project-id <project_id> --activity-id <activity_id> --reason <reason>
ae-cli engage-activity approval cancel --project-id <project_id> --activity-id <activity_id>
# Topic create / update / remove-task / delete / get / copy
# See references/activity-topic.md for topicClusterKey vs task clusterKey and triggerType notes.
ae-cli engage-activity topic create --project-id <project_id> --payload '{"activityId":"act-1","topicName":"t1","targetClusterType":2,"topicClusterKey":"<cluster>","channelType":1,"channelId":"c1","triggerType":0,"triggerTime":"2026-12-31 12:00","enableChannelTouchLimits":false,"frequencyLimits":"{}","tasks":[...]}'
ae-cli engage-activity topic update --project-id <project_id> --payload '{"topicId":"topic-1", ...}'
ae-cli engage-activity topic remove-task --project-id <project_id> --task-id <task_id> --yes
ae-cli engage-activity topic delete --project-id <project_id> --topic-id <topic_id> --yes
ae-cli engage-activity topic get --project-id <project_id> --topic-id <topic_id>
ae-cli engage-activity topic copy --project-id <project_id> --topic-id <topic_id> [--new-name <name>]
# Activity type list / batch-add / update / batch-delete
ae-cli engage-activity activity-type list --project-id <project_id>
ae-cli engage-activity activity-type batch-add --project-id <project_id> --type-names '["t1","t2"]'
ae-cli engage-activity activity-type update --project-id <project_id> --id <type_id> --type-name t3
ae-cli engage-activity activity-type batch-delete --project-id <project_id> --ids '["id1","id2"]' --yes
# Standalone task get / create / update / copy
ae-cli engage-activity task get --project-id <project_id> --task-id <task_id>
ae-cli engage-activity task create --project-id <project_id> --payload '{"taskName":"t1","activityId":"act-1", ...}'
ae-cli engage-activity task update --project-id <project_id> --payload '{"taskId":"task-1", ...}'
ae-cli engage-activity task copy --project-id <project_id> --task-id <task_id> [--new-name <name>]
7. workbench
New capability-gateway command group engage-workbench covers workbench metric slots: each user configures up to 4 metric cards per project. Slots are per-user; update/delete only affect the caller's own slots. The first list auto-initialises 4 default slots.
# Workbench slot list / add / update / delete
ae-cli engage-workbench workbench list --project-id <project_id>
ae-cli engage-workbench workbench add --project-id <project_id> --metric-type <metric_type> --date-type <date_type> --order-id 1
ae-cli engage-workbench workbench update --project-id <project_id> --slot-id <slot_id> --metric-type <metric_type> --date-type <date_type> --order-id 1
ae-cli engage-workbench workbench delete --project-id <project_id> --slot-id <slot_id> --yes
engage-flow flow save Critical Constraints
When the user wants to "create a flow / generate a flow canvas / save a flow", do not treat engage-flow flow save as a normal single command. You must follow the workflow below.
Required Workflow
-
First confirm that the user intent is specific enough. At minimum you need:
- The business scenario
- The target users
- The touchpoint or delivery method
- Whether branching is needed, and the branching conditions
-
Do not jump directly from natural language to
--req. You must first organize a stable intermediate intent structure, then map it to the finalreq. -
Build condition-related nodes with semantic
targetDefinitionRequestandtriggerDefinitionobjects. Resolve real event and property names through Analysis metadata; do not create an intermediate cluster merely to obtain persisted QP. -
Before building touchpoint nodes such as
message_push,wechat_push, orwebhook_push, you must call:
ae-cli engage-setting channel list --project-id <projectId>
engage-flow flow saveis operation-based (protocol v2). The--reqobject must carry anoperationofbuild,preview, orcommit. Do not use the oldnodeList/edgeListfield names — usenodes/edgeswithoperation=build. A legacynodeList/edgeListpayload (or a missingoperation) is rejected withUnsupported save_flow operation: null.- Run the lifecycle:
build(returnsdata.result.status = ready_to_previeworneed_input) → resolve anydata.result.next_slot→preview(re-issues response fieldsdata.result.draft_version+data.result.confirm_token) →commit(maps those values to request fieldsdraftVersion+confirmToken) → reads the final ID fromdata.result.result.flow_uuid. nodes[].config/edges[].configmay be a JSON object or a JSON string. Custom audience nodes and branches use semantictargetDefinitionRequest; Hermes compiles it to the node's stored execution format. Never sendtargetClusterQp. Each audienceeventandbehavior_sequencemust include its owntime_range; Flow entry dates do not replace that range. Use only properties that resolve through the Flow editor's current project, timezone, and user-entity metadata scope.- You must self-check before previewing/committing:
- There is exactly one entry node
- There is at least one
exit_flow edge.sourceandedge.targetboth reference valid nodes- Any branch node
sourceBranchIdhas already been declared in the upstream nodeconfig - The whole graph is a DAG and contains no cycles
Explicitly Forbidden
- Do not invent a
channelId - Do not fill in branching logic when the user has not provided enough information
- Do not submit business-semantic nodes directly as final
nodes - Do not use the legacy
nodeList/edgeList, and do not omitoperation
Recommended Order
User request
-> Organize intent
-> analysis user-cluster create/get
-> engage-setting channel list --project-id <projectId>
-> Build nodes / edges
-> Self-check
-> engage-flow flow save operation=build -> (need_input?) -> preview -> commit
-> engage-flow flow get (verify)
For more detailed generation rules, consult these references first:
references/save-flow.mdreferences/flow-node-config-schema.mdreferences/validate-flow-node-config.md
Dry-Run Debugging
ae-cli --dry-run engage-setting channel list --project-id 1
ae-cli --dry-run engage-task task list --project-id 1 --req '{"pageNum":1,"pageSize":20}'
ae-cli --dry-run engage-task task build-save-guide --project-id 1 --req '{}'
ae-cli --dry-run engage-task task save --project-id 1 --req '{"baseInfo":{"taskName":"Demo Task"},"channelConfig":{"channelType":1,"channelId":"channel_123","groupContentList":[{"contentList":[{"pushLanguageCode":"default","content":"[]"}]}]},"targetConfig":{"targetClusterType":3},"triggerConfig":{"triggerType":2},"controlConfig":{"completionIndicatorDef":{"completionIndicators":[]}}}'
ae-cli --dry-run engage-flow flow list --project-id 1
References
More detailed single-command guidance is available in the business-oriented references/ directory:
references/channel-list.md(engage-setting.channel.list)references/channel-detail.md(engage-setting.channel.get)references/add-channel.md(engage-setting.channel.create)references/update-channel-status.md(engage-setting.channel.update-status)references/delete-channel.md(engage-setting.channel.delete)references/channel_touch_limits_list.md(engage-setting.channel-touch-limits.list)references/channel-touch-limits-batch-update.md(engage-setting.channel-touch-limits.batch-update)references/channel-touch-limits-toggle.md(engage-setting.channel-touch-limits.toggle)references/channel-touch-limits-save.md(engage-setting.channel-touch-limits.save)references/channel-update-config.md(engage-setting.channel.update-config)references/channel-test-send.md(engage-setting.channel.test-send)references/approval-approver-delete.md(engage-setting.approval-approver.delete)references/add-approver.md/references/approver-list.md(engage-setting.approval-approver.{add,list})references/whitelist-list.md/references/whitelist.md(engage-setting.whitelist.{list,add,update,delete,verify})references/cancel-query-by-request-id.md(engage-setting.query.cancel, L3)references/cancel-query-run.md(engage-query.query.cancel)references/push-language.md(engage-setting.push-language.{get,set})references/client-param.md(engage-setting.client-param.{create,update,delete,list})references/config-table.md(engage-setting.config-table.{upload,save,list,query-data,update-data,delete})references/preset-event.md(engage-setting.preset-event.{list,update})references/common-metric.md(engage-setting.common-metric.{list,get,create,update,delete})references/scene-config-item.md(engage-scene.config-item.{list,get,create,update,delete})references/scene-config-param.md(engage-scene.config-param.{list,batch-add,update,batch-delete})references/scene-config-group.md(engage-scene.config-group.{list,batch-add,update,batch-delete})references/scene-preset-metric.md(engage-scene.preset-metric.{get,set})references/scene-config-metric.md(engage-scene.config-metric.{list,get,batch-add,update-rule,batch-delete})references/scene-config-channel.md(engage-scene.config-channel.{list,get,create,update,update-status,delete,query-log})references/channel-mgmt.md(config channel management workflows)references/scene-strategy.md(engage-scene.strategy.{list,get,create,update,log,predict,batch-copy,manage})references/scene-strategy-audience.md(custom audience semanticdefinitionRequest, preflight, predict)references/scene-template.md(engage-scene.template.{list,get,copy,create,update,update-status,delete})references/config-item-trigger-report.md(engage-scene.report.config-item-trigger, L3)references/config-item-analysis-report.md(engage-scene.report.config-item-analysis, L3)references/config-item-strategy-comparison.md(engage-scene.report.strategy-comparison, L3)references/activity-activity.md(engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list})references/activity-data-detail.md(engage-activity.activity-data.detail, L3)references/activity-approval.md(engage-activity.approval.{submit,approve,reject,cancel})references/activity-topic.md(engage-activity.topic.{create,update,remove-task,delete,get,copy})references/activity-activity-type.md(engage-activity.activity-type.{list,batch-add,update,batch-delete})references/activity-task.md(engage-activity.task.{get,create,update,copy})references/workbench-workbench.md(engage-workbench.workbench.{list,add,update,delete})references/build-task-save-guide.mdreferences/save-task.mdreferences/task-list.mdreferences/flow-list.mdreferences/operation-log-query.md(engage-flow.operation-log.query)references/task-operation-log-query.md(engage-task.operation-log.query)references/version-list.md(engage-flow.version.list)references/flow-update-remark.md(ae-cli engage-flow flow update-remark; capabilityengage-flow.version.update-remark)references/push-record-query.md(engage-task.push-record.query)references/task-user-detail-export.md(engage-task user-detail export; capabilityengage-task.user-detail.export)references/task-indicator-user.md(engage-task indicator-user {sql,run,export}; capabilitiesengage-task.indicator-user.{sql,run,export})references/segment-list-query.md(engage-task.segment-list.query)references/group-list.md(engage-task.group.list)references/task-delete.md(engage-task.task.delete)references/task-submit-approval.md(engage-task.task.submit-approval)references/task-data-detail.md(engage-task data-detail query; capabilityengage-task.task-data.detail)references/task-metric-detail.md(engage-task effect query; capabilityengage-task.task-data.metric-detail)references/task-metric-update.md(engage-task metric update; capabilityengage-task.metric.update)references/flow-metric-update.md(engage-flow metric update; capabilityengage-flow.metric.update)
This split documentation structure is easier to extend later, because commands with more complex object inputs can stay centralized in the references/ root directory.
Command Groups
setting
channel-touch-limits list / channel-touch-limits batch-update / channel-touch-limits toggle / channel-touch-limits save / channel update-config / channel test-send / channel list / channel get / channel create / channel update-status / channel delete / approval-approver add / approval-approver list / approval-approver delete / whitelist list / whitelist add / whitelist update / whitelist delete / whitelist verify / push-language get / push-language set / client-param create / client-param update / client-param delete / client-param list / config-table upload / config-table save / config-table list / config-table query-data / config-table update-data / config-table delete / preset-event list / preset-event update / common-metric list / common-metric get / common-metric create / common-metric update / common-metric delete (via engage-setting), plus L3 capability engage-setting.query.cancel
task
operation-log query / push-record query / user-detail export / indicator-user sql / indicator-user run / indicator-user export / segment-list * / ops * / metric * / race release / channel-ref stats / group * / task delete / task modify-group / task submit-approval / task get / task list / task stats / task build-save-guide / task save / task manage / effect query / data-detail query (via engage-task), plus L3 capabilities engage-task.task-data.{overview,detail,metric-detail,experiment-report}
query
run inspect / artifact download / query cancel (via engage-query), capability ID engage-query.query.cancel
config
Legacy config MCP commands are migrated into the scene L2 group and the three L3 report capabilities below.
scene
config-item list / config-item get / config-item create / config-item update / config-item delete / config-param list / config-param batch-add / config-param update / config-param batch-delete / config-group list / config-group batch-add / config-group update / config-group batch-delete / preset-metric get / preset-metric set / config-metric list / config-metric get / config-metric batch-add / config-metric update-rule / config-metric batch-delete / config-channel list / config-channel get / config-channel create / config-channel update / config-channel update-status / config-channel delete / config-channel query-log / strategy list / strategy get / strategy create / strategy update / strategy log / strategy batch-copy / strategy manage / template list / template get / template copy / template create / template update / template update-status / template delete (via engage-scene), capability ids engage-scene.config-item.{list,get,create,update,delete}, engage-scene.config-param.{list,batch-add,update,batch-delete}, engage-scene.config-group.{list,batch-add,update,batch-delete}, engage-scene.preset-metric.{get,set}, engage-scene.config-metric.{list,get,batch-add,update-rule,batch-delete}, engage-scene.config-channel.{list,get,create,update,update-status,delete,query-log}, engage-scene.strategy.{list,get,create,update,log,batch-copy,manage}, engage-scene.template.{list,get,copy,create,update,update-status,delete}, plus L3 capabilities engage-scene.report.{config-item-trigger,config-item-analysis,strategy-comparison}
activity
activity create / activity update / activity delete / activity list / activity get / activity pause / activity end / activity stats / activity info-list / approval submit / approval approve / approval reject / approval cancel / topic create / topic update / topic remove-task / topic delete / topic get / topic copy / activity-type list / activity-type batch-add / activity-type update / activity-type batch-delete / task get / task create / task update / task copy (via engage-activity), capability ids engage-activity.activity.{create,update,delete,list,get,pause,end,stats,info-list}, engage-activity.approval.{submit,approve,reject,cancel}, engage-activity.topic.{create,update,remove-task,delete,get,copy}, engage-activity.activity-type.{list,batch-add,update,batch-delete}, engage-activity.task.{get,create,update,copy}
workbench
workbench list / workbench add / workbench update / workbench delete (via engage-workbench), capability ids engage-workbench.workbench.{list,add,update,delete}
flow
operation-log query / version list / flow update-remark / flow save / node-config schema / flow get / flow list / flow manage / node-config validate / flow delete / flow modify-base-info / metric update / report metric-detail run / report metric-detail export / metric-user run / metric-user export / node-user run / node-user export / node-metric-user run / node-metric-user export (via engage-flow), plus L3 capabilities engage-flow.report.{node-overview,process,node-detail,ab-split-node}
Date Format
Commands that accept date parameters usually use yyyy-MM-dd, for example --start_time 2026-04-01.
Write Operation Reminder
All writes require the corresponding user intent. High-risk delete commands (risk: high-risk-write) additionally require explicit confirmation before execution; ordinary writes (risk: write) do not require that extra confirmation:
- Channels:
engage-setting channel create(write),engage-setting channel delete(high-risk-write),engage-setting channel update-status(write) - Config channels (config center channel management):
engage-scene config-channel create|update|update-status(write),engage-scene config-channel delete(high-risk-write) - Strategies and config items:
engage-scene config-item delete(high-risk-write),engage-scene template copyandengage-scene strategy manage(write) - Flows:
engage-flow flow update-remark(write),engage-flow flow save(write),engage-flow flow modify-base-info(write),engage-flow flow manage(write),engage-flow flow delete(high-risk-write) - Tasks:
engage-task task save(write),engage-task task submit-approval(write),engage-task task manage(write)
For task draft creation or update, use this workflow:
ae-cli engage-setting channel list --project-id <projectId>ae-cli engage-task task build-save-guide --project-id <projectId> --req '{...}'- For a custom audience, pass the Analysis semantic contract as
targetConfig.definitionRequest. For an event-triggered task, use semantictriggerConfig.triggerDefinitionand always includeperiodTimeSymbol(TS01,TS02,TS03, orTS04) on its primary A rule. Use semanticcompletionIndicatorDef.completionIndicators[].eventDefinition. Build shapes fromae-analysisuser-cluster / audience models. For existing-cluster audiences (targetClusterType=2), useanalysis user-cluster get. For event-triggered tasks, passchannelType,triggerType, andeventTriggerTypetobuild-save-guide, then use its type-specific semantic event shape. Accumulated events are aggregate conditions, continuous events use count/eq with a value of at least 2, ordered events use sequence-step envelopes, and every-completion events use count/eq/1. Completion target and experiment main-goal event filters must not use properties whose metadataselect_typeisdatetime. Never construct persisted QP fields. Select the audience by delivery side: server-side channels allow custom (1) or existing (2) and reject all users (3);client_push(channelType=3) allows custom (1) or all users (3) and rejects existing (2). Do not infer audience support fromtriggerTypealone. ae-cli engage-task task save --project-id <projectId> --req '{...}'
For a draft-only request, stop after saving and verifying the draft. Submit approval
only when that separate action is included in the user's intent:
ae-cli engage-task task submit-approval --project-id <projectId> --task-id <taskId>.
engage-task task build-save-guide is a read-only helper. It returns scenario-specific required fields, channel content schema, unsupported combinations, examples, and a handoff template for save_task.
When enableExp=true, capability engage-task.task.build-save-guide enriches the handoff so
groupContentList association fields
(expGroupName/expGroupType/percentageInExperiment/order) stay aligned with
expConfig.expGroupList; only replace contentList[].content. Capability engage-task.task.save
rejects misaligned experiment content with TASK_EXPERIMENT_GROUP_CONTENT_INVALID.
engage-task task save creates or updates a task configuration. It does not submit approval, does not start sending, and does not trigger task execution. If req.taskId is omitted it creates a new draft; if req.taskId is present it updates an existing draft or paused task. Update mode rejects running/ended tasks with invalid_status. Omitted fields inherit from the existing task before validation (partial rename/update is supported).
When approval submission is requested, engage-task task submit-approval --task-id is the recommended path after task save.
It submits the persisted draft without requiring the Agent to reconstruct internal trigger_rule.
The legacy --request mode remains available for compatibility; provide exactly one of
--task-id or --request.
Audience creation is not a fixed preflight step. For custom task audiences, use semantic
targetConfig.definitionRequest; task get returns the same contract as
definition_request. clientConfig.clientQp is server-authored and must be omitted from
Capability requests; partial updates preserve existing server state. Do not assemble raw QP
manually.
For a behavior_sequence, omit second-step relative_to_first or set it to false; reserve
true for step 3 or later when the window is measured from step 1.
FAQ
What does the ae-engage skill do?
AE Engage capability gateway: config center, flows, push/config channels, strategies, templates, task management, operation activities, and query lifecycle. Trigger words: config center, scene config, push channel, config channel, operation strategy, operation task, operation activity, query lifecycle, template, config item, Engage, Hermes, engage-scene, engage-setting, engage-flow, engage-task, engage-activity, engage-query.
How do I install ae-engage?
Run npx skills add https://github.com/thinkingaiagenticengine/ae-cli --skill ae-engage in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/ae-engage/ (personal) or .claude/skills/ae-engage/ (project).
Which AI agents can use ae-engage?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is ae-engage safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains ae-engage?
It is published by thinkingaiagenticengine in thinkingaiagenticengine/ae-cli. It has 870 recorded installs.
More from thinkingaiagenticengine/ae-cli
ae-analysis
thinkingaiagenticengine/ae-cli
Use ae-cli for AE analysis-side data questions, asset operations, and asset governance: reports, analysis boards, BI dashboards, ad-hoc models, drilldown, detail data, alerts, clusters, tags, metrics, metadata discovery, project configuration, tracking plans, local input-file upload, governance asset lists/rules/lineage/impact/dependency, batch asset operations, projects, and resource links. Use when the user asks to query data, explain a change, export evidence, inspect/create/update/govern analysis assets, recommend project assets for certification/authentication, review asset-certification recommendations, review metric recommendations, or build/update/refresh/sync a project semantic knowledge base from a governed asset package.
ae-dataops
thinkingaiagenticengine/ae-cli
Use ae-cli for DataOps warehouse tables/views and fields, recycling, workflow configuration and release, execution troubleshooting, backfill, SQL queries, and data integration.
ae-community
thinkingaiagenticengine/ae-cli
AE community analysis and data reporting for posts, comments, topics, livestreams, customer-service chats, WeCom after-sales groups, and in-game chat. Use for community content insight, sentiment, intent, evidence drill-down, community data ingestion/import/submission, and WeCom chat data integration (社区数据上报、导入、提交社区数据、企微聊天数据接入).
ae-agent
thinkingaiagenticengine/ae-cli
AE Agent platform CLI for Agent, resource package import and export, notification, approval, archived conversation, model, MCP, Skill, attachment, and user-memory work. Use when managing these resources, browsing Agent markets, handling approval requests and tasks, restoring archived conversations, persisting user memory, or answering from user preferences, background, stable workflows, or historical conventions.
ae-kb
thinkingaiagenticengine/ae-cli
AE knowledge base CLI manual for creating, importing read-only compiled snapshots, querying, LLM-powered ask, listing accessible knowledge bases and their sources, deterministic index/grep/read retrieval, checking status, ZIP source upload and directory management, raw child-file reading, revision-checked child updates and deletion, compiling, schema generation, URL sources, source deletion, ordinary text source creation, full reads and revision-checked editing, file/ZIP source draft replacement and restoration, and knowledge base deletion. Use when the user asks to manage AE (Agentic Engine) knowledge bases, import a compiled Markdown ZIP snapshot, upload documents or URLs to a knowledge base, query knowledge, ask knowledge bases with an LLM, list accessible knowledge bases or source metadata, inspect knowledge base indexes, search knowledge base pages, read a specific knowledge base page, check knowledge base status, generate schemas, compile knowledge, remove sources, create or edit
cli-self-check
thinkingaiagenticengine/ae-cli
检测新合并到 te-cli 的 CLI 功能是否合理。从命令注册、业务域↔skill 配对、skill 文档覆盖、skill 内部一致性、用户文档同步、工程健壮性六个维度扫描,定位会导致命令加载失败、AI agent 读空文档瞎猜参数、用户文档滞后等问题。当合并了新命令域/命令、新增或修改 skill、做发版前自检、或需要评估 CLI 功能完整性时使用。
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。