OpenClaw Capture
Use this skill when the user wants to send a link, pasted text, image, or video into the local openclaw_capture_workflow backend without modifying that repo, while choosing STT and notification modules by environment.
Behavior
- Normalize the request into the legacy payload contract:
chat_idreply_to_message_idrequest_idsource_kindsource_urlraw_textimage_refsplatform_hintrequested_output_lang
- Immediately tell the user:
已收到,开始处理。 - Dispatch the payload through the wrapper runtime:
python3 scripts/dispatch_capture.py --payload-file /path/to/payload.json
You may also pipe JSON through stdin:
python3 scripts/dispatch_capture.py <<'JSON'
{"chat_id":"-1001","source_kind":"url","source_url":"https://example.com"}
JSON
Routing Rules
- Keep the payload contract unchanged from the legacy workflow.
- For
mixed, preserve URL, pasted text, and images together. - STT profile resolves as:
- macOS ->
mac_local_first - non-macOS with
OPENCLAW_CAPTURE_LOCAL_STT_COMMAND->local_cli_then_remote - otherwise ->
remote_only
- macOS ->
- Output modules resolve from
OPENCLAW_CAPTURE_OUTPUTS:telegramfeishu
Required Environment
OPENCLAW_CAPTURE_LEGACY_PROJECT_ROOTshould point to the localopenclaw_capture_workflowcheckout when this skill is not being run from the source repo.OPENCLAW_CAPTURE_BACKEND_MODE=library|httpOPENCLAW_CAPTURE_BACKEND_URLwhenBACKEND_MODE=httpOPENCLAW_CAPTURE_STT_PROFILE=mac_local_first|local_cli_then_remote|remote_onlyto override the default routingOPENCLAW_CAPTURE_LOCAL_STT_COMMANDfor non-mac local CLI transcription fallbackOPENCLAW_CAPTURE_MODEL_PROFILE=openai_direct|aihubmix_gatewayOPENCLAW_CAPTURE_MODEL_API_BASE_URLOPENCLAW_CAPTURE_MODEL_API_KEYOPENCLAW_CAPTURE_OUTPUTS=telegram,feishuOPENCLAW_CAPTURE_TELEGRAM_BOT_TOKENOPENCLAW_CAPTURE_FEISHU_WEBHOOK
References
- Runtime profiles and environment matrix: references/runtime-profiles.md
- Module behavior and output fanout: references/module-matrix.md
- Legacy payload contract and mixed-input rules: references/payload-contract.md
Do not manually summarize after dispatch succeeds unless the user explicitly asks for an inline summary.