{"id":"cc296ae8-f2cd-4473-a25c-8f7f37d9ef5d","entityType":"agent","slug":"clawhub-yiming1001-mx-auto","name":"mx-auto","canonicalUrl":"https://www.xpersona.co/agent/clawhub-yiming1001-mx-auto","canonicalPath":"/agent/clawhub-yiming1001-mx-auto","generatedAt":"2026-10-12T15:11:57.039Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-12T00:58:53.874Z","emptyReason":null},"description":"Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or ru... Skill: mx-auto Owner: yiming1001 Summary: Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or ru... Tags: latest:1.0.4 Version history: v1.0.4 | 2026-05-19T10:46:39.784Z | user Add progressive references plus sandbox tabs/snapshot and local script list/show/run routing. v1.0.3 | 2026-05-19T03:08:41.322Z | user Persi","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 964 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17973ckq18hmgn6fyfhwykv1583h5nd:mx-auto","sourceUrl":"https://clawhub.ai/yiming1001/mx-auto","homepage":"https://clawhub.ai/yiming1001/skills/mx-auto","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/yiming1001/mx-auto","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/yiming1001/skills/mx-auto","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or ru..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:58:53.874Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:58:53.874Z","emptyReason":null},"stars":null,"forks":null,"downloads":964,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.4","tractionLabel":"964 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:58:53.863Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T00:58:53.874Z","lastCrawledAt":"2026-10-12T00:58:53.863Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T00:58:53.863Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.4","createdAt":"2026-05-19T10:46:39.784Z","changelog":"Add progressive references plus sandbox tabs/snapshot and local script list/show/run routing.","fileCount":15,"zipByteSize":33886},{"version":"1.0.3","createdAt":"2026-05-19T03:08:41.322Z","changelog":"Persist default app home and dynamically read Runtime admin token on each local run.","fileCount":9,"zipByteSize":24835},{"version":"1.0.2","createdAt":"2026-05-08T11:53:56.750Z","changelog":"Remove user-facing local token instructions, simplify local Runtime guidance, and keep mx-auto focused on automatic local Runtime discovery.","fileCount":9,"zipByteSize":23833},{"version":"1.0.1","createdAt":"2026-05-06T12:49:48.091Z","changelog":"Improve local Runtime auto-discovery guidance, minimize token prompts, default trigger execution to empty input first, and make human trigger lists less noisy.","fileCount":9,"zipByteSize":24069},{"version":"1.0.0","createdAt":"2026-05-01T03:51:29.140Z","changelog":"Initial public release for local Runtime trigger execution with cached trigger snapshots and persistent defaults.","fileCount":9,"zipByteSize":22271}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17973ckq18hmgn6fyfhwykv1583h5nd:mx-auto","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T15:11:57.038Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yiming1001-mx-auto/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-12T00:58:53.874Z","emptyReason":null},"readme":"Skill: mx-auto\n\nOwner: yiming1001\n\nSummary: Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or ru...\n\nTags: latest:1.0.4\n\nVersion history:\n\nv1.0.4 | 2026-05-19T10:46:39.784Z | user\n\nAdd progressive references plus sandbox tabs/snapshot and local script list/show/run routing.\n\nv1.0.3 | 2026-05-19T03:08:41.322Z | user\n\nPersist default app home and dynamically read Runtime admin token on each local run.\n\nv1.0.2 | 2026-05-08T11:53:56.750Z | user\n\nRemove user-facing local token instructions, simplify local Runtime guidance, and keep mx-auto focused on automatic local Runtime discovery.\n\nv1.0.1 | 2026-05-06T12:49:48.091Z | user\n\nImprove local Runtime auto-discovery guidance, minimize token prompts, default trigger execution to empty input first, and make human trigger lists less noisy.\n\nv1.0.0 | 2026-05-01T03:51:29.140Z | user\n\nInitial public release for local Runtime trigger execution with cached trigger snapshots and persistent defaults.\n\nArchive index:\n\nArchive v1.0.4: 15 files, 33886 bytes\n\nFiles: agents/openai.yaml (342b), references/learning-guide.md (930b), references/sandbox.md (1258b), references/scripts.md (1340b), references/triggers.md (1464b), scripts/browser_sandbox_bridge.sh (12045b), scripts/cloud_dispatch_loop.sh (16651b), scripts/export_preference.sh (12204b), scripts/local_dispatch_loop.sh (6501b), scripts/preflight_check.sh (13395b), scripts/run.sh (22106b), scripts/script_catalog.sh (11507b), skill-card.md (2526b), SKILL.md (3032b), _meta.json (126b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: mx-auto\ndescription: Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or run Runtime triggers, inspect existing browser sandbox tabs/snapshots, or list/show/run local App scripts.\n---\n\n# mx-auto\n\nUse this skill as a lightweight router for local Runtime automation.\n\n## Capabilities\n\n- **Triggers**: list and run callable App triggers.\n  - Read [references/triggers.md](references/triggers.md) when the user asks to list, refresh, inspect, or run triggers.\n- **Sandbox**: list existing browser sandbox tabs or snapshot an existing tab.\n  - Read [references/sandbox.md](references/sandbox.md) when the user asks about browser sandbox tabs, target IDs, snapshots, dashboard text, or URL-matched tab inspection.\n- **Scripts**: list, show, or run local scripts/examples.\n  - Read [references/scripts.md](references/scripts.md) when the user asks to list scripts, inspect a script schema, or run a script directly.\n- For complex mixed requests, read [references/learning-guide.md](references/learning-guide.md).\n\n## Shared Runtime Defaults\n\nPreferences file:\n\n`$OPENCLAW_STATE_DIR/skill-state/mx-auto/preferences.json`\n\nFallback:\n\n`$HOME/.openclaw/skill-state/mx-auto/preferences.json`\n\nHelper:\n\n```bash\nbash {baseDir}/scripts/export_preference.sh show\nbash {baseDir}/scripts/export_preference.sh apply-recommended\nbash {baseDir}/scripts/export_preference.sh set-key defaultAppHome \"/Users/zhym/Library/Application Support/rpa-app-executor\"\n```\n\nRuntime base URL discovery:\n\n1. `MX_APP_RUNTIME_BASE_URL`\n2. `RPA_RUNTIME_BASE_URL`\n3. stored `defaultLocalBaseUrl`\n4. standard Runtime ports: `8877`, `8878`, `8879`\n\nRuntime app home discovery:\n\n1. `--app-home`\n2. `MX_AUTO_APP_HOME`\n3. `RPA_APP_HOME`\n4. stored `defaultAppHome`\n5. platform default app home\n\nRuntime admin token discovery:\n\n1. `MX_APP_RUNTIME_ADMIN_TOKEN`\n2. `RPA_RUNTIME_ADMIN_TOKEN`\n3. `{resolved app home}/runtime/admin-token.json`\n\nNever store or print the Runtime admin token value. App updates may rotate or recreate it; re-read the token file at runtime.\n\n## Entry Points\n\nPrefer the wrapper:\n\n```bash\nbash {baseDir}/scripts/run.sh ...\n```\n\nTriggers:\n\n```bash\nbash {baseDir}/scripts/run.sh triggers list --format json\nbash {baseDir}/scripts/run.sh triggers run --trigger-name \"小红书测试\"\n```\n\nSandbox:\n\n```bash\nbash {baseDir}/scripts/run.sh sandbox tabs --format json\nbash {baseDir}/scripts/run.sh sandbox snapshot --url-contains dashboardV4 --url-not-contains /review\n```\n\nScripts:\n\n```bash\nbash {baseDir}/scripts/run.sh scripts list --format json\nbash {baseDir}/scripts/run.sh scripts show xiaohongshu.note.search.v1.json --format json\nbash {baseDir}/scripts/run.sh scripts run xiaohongshu.note.search.v1.json --input-json '{\"keyword\":\"美食探店\"}' --wait true --format json\n```\n\nLegacy trigger commands remain supported:\n\n```bash\nbash {baseDir}/scripts/run.sh --list-triggers\nbash {baseDir}/scripts/run.sh --trigger-name \"小红书测试\"\n```\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7e8rp9zay3je2bycn9zrmztx82hy57\",\n  \"slug\": \"mx-auto\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1779187599784\n}\n\nFile v1.0.4:references/learning-guide.md\n\n# mx-auto Learning Guide\n\nUse this guide only for complex requests that combine trigger, sandbox, or script operations.\n\n## Routing\n\n- Trigger list/run requests: read `references/triggers.md`.\n- Existing browser sandbox tab/snapshot requests: read `references/sandbox.md`.\n- Local script list/show/run requests: read `references/scripts.md`.\n\n## Shared Rules\n\n- Prefer auto-discovery before asking for Runtime URL, app home, or token.\n- Store app home and other non-secret defaults only.\n- Never store, print, or copy the Runtime admin token value.\n- Use exact names for execution targets; do not fuzzy-match a trigger or script when running it.\n- Ask only after Runtime discovery or target resolution fails.\n\n## Failure Framing\n\nClearly distinguish:\n\n- Runtime unavailable\n- Runtime unauthorized or token file missing\n- target resolution/cache miss\n- command execution failure\n- sandbox no-match or multiple-match disambiguation\n\nFile v1.0.4:references/sandbox.md\n\n# Sandbox Workflow\n\nUse this reference when inspecting existing browser sandbox tabs or snapshotting an existing tab.\n\n## Rules\n\n- Strictly read-only.\n- Only list tabs or snapshot an existing target.\n- Do not navigate.\n- Do not create pages or tabs.\n- Do not click, type, or mutate browser state.\n\n## Commands\n\n```bash\nbash {baseDir}/scripts/run.sh sandbox tabs\nbash {baseDir}/scripts/run.sh sandbox tabs --profile browser-1 --format json\nbash {baseDir}/scripts/run.sh sandbox snapshot --target-id <targetId>\nbash {baseDir}/scripts/run.sh sandbox snapshot --url-contains dashboardV4 --url-not-contains /review\n```\n\n## Runtime API\n\nCall `POST /browser` with Runtime admin auth.\n\nTabs:\n\n```json\n{ \"action\": \"tabs\", \"profile\": \"browser-1\" }\n```\n\nSnapshot:\n\n```json\n{\n  \"action\": \"snapshot\",\n  \"profile\": \"browser-1\",\n  \"targetId\": \"<targetId>\",\n  \"maxChars\": 6000\n}\n```\n\n## Target Resolution\n\n- `--target-id` wins when present.\n- Otherwise filter existing tabs by all `--url-contains` values and no `--url-not-contains` values.\n- Zero matches is a clear no-match error.\n- Multiple matches requires user disambiguation.\n\n## Output\n\n- Tabs: profile, tab count, targetId, title, URL.\n- Snapshot: profile, targetId, matched URL, text snapshot or extracted content.\n\nFile v1.0.4:references/scripts.md\n\n# Scripts Workflow\n\nUse this reference when listing, showing, or running local App scripts/examples.\n\n## Commands\n\n```bash\nbash {baseDir}/scripts/run.sh scripts list\nbash {baseDir}/scripts/run.sh scripts list --format json\nbash {baseDir}/scripts/run.sh scripts show xiaohongshu.note.search.v1.json --format json\nbash {baseDir}/scripts/run.sh scripts run xiaohongshu.note.search.v1.json --input-json '{\"keyword\":\"美食探店\"}' --wait true --format json\n```\n\n## Runtime API\n\n- List/show scripts from `GET /examples/catalog`.\n- Run scripts through `POST /local/commands/send` with `target: \"script.run\"`.\n\nRun body:\n\n```json\n{\n  \"target\": \"script.run\",\n  \"payload\": {\n    \"name\": \"xiaohongshu.note.search.v1.json\",\n    \"inputOverrides\": {}\n  },\n  \"wait\": true,\n  \"leaseTtlMs\": 60000\n}\n```\n\n## Resolution\n\n- Run only exact script `name` matches.\n- Do not fuzzy-match script names for execution.\n- If no exact match exists, list candidate names from the current catalog.\n\n## Input\n\n- `--input-json` must be a JSON object.\n- Pass it as `inputOverrides`.\n- Do not invent required fields.\n- If Runtime or script reports missing input, surface the error clearly.\n\n## Output\n\n- List: script count, name, platform label, runner.\n- Show: manifest metadata and input schema.\n- Run: preserve `target`, `commandId`, `resultType`, `status`, and message.\n\nFile v1.0.4:references/triggers.md\n\n# Trigger Workflow\n\nUse this reference when listing, refreshing, or running App triggers.\n\n## Commands\n\n```bash\nbash {baseDir}/scripts/run.sh triggers list\nbash {baseDir}/scripts/run.sh triggers list --format json\nbash {baseDir}/scripts/run.sh triggers run --trigger-name \"小红书测试\"\nbash {baseDir}/scripts/run.sh triggers run --trigger-id trigger_xxx --input-json '{\"keyword\":\"AI employee\"}'\n```\n\nLegacy forms remain valid:\n\n```bash\nbash {baseDir}/scripts/run.sh --list-triggers\nbash {baseDir}/scripts/run.sh --trigger-name \"小红书测试\"\n```\n\n## Runtime API\n\n- Refresh catalog from `GET /trigger-services`.\n- Execute through `POST /local/commands/send`.\n- Command body:\n\n```json\n{\n  \"target\": \"trigger.execute\",\n  \"payload\": { \"triggerId\": \"trigger_xxx\", \"input\": {} },\n  \"wait\": true,\n  \"leaseTtlMs\": 60000\n}\n```\n\n## Resolution\n\n- Prefer exact `triggerName` for human requests.\n- Resolve exact cached trigger name first, then explicit `triggerId`.\n- Do not fuzzy-match names for execution.\n- If name resolution fails, include cached candidate names when available.\n\n## Snapshot\n\nCache only callable and available triggers:\n\n- `id`\n- `name`\n- `summary`\n- `status`\n- `callable`\n- `available`\n- `lastRunAt`\n- `updatedAt`\n\n## Output\n\n- Human list: count, names, status, useful summary.\n- JSON list: `mode`, `sourceMode`, `loadedAt`, `registryPath`, `triggerCount`, `triggers[]`.\n- Run result: `target`, `commandId`, `resultType`, final status, key result.\n\nFile v1.0.4:skill-card.md\n\n## Description:\n\nLocal Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or run Runtime triggers, inspect existing browser sandbox tabs/snapshots, or list/show/run local App scripts.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yiming1001](https://clawhub.ai/user/yiming1001)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to route local Runtime automation requests for trigger execution, read-only browser sandbox inspection, and local App script listing or execution.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill handles Runtime and cloud tokens and can send them to configurable URLs.\n\nMitigation: Use only trusted Runtime base URLs and stored preferences, avoid storing cloud tokens with the preference helper, and rotate any Runtime or cloud token that may have been used with an untrusted configured URL.\n\nRisk: Trigger and script execution can perform local Runtime automation with side effects.\n\nMitigation: Review commands before execution, use exact trigger or script names, and do not fuzzy-match execution targets.\n\nRisk: Browser sandbox inspection may expose content from already-open tabs.\n\nMitigation: Use the sandbox workflow only for read-only tab listing or snapshots of existing targets and avoid navigation, clicks, typing, or other browser state changes.\n\n## Reference(s):\n\n- [mx-auto Skill Page](https://clawhub.ai/yiming1001/skills/mx-auto)\n- [mx-auto Learning Guide](references/learning-guide.md)\n- [Sandbox Workflow](references/sandbox.md)\n- [Scripts Workflow](references/scripts.md)\n- [Trigger Workflow](references/triggers.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, JSON, Text]\n\n**Output Format:** [Markdown guidance with shell commands and text or JSON command output]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may include Runtime trigger lists, trigger run results, browser tab or snapshot summaries, script catalog entries, script run results, and clear failure messages.]\n\n## Skill Version(s):\n\n1.0.4 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.4:agents/openai.yaml\n\ninterface:\n  display_name: \"mx-auto\"\n  short_description: \"Run triggers, inspect sandbox tabs, and run local scripts\"\n  default_prompt: \"Use $mx-auto to list/run local Runtime triggers, inspect existing browser sandbox tabs/snapshots, or list/show/run local App scripts. Read the matching reference file only when that capability is needed.\"\n\nArchive v1.0.3: 9 files, 24835 bytes\n\nFiles: agents/openai.yaml (326b), references/learning-guide.md (3937b), scripts/cloud_dispatch_loop.sh (16651b), scripts/export_preference.sh (11123b), scripts/local_dispatch_loop.sh (5823b), scripts/preflight_check.sh (13325b), scripts/run.sh (20848b), SKILL.md (6587b), _meta.json (126b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: mx-auto\ndescription: Run App trigger services through local Runtime APIs with lightweight persistent defaults and cached callable trigger snapshots. Use when the workflow already exists as a trigger and should be listed or executed locally by cached trigger name or trigger id.\n---\n\n# mx-auto\n\nUse this skill when the user wants to:\n\n- view the currently available local triggers\n- execute an existing App trigger\n- save or inspect the mode/config defaults used for trigger execution\n- refresh or reuse the last callable trigger snapshot\n- drive the workflow from another agent that prefers stable structured inputs and outputs\n\nFor complex or ambiguous requests, read [references/learning-guide.md](references/learning-guide.md) before deciding what to ask or run.\n\n## Core Rules\n\n1. Keep the skill narrow. Support only `trigger.execute`.\n2. Current active mode is `local` only.\n3. Use direct Runtime HTTP APIs.\n4. The trigger execution command body is:\n   - `{ target: \"trigger.execute\", payload: { triggerId, input? }, wait, leaseTtlMs }`\n5. Ask only for missing local Runtime config or missing trigger identity.\n6. Prefer `triggerName` in normal usage because it is easier for humans to work with.\n7. If both `triggerName` and `triggerId` are present, resolve by exact cached trigger name first.\n8. If the name does not resolve, fall back to explicit `triggerId`.\n9. Refresh trigger snapshots from local Runtime when local access is available, instead of guessing trigger ids.\n10. Do not broaden this skill into `connector.collect` or `script.run`.\n11. Cloud files are kept only as reserved structure for later recovery. They are not active in this version.\n12. Prefer stable machine-readable output when another agent needs to parse trigger lists:\n   - `--list-format json`\n13. Default to auto-discovery before asking for anything:\n   - discover local Runtime base URL first\n   - when a user names a trigger, try running it with no `input` first\n   - ask only when auto-discovery fails or Runtime clearly says required input is missing\n13. Use the wrapper entry point:\n\n```bash\nbash {baseDir}/scripts/run.sh ...\n```\n\n## Persistent State\n\nPreferences file:\n\n`$OPENCLAW_STATE_DIR/skill-state/mx-auto/preferences.json`\n\nFallback:\n\n`$HOME/.openclaw/skill-state/mx-auto/preferences.json`\n\nHelper script:\n\n```bash\nbash {baseDir}/scripts/export_preference.sh show\nbash {baseDir}/scripts/export_preference.sh check\nbash {baseDir}/scripts/export_preference.sh apply-recommended\nbash {baseDir}/scripts/export_preference.sh set-key defaultConnectionMode local\nbash {baseDir}/scripts/export_preference.sh set-key defaultAppHome \"/Users/zhym/Library/Application Support/rpa-app-executor\"\nbash {baseDir}/scripts/export_preference.sh set-key defaultCloudDeviceId <device_id>\n```\n\nPersisted defaults:\n\n- `defaultConnectionMode`\n- `defaultAppHome`\n- `defaultLocalBaseUrl`\n- `defaultCloudBaseUrl`\n- `defaultCloudDispatchPath`\n- `defaultCloudCommandStatusPathTemplate`\n- `defaultCloudCommandListPath`\n- `defaultCloudDeviceId`\n- `defaultCloudToken`\n- `defaultWait`\n- `defaultLeaseTtlMs`\n- `defaultPollSec`\n- `defaultTimeoutSec`\n\nCached trigger snapshot:\n\n- `triggerSnapshot.loadedAt`\n- `triggerSnapshot.sourceMode`\n- `triggerSnapshot.registryPath`\n- `triggerSnapshot.services[]`\n\n## Defaults\n\nRecommended defaults:\n\n- `defaultConnectionMode=local`\n- `defaultAppHome=/Users/zhym/Library/Application Support/rpa-app-executor` on macOS\n- `defaultWait=true`\n- `defaultLeaseTtlMs=60000`\n- `defaultPollSec=3`\n- `defaultTimeoutSec=1200`\n\nLocal Runtime discovery order:\n\n1. `MX_APP_RUNTIME_BASE_URL`\n2. `RPA_RUNTIME_BASE_URL`\n3. stored `defaultLocalBaseUrl`\n4. standard Runtime ports: `8877`, `8878`, `8879`\n\n- Runtime app home discovery order:\n  1. `--app-home`\n  2. `MX_AUTO_APP_HOME`\n  3. `RPA_APP_HOME`\n  4. stored `defaultAppHome`\n  5. platform default app home\n- Store only `defaultAppHome`, never the Runtime admin token value.\n- Runtime admin token discovery order:\n  1. `MX_APP_RUNTIME_ADMIN_TOKEN`\n  2. `RPA_RUNTIME_ADMIN_TOKEN`\n  3. `{resolved app home}/runtime/admin-token.json`\n- App updates may rotate or recreate the admin token; this is expected. Re-read the token file at runtime instead of caching the token value.\n- Use `/local/status` for optional probing.\n- Load trigger catalogs from `/trigger-services`.\n- Dispatch only through `/local/commands/send`.\n\n## Trigger Resolution\n\nResolution order is fixed:\n\n1. exact cached trigger name match from `--trigger-name`\n2. `--trigger-id`\n3. fail with a clear message telling the user to refresh triggers locally, or provide `triggerId` if the name is not cached yet\n\n## Common Commands\n\nList currently available local triggers:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --list-triggers\n```\n\nList currently available local triggers for agent parsing:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --list-triggers --list-format json\n```\n\nRefresh trigger snapshot from local Runtime:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --refresh-triggers\n```\n\nRun by trigger id in local mode:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-id trigger_xxx\n```\n\nRun by cached trigger name in local mode:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-name \"小红书测试\"\n```\n\nRun with explicit business input only when the user intentionally overrides a trigger's built-in configuration:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-name \"小红书测试\" \\\n  --input-json '{\"keyword\":\"AI employee\"}'\n```\n\n## Final Reply\n\nWhen a human asks for listing, prefer a short human-readable trigger list:\n\n- trigger count\n- trigger names\n- status\n- summary only when it is actually useful\n\nWhen another agent needs the list, prefer structured JSON with:\n\n- `mode`\n- `sourceMode`\n- `loadedAt`\n- `registryPath`\n- `triggerCount`\n- `triggers[]`\n\nWhen execution succeeds, summarize:\n\n- mode\n- trigger identity\n- commandId when available\n- final status\n- the key result\n\nWhen the run fails, clearly distinguish:\n\n- local Runtime reachability or authorization problems\n- trigger list refresh failure\n- command execution failure\n\nUse this minimal user-facing guidance when local auto-discovery fails:\n\n“本地模式会先自动查找本地 Runtime。通常不需要手动配置。\n如果自动发现失败，优先检查：\n1. Runtime 是否正在本机运行\n2. Runtime 的本地配置是否已准备好\n3. 如果路径或端口不是默认值，再显式设置对应环境变量或运行参数”\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7e8rp9zay3je2bycn9zrmztx82hy57\",\n  \"slug\": \"mx-auto\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1779160121322\n}\n\nFile v1.0.3:references/learning-guide.md\n\n# mx-auto Learning Guide\n\nUse one trigger-oriented rule set:\n\n1. Normalize the user request into one local trigger list or trigger execution request.\n2. Current active mode is `local` only.\n3. Resolve config from per-run args, then environment, then stored preferences.\n4. Resolve trigger identity from cached exact trigger name first, then explicit `triggerId`.\n5. Dispatch only through the local Runtime path.\n6. For agent-to-agent usage, prefer explicit structured output over prose when a script supports it.\n\n## Asking Rules\n\nAsk only for values that are still missing after checking args, environment, and stored preferences.\n\nMissing values worth asking for:\n\n- local mode\n  - a reachable local Runtime setup when the Runtime URL cannot be discovered\n  - `triggerId` or `triggerName`\n\nDo not ask for values that are already present in:\n\n- `MX_AUTO_CONNECTION_MODE`\n- `MX_AUTO_LOCAL_BASE_URL`\n- `MX_AUTO_WAIT`\n- `MX_AUTO_LEASE_TTL_MS`\n- `MX_AUTO_POLL_SEC`\n- `MX_AUTO_TIMEOUT_SEC`\n- `MX_APP_RUNTIME_BASE_URL`\n- `RPA_RUNTIME_BASE_URL`\n- stored `triggerSnapshot`\n\nHard defaults for local mode:\n\n- do not proactively ask for port\n- do not proactively ask for keyword or `input`\n- first try auto-discovery\n- first try empty-input execution when a trigger is already named\n- ask follow-up questions only if auto-discovery fails or Runtime explicitly reports missing required input\n\n## Shared Flow\n\n1. Run `scripts/preflight_check.sh`\n2. Persist user-facing defaults when this turn provides them\n3. If listing triggers, refresh `triggerSnapshot` from `/trigger-services` and return a human-readable list\n   - for agent parsing, use `--list-format json`\n4. If executing a trigger, refresh `triggerSnapshot` from local Runtime when local access is available and the request benefits from it\n5. Resolve `triggerId`\n6. Build the command:\n   - `{ target: \"trigger.execute\", payload: { triggerId, input? }, wait, leaseTtlMs }`\n7. Dispatch through `scripts/local_dispatch_loop.sh`\n8. When the user did not provide explicit business input, try the trigger with no `payload.input` first\n9. Only ask for business fields after a clear missing-input failure from Runtime or from the trigger itself\n\n## Trigger Payload\n\nMinimum payload:\n\n```json\n{\n  \"triggerId\": \"trigger_xxx\"\n}\n```\n\nInput handling:\n\n- If the user supplies structured business input, pass it as `payload.input`.\n- `payload.input` must be a JSON object when present.\n- Do not invent extra fields.\n\n## Trigger Snapshot Rules\n\nWhen refreshing from `/trigger-services`:\n\n- cache only stable fields used for later selection\n- cache only callable and available trigger services\n- keep:\n  - `id`\n  - `name`\n  - `summary`\n  - `status`\n  - `callable`\n  - `available`\n  - `lastRunAt`\n  - `updatedAt`\n\nWhen resolving by `triggerName`:\n\n- require exact match\n- if the cache is missing or stale, tell the user to refresh triggers locally\n- do not fuzzy-match and risk running the wrong trigger\n- when exact match fails, include the cached candidate names in the error when possible\n\nWhen listing triggers:\n\n- default to a human-readable list\n- show:\n  - name\n  - status\n  - summary only when it is human-meaningful\n- do not default to raw JSON\n- when another agent needs deterministic parsing, use JSON output with:\n  - `mode`\n  - `sourceMode`\n  - `loadedAt`\n  - `registryPath`\n  - `triggerCount`\n  - `triggers[]`\n\n## Failure Framing\n\nLocal mode failures should say whether the problem is:\n\n1. Runtime unavailable\n2. Runtime unauthorized\n3. trigger resolution/cache miss\n4. trigger execution failure\n\nUse this minimal failure guidance:\n\n- Runtime unavailable\n  - tell the user to check whether the local Runtime is running\n- Runtime unauthorized or local auth/config mismatch\n  - tell the user to check local Runtime permissions or local Runtime configuration\n\nCloud-related files are reserved only. If the user explicitly tries cloud mode in this version, say it is reserved and not enabled yet.\n\nFile v1.0.3:agents/openai.yaml\n\ninterface:\n  display_name: \"mx-auto\"\n  short_description: \"List and run local App triggers with cached snapshots\"\n  default_prompt: \"Use $mx-auto to list local triggers or execute an existing local App trigger. Prefer trigger names for execution and use --list-format json when another agent needs a structured trigger list.\"\n\nArchive v1.0.2: 9 files, 23833 bytes\n\nFiles: agents/openai.yaml (326b), references/learning-guide.md (3937b), scripts/cloud_dispatch_loop.sh (16651b), scripts/export_preference.sh (10379b), scripts/local_dispatch_loop.sh (5823b), scripts/preflight_check.sh (12195b), scripts/run.sh (19797b), SKILL.md (5833b), _meta.json (126b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: mx-auto\ndescription: Run App trigger services through local Runtime APIs with lightweight persistent defaults and cached callable trigger snapshots. Use when the workflow already exists as a trigger and should be listed or executed locally by cached trigger name or trigger id.\n---\n\n# mx-auto\n\nUse this skill when the user wants to:\n\n- view the currently available local triggers\n- execute an existing App trigger\n- save or inspect the mode/config defaults used for trigger execution\n- refresh or reuse the last callable trigger snapshot\n- drive the workflow from another agent that prefers stable structured inputs and outputs\n\nFor complex or ambiguous requests, read [references/learning-guide.md](references/learning-guide.md) before deciding what to ask or run.\n\n## Core Rules\n\n1. Keep the skill narrow. Support only `trigger.execute`.\n2. Current active mode is `local` only.\n3. Use direct Runtime HTTP APIs.\n4. The trigger execution command body is:\n   - `{ target: \"trigger.execute\", payload: { triggerId, input? }, wait, leaseTtlMs }`\n5. Ask only for missing local Runtime config or missing trigger identity.\n6. Prefer `triggerName` in normal usage because it is easier for humans to work with.\n7. If both `triggerName` and `triggerId` are present, resolve by exact cached trigger name first.\n8. If the name does not resolve, fall back to explicit `triggerId`.\n9. Refresh trigger snapshots from local Runtime when local access is available, instead of guessing trigger ids.\n10. Do not broaden this skill into `connector.collect` or `script.run`.\n11. Cloud files are kept only as reserved structure for later recovery. They are not active in this version.\n12. Prefer stable machine-readable output when another agent needs to parse trigger lists:\n   - `--list-format json`\n13. Default to auto-discovery before asking for anything:\n   - discover local Runtime base URL first\n   - when a user names a trigger, try running it with no `input` first\n   - ask only when auto-discovery fails or Runtime clearly says required input is missing\n13. Use the wrapper entry point:\n\n```bash\nbash {baseDir}/scripts/run.sh ...\n```\n\n## Persistent State\n\nPreferences file:\n\n`$OPENCLAW_STATE_DIR/skill-state/mx-auto/preferences.json`\n\nFallback:\n\n`$HOME/.openclaw/skill-state/mx-auto/preferences.json`\n\nHelper script:\n\n```bash\nbash {baseDir}/scripts/export_preference.sh show\nbash {baseDir}/scripts/export_preference.sh check\nbash {baseDir}/scripts/export_preference.sh apply-recommended\nbash {baseDir}/scripts/export_preference.sh set-key defaultConnectionMode local\nbash {baseDir}/scripts/export_preference.sh set-key defaultCloudDeviceId <device_id>\n```\n\nPersisted defaults:\n\n- `defaultConnectionMode`\n- `defaultLocalBaseUrl`\n- `defaultCloudBaseUrl`\n- `defaultCloudDispatchPath`\n- `defaultCloudCommandStatusPathTemplate`\n- `defaultCloudCommandListPath`\n- `defaultCloudDeviceId`\n- `defaultCloudToken`\n- `defaultWait`\n- `defaultLeaseTtlMs`\n- `defaultPollSec`\n- `defaultTimeoutSec`\n\nCached trigger snapshot:\n\n- `triggerSnapshot.loadedAt`\n- `triggerSnapshot.sourceMode`\n- `triggerSnapshot.registryPath`\n- `triggerSnapshot.services[]`\n\n## Defaults\n\nRecommended defaults:\n\n- `defaultConnectionMode=local`\n- `defaultWait=true`\n- `defaultLeaseTtlMs=60000`\n- `defaultPollSec=3`\n- `defaultTimeoutSec=1200`\n\nLocal Runtime discovery order:\n\n1. `MX_APP_RUNTIME_BASE_URL`\n2. `RPA_RUNTIME_BASE_URL`\n3. stored `defaultLocalBaseUrl`\n4. standard Runtime ports: `8877`, `8878`, `8879`\n\n- Use `/local/status` for optional probing.\n- Load trigger catalogs from `/trigger-services`.\n- Dispatch only through `/local/commands/send`.\n\n## Trigger Resolution\n\nResolution order is fixed:\n\n1. exact cached trigger name match from `--trigger-name`\n2. `--trigger-id`\n3. fail with a clear message telling the user to refresh triggers locally, or provide `triggerId` if the name is not cached yet\n\n## Common Commands\n\nList currently available local triggers:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --list-triggers\n```\n\nList currently available local triggers for agent parsing:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --list-triggers --list-format json\n```\n\nRefresh trigger snapshot from local Runtime:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --refresh-triggers\n```\n\nRun by trigger id in local mode:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-id trigger_xxx\n```\n\nRun by cached trigger name in local mode:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-name \"小红书测试\"\n```\n\nRun with explicit business input only when the user intentionally overrides a trigger's built-in configuration:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-name \"小红书测试\" \\\n  --input-json '{\"keyword\":\"AI employee\"}'\n```\n\n## Final Reply\n\nWhen a human asks for listing, prefer a short human-readable trigger list:\n\n- trigger count\n- trigger names\n- status\n- summary only when it is actually useful\n\nWhen another agent needs the list, prefer structured JSON with:\n\n- `mode`\n- `sourceMode`\n- `loadedAt`\n- `registryPath`\n- `triggerCount`\n- `triggers[]`\n\nWhen execution succeeds, summarize:\n\n- mode\n- trigger identity\n- commandId when available\n- final status\n- the key result\n\nWhen the run fails, clearly distinguish:\n\n- local Runtime reachability or authorization problems\n- trigger list refresh failure\n- command execution failure\n\nUse this minimal user-facing guidance when local auto-discovery fails:\n\n“本地模式会先自动查找本地 Runtime。通常不需要手动配置。\n如果自动发现失败，优先检查：\n1. Runtime 是否正在本机运行\n2. Runtime 的本地配置是否已准备好\n3. 如果路径或端口不是默认值，再显式设置对应环境变量或运行参数”\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7e8rp9zay3je2bycn9zrmztx82hy57\",\n  \"slug\": \"mx-auto\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1778241236750\n}\n\nFile v1.0.2:references/learning-guide.md\n\n# mx-auto Learning Guide\n\nUse one trigger-oriented rule set:\n\n1. Normalize the user request into one local trigger list or trigger execution request.\n2. Current active mode is `local` only.\n3. Resolve config from per-run args, then environment, then stored preferences.\n4. Resolve trigger identity from cached exact trigger name first, then explicit `triggerId`.\n5. Dispatch only through the local Runtime path.\n6. For agent-to-agent usage, prefer explicit structured output over prose when a script supports it.\n\n## Asking Rules\n\nAsk only for values that are still missing after checking args, environment, and stored preferences.\n\nMissing values worth asking for:\n\n- local mode\n  - a reachable local Runtime setup when the Runtime URL cannot be discovered\n  - `triggerId` or `triggerName`\n\nDo not ask for values that are already present in:\n\n- `MX_AUTO_CONNECTION_MODE`\n- `MX_AUTO_LOCAL_BASE_URL`\n- `MX_AUTO_WAIT`\n- `MX_AUTO_LEASE_TTL_MS`\n- `MX_AUTO_POLL_SEC`\n- `MX_AUTO_TIMEOUT_SEC`\n- `MX_APP_RUNTIME_BASE_URL`\n- `RPA_RUNTIME_BASE_URL`\n- stored `triggerSnapshot`\n\nHard defaults for local mode:\n\n- do not proactively ask for port\n- do not proactively ask for keyword or `input`\n- first try auto-discovery\n- first try empty-input execution when a trigger is already named\n- ask follow-up questions only if auto-discovery fails or Runtime explicitly reports missing required input\n\n## Shared Flow\n\n1. Run `scripts/preflight_check.sh`\n2. Persist user-facing defaults when this turn provides them\n3. If listing triggers, refresh `triggerSnapshot` from `/trigger-services` and return a human-readable list\n   - for agent parsing, use `--list-format json`\n4. If executing a trigger, refresh `triggerSnapshot` from local Runtime when local access is available and the request benefits from it\n5. Resolve `triggerId`\n6. Build the command:\n   - `{ target: \"trigger.execute\", payload: { triggerId, input? }, wait, leaseTtlMs }`\n7. Dispatch through `scripts/local_dispatch_loop.sh`\n8. When the user did not provide explicit business input, try the trigger with no `payload.input` first\n9. Only ask for business fields after a clear missing-input failure from Runtime or from the trigger itself\n\n## Trigger Payload\n\nMinimum payload:\n\n```json\n{\n  \"triggerId\": \"trigger_xxx\"\n}\n```\n\nInput handling:\n\n- If the user supplies structured business input, pass it as `payload.input`.\n- `payload.input` must be a JSON object when present.\n- Do not invent extra fields.\n\n## Trigger Snapshot Rules\n\nWhen refreshing from `/trigger-services`:\n\n- cache only stable fields used for later selection\n- cache only callable and available trigger services\n- keep:\n  - `id`\n  - `name`\n  - `summary`\n  - `status`\n  - `callable`\n  - `available`\n  - `lastRunAt`\n  - `updatedAt`\n\nWhen resolving by `triggerName`:\n\n- require exact match\n- if the cache is missing or stale, tell the user to refresh triggers locally\n- do not fuzzy-match and risk running the wrong trigger\n- when exact match fails, include the cached candidate names in the error when possible\n\nWhen listing triggers:\n\n- default to a human-readable list\n- show:\n  - name\n  - status\n  - summary only when it is human-meaningful\n- do not default to raw JSON\n- when another agent needs deterministic parsing, use JSON output with:\n  - `mode`\n  - `sourceMode`\n  - `loadedAt`\n  - `registryPath`\n  - `triggerCount`\n  - `triggers[]`\n\n## Failure Framing\n\nLocal mode failures should say whether the problem is:\n\n1. Runtime unavailable\n2. Runtime unauthorized\n3. trigger resolution/cache miss\n4. trigger execution failure\n\nUse this minimal failure guidance:\n\n- Runtime unavailable\n  - tell the user to check whether the local Runtime is running\n- Runtime unauthorized or local auth/config mismatch\n  - tell the user to check local Runtime permissions or local Runtime configuration\n\nCloud-related files are reserved only. If the user explicitly tries cloud mode in this version, say it is reserved and not enabled yet.\n\nFile v1.0.2:agents/openai.yaml\n\ninterface:\n  display_name: \"mx-auto\"\n  short_description: \"List and run local App triggers with cached snapshots\"\n  default_prompt: \"Use $mx-auto to list local triggers or execute an existing local App trigger. Prefer trigger names for execution and use --list-format json when another agent needs a structured trigger list.\"\n\nArchive v1.0.1: 9 files, 24069 bytes\n\nFiles: agents/openai.yaml (326b), references/learning-guide.md (4146b), scripts/cloud_dispatch_loop.sh (16651b), scripts/export_preference.sh (10379b), scripts/local_dispatch_loop.sh (5823b), scripts/preflight_check.sh (12195b), scripts/run.sh (19938b), SKILL.md (6475b), _meta.json (126b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: mx-auto\ndescription: Run App trigger services through local Runtime APIs with lightweight persistent defaults and cached callable trigger snapshots. Use when the workflow already exists as a trigger and should be listed or executed locally by cached trigger name or trigger id.\n---\n\n# mx-auto\n\nUse this skill when the user wants to:\n\n- view the currently available local triggers\n- execute an existing App trigger\n- save or inspect the mode/config defaults used for trigger execution\n- refresh or reuse the last callable trigger snapshot\n- drive the workflow from another agent that prefers stable structured inputs and outputs\n\nFor complex or ambiguous requests, read [references/learning-guide.md](references/learning-guide.md) before deciding what to ask or run.\n\n## Core Rules\n\n1. Keep the skill narrow. Support only `trigger.execute`.\n2. Current active mode is `local` only.\n3. Use direct Runtime HTTP APIs.\n4. The trigger execution command body is:\n   - `{ target: \"trigger.execute\", payload: { triggerId, input? }, wait, leaseTtlMs }`\n5. Ask only for missing local Runtime config or missing trigger identity.\n6. Prefer `triggerName` in normal usage because it is easier for humans to work with.\n7. If both `triggerName` and `triggerId` are present, resolve by exact cached trigger name first.\n8. If the name does not resolve, fall back to explicit `triggerId`.\n9. Refresh trigger snapshots from local Runtime when local access is available, instead of guessing trigger ids.\n10. Do not broaden this skill into `connector.collect` or `script.run`.\n11. Cloud files are kept only as reserved structure for later recovery. They are not active in this version.\n12. Prefer stable machine-readable output when another agent needs to parse trigger lists:\n   - `--list-format json`\n13. Default to auto-discovery before asking for anything:\n   - discover local Runtime base URL first\n   - discover Runtime admin token first\n   - when a user names a trigger, try running it with no `input` first\n   - ask only when auto-discovery fails or Runtime clearly says required input is missing\n13. Use the wrapper entry point:\n\n```bash\nbash {baseDir}/scripts/run.sh ...\n```\n\n## Persistent State\n\nPreferences file:\n\n`$OPENCLAW_STATE_DIR/skill-state/mx-auto/preferences.json`\n\nFallback:\n\n`$HOME/.openclaw/skill-state/mx-auto/preferences.json`\n\nHelper script:\n\n```bash\nbash {baseDir}/scripts/export_preference.sh show\nbash {baseDir}/scripts/export_preference.sh check\nbash {baseDir}/scripts/export_preference.sh apply-recommended\nbash {baseDir}/scripts/export_preference.sh set-key defaultConnectionMode local\nbash {baseDir}/scripts/export_preference.sh set-key defaultCloudDeviceId <device_id>\nbash {baseDir}/scripts/export_preference.sh set-key defaultCloudToken <token>\n```\n\nPersisted defaults:\n\n- `defaultConnectionMode`\n- `defaultLocalBaseUrl`\n- `defaultCloudBaseUrl`\n- `defaultCloudDispatchPath`\n- `defaultCloudCommandStatusPathTemplate`\n- `defaultCloudCommandListPath`\n- `defaultCloudDeviceId`\n- `defaultCloudToken`\n- `defaultWait`\n- `defaultLeaseTtlMs`\n- `defaultPollSec`\n- `defaultTimeoutSec`\n\nCached trigger snapshot:\n\n- `triggerSnapshot.loadedAt`\n- `triggerSnapshot.sourceMode`\n- `triggerSnapshot.registryPath`\n- `triggerSnapshot.services[]`\n\n## Defaults\n\nRecommended defaults:\n\n- `defaultConnectionMode=local`\n- `defaultWait=true`\n- `defaultLeaseTtlMs=60000`\n- `defaultPollSec=3`\n- `defaultTimeoutSec=1200`\n\nLocal Runtime discovery order:\n\n1. `MX_APP_RUNTIME_BASE_URL`\n2. `RPA_RUNTIME_BASE_URL`\n3. stored `defaultLocalBaseUrl`\n4. standard Runtime ports: `8877`, `8878`, `8879`\n\nRuntime admin token discovery order:\n\n1. `MX_APP_RUNTIME_ADMIN_TOKEN`\n2. `RPA_RUNTIME_ADMIN_TOKEN`\n3. `RPA_APP_HOME/runtime/admin-token.json`\n4. `--app-home/runtime/admin-token.json`\n\n- Local mode usually needs no manual token setup if Runtime is already running.\n- If auto-discovery fails, first check whether `RPA_APP_HOME/runtime/admin-token.json` exists.\n- Only if the Runtime state path is non-standard, set `RPA_APP_HOME` or `MX_APP_RUNTIME_ADMIN_TOKEN`.\n- Use `/local/status` for optional probing.\n- Load trigger catalogs from `/trigger-services`.\n- Dispatch only through `/local/commands/send`.\n- Authorize with the Runtime admin token.\n\n## Trigger Resolution\n\nResolution order is fixed:\n\n1. exact cached trigger name match from `--trigger-name`\n2. `--trigger-id`\n3. fail with a clear message telling the user to refresh triggers locally, or provide `triggerId` if the name is not cached yet\n\n## Common Commands\n\nList currently available local triggers:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --list-triggers\n```\n\nList currently available local triggers for agent parsing:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --list-triggers --list-format json\n```\n\nRefresh trigger snapshot from local Runtime:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --refresh-triggers\n```\n\nRun by trigger id in local mode:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-id trigger_xxx\n```\n\nRun by cached trigger name in local mode:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-name \"小红书测试\"\n```\n\nRun with explicit business input only when the user intentionally overrides a trigger's built-in configuration:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-name \"小红书测试\" \\\n  --input-json '{\"keyword\":\"AI employee\"}'\n```\n\n## Final Reply\n\nWhen a human asks for listing, prefer a short human-readable trigger list:\n\n- trigger count\n- trigger names\n- status\n- summary only when it is actually useful\n\nWhen another agent needs the list, prefer structured JSON with:\n\n- `mode`\n- `sourceMode`\n- `loadedAt`\n- `registryPath`\n- `triggerCount`\n- `triggers[]`\n\nWhen execution succeeds, summarize:\n\n- mode\n- trigger identity\n- commandId when available\n- final status\n- the key result\n\nWhen the run fails, clearly distinguish:\n\n- local Runtime reachability or authorization problems\n- trigger list refresh failure\n- command execution failure\n\nUse this minimal user-facing guidance when local auto-discovery fails:\n\n“本地模式会先自动查找 Runtime 和 admin token。通常不需要手动配置。\n如果自动发现失败，优先检查：\n1. Runtime 是否正在本机运行\n2. `RPA_APP_HOME/runtime/admin-token.json` 是否存在\n3. 如果路径不标准，再显式设置 `RPA_APP_HOME` 或 `MX_APP_RUNTIME_ADMIN_TOKEN`”\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7e8rp9zay3je2bycn9zrmztx82hy57\",\n  \"slug\": \"mx-auto\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1778071788091\n}\n\nFile v1.0.1:references/learning-guide.md\n\n# mx-auto Learning Guide\n\nUse one trigger-oriented rule set:\n\n1. Normalize the user request into one local trigger list or trigger execution request.\n2. Current active mode is `local` only.\n3. Resolve config from per-run args, then environment, then stored preferences.\n4. Resolve trigger identity from cached exact trigger name first, then explicit `triggerId`.\n5. Dispatch only through the local Runtime path.\n6. For agent-to-agent usage, prefer explicit structured output over prose when a script supports it.\n\n## Asking Rules\n\nAsk only for values that are still missing after checking args, environment, and stored preferences.\n\nMissing values worth asking for:\n\n- local mode\n  - a reachable local Runtime setup when the Runtime admin token or Runtime URL cannot be discovered\n  - `triggerId` or `triggerName`\n\nDo not ask for values that are already present in:\n\n- `MX_AUTO_CONNECTION_MODE`\n- `MX_AUTO_LOCAL_BASE_URL`\n- `MX_AUTO_WAIT`\n- `MX_AUTO_LEASE_TTL_MS`\n- `MX_AUTO_POLL_SEC`\n- `MX_AUTO_TIMEOUT_SEC`\n- `MX_APP_RUNTIME_BASE_URL`\n- `RPA_RUNTIME_BASE_URL`\n- `MX_APP_RUNTIME_ADMIN_TOKEN`\n- `RPA_RUNTIME_ADMIN_TOKEN`\n- stored `triggerSnapshot`\n\nHard defaults for local mode:\n\n- do not proactively ask for token\n- do not proactively ask for port\n- do not proactively ask for keyword or `input`\n- first try auto-discovery\n- first try empty-input execution when a trigger is already named\n- ask follow-up questions only if auto-discovery fails or Runtime explicitly reports missing required input\n\n## Shared Flow\n\n1. Run `scripts/preflight_check.sh`\n2. Persist user-facing defaults when this turn provides them\n3. If listing triggers, refresh `triggerSnapshot` from `/trigger-services` and return a human-readable list\n   - for agent parsing, use `--list-format json`\n4. If executing a trigger, refresh `triggerSnapshot` from local Runtime when local access is available and the request benefits from it\n5. Resolve `triggerId`\n6. Build the command:\n   - `{ target: \"trigger.execute\", payload: { triggerId, input? }, wait, leaseTtlMs }`\n7. Dispatch through `scripts/local_dispatch_loop.sh`\n8. When the user did not provide explicit business input, try the trigger with no `payload.input` first\n9. Only ask for business fields after a clear missing-input failure from Runtime or from the trigger itself\n\n## Trigger Payload\n\nMinimum payload:\n\n```json\n{\n  \"triggerId\": \"trigger_xxx\"\n}\n```\n\nInput handling:\n\n- If the user supplies structured business input, pass it as `payload.input`.\n- `payload.input` must be a JSON object when present.\n- Do not invent extra fields.\n\n## Trigger Snapshot Rules\n\nWhen refreshing from `/trigger-services`:\n\n- cache only stable fields used for later selection\n- cache only callable and available trigger services\n- keep:\n  - `id`\n  - `name`\n  - `summary`\n  - `status`\n  - `callable`\n  - `available`\n  - `lastRunAt`\n  - `updatedAt`\n\nWhen resolving by `triggerName`:\n\n- require exact match\n- if the cache is missing or stale, tell the user to refresh triggers locally\n- do not fuzzy-match and risk running the wrong trigger\n- when exact match fails, include the cached candidate names in the error when possible\n\nWhen listing triggers:\n\n- default to a human-readable list\n- show:\n  - name\n  - status\n  - summary only when it is human-meaningful\n- do not default to raw JSON\n- when another agent needs deterministic parsing, use JSON output with:\n  - `mode`\n  - `sourceMode`\n  - `loadedAt`\n  - `registryPath`\n  - `triggerCount`\n  - `triggers[]`\n\n## Failure Framing\n\nLocal mode failures should say whether the problem is:\n\n1. Runtime unavailable\n2. Runtime unauthorized\n3. trigger resolution/cache miss\n4. trigger execution failure\n\nUse this minimal failure guidance:\n\n- Runtime unavailable\n  - tell the user to check whether the local Runtime is running\n- Runtime admin token missing\n  - tell the user to check `RPA_APP_HOME/runtime/admin-token.json`\n- Runtime unauthorized with an existing token\n  - tell the user the token may be expired or belong to a different Runtime state dir\n\nCloud-related files are reserved only. If the user explicitly tries cloud mode in this version, say it is reserved and not enabled yet.\n\nFile v1.0.1:agents/openai.yaml\n\ninterface:\n  display_name: \"mx-auto\"\n  short_description: \"List and run local App triggers with cached snapshots\"\n  default_prompt: \"Use $mx-auto to list local triggers or execute an existing local App trigger. Prefer trigger names for execution and use --list-format json when another agent needs a structured trigger list.\"\n\nArchive v1.0.0: 9 files, 22271 bytes\n\nFiles: agents/openai.yaml (326b), references/learning-guide.md (3199b), scripts/cloud_dispatch_loop.sh (16651b), scripts/export_preference.sh (10379b), scripts/local_dispatch_loop.sh (5823b), scripts/preflight_check.sh (12195b), scripts/run.sh (17716b), SKILL.md (5295b), _meta.json (126b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: mx-auto\ndescription: Run App trigger services through local Runtime APIs with lightweight persistent defaults and cached callable trigger snapshots. Use when the workflow already exists as a trigger and should be listed or executed locally by cached trigger name or trigger id.\n---\n\n# mx-auto\n\nUse this skill when the user wants to:\n\n- view the currently available local triggers\n- execute an existing App trigger\n- save or inspect the mode/config defaults used for trigger execution\n- refresh or reuse the last callable trigger snapshot\n- drive the workflow from another agent that prefers stable structured inputs and outputs\n\nFor complex or ambiguous requests, read [references/learning-guide.md](references/learning-guide.md) before deciding what to ask or run.\n\n## Core Rules\n\n1. Keep the skill narrow. Support only `trigger.execute`.\n2. Current active mode is `local` only.\n3. Use direct Runtime HTTP APIs.\n4. The trigger execution command body is:\n   - `{ target: \"trigger.execute\", payload: { triggerId, input? }, wait, leaseTtlMs }`\n5. Ask only for missing local Runtime config or missing trigger identity.\n6. Prefer `triggerName` in normal usage because it is easier for humans to work with.\n7. If both `triggerName` and `triggerId` are present, resolve by exact cached trigger name first.\n8. If the name does not resolve, fall back to explicit `triggerId`.\n9. Refresh trigger snapshots from local Runtime when local access is available, instead of guessing trigger ids.\n10. Do not broaden this skill into `connector.collect` or `script.run`.\n11. Cloud files are kept only as reserved structure for later recovery. They are not active in this version.\n12. Prefer stable machine-readable output when another agent needs to parse trigger lists:\n   - `--list-format json`\n13. Use the wrapper entry point:\n\n```bash\nbash {baseDir}/scripts/run.sh ...\n```\n\n## Persistent State\n\nPreferences file:\n\n`$OPENCLAW_STATE_DIR/skill-state/mx-auto/preferences.json`\n\nFallback:\n\n`$HOME/.openclaw/skill-state/mx-auto/preferences.json`\n\nHelper script:\n\n```bash\nbash {baseDir}/scripts/export_preference.sh show\nbash {baseDir}/scripts/export_preference.sh check\nbash {baseDir}/scripts/export_preference.sh apply-recommended\nbash {baseDir}/scripts/export_preference.sh set-key defaultConnectionMode local\nbash {baseDir}/scripts/export_preference.sh set-key defaultCloudDeviceId <device_id>\nbash {baseDir}/scripts/export_preference.sh set-key defaultCloudToken <token>\n```\n\nPersisted defaults:\n\n- `defaultConnectionMode`\n- `defaultLocalBaseUrl`\n- `defaultCloudBaseUrl`\n- `defaultCloudDispatchPath`\n- `defaultCloudCommandStatusPathTemplate`\n- `defaultCloudCommandListPath`\n- `defaultCloudDeviceId`\n- `defaultCloudToken`\n- `defaultWait`\n- `defaultLeaseTtlMs`\n- `defaultPollSec`\n- `defaultTimeoutSec`\n\nCached trigger snapshot:\n\n- `triggerSnapshot.loadedAt`\n- `triggerSnapshot.sourceMode`\n- `triggerSnapshot.registryPath`\n- `triggerSnapshot.services[]`\n\n## Defaults\n\nRecommended defaults:\n\n- `defaultConnectionMode=local`\n- `defaultWait=true`\n- `defaultLeaseTtlMs=60000`\n- `defaultPollSec=3`\n- `defaultTimeoutSec=1200`\n\nLocal Runtime discovery order:\n\n1. `MX_APP_RUNTIME_BASE_URL`\n2. `RPA_RUNTIME_BASE_URL`\n3. stored `defaultLocalBaseUrl`\n4. standard Runtime ports: `8877`, `8878`, `8879`\n\nRuntime admin token discovery order:\n\n1. `MX_APP_RUNTIME_ADMIN_TOKEN`\n2. `RPA_RUNTIME_ADMIN_TOKEN`\n3. `RPA_APP_HOME/runtime/admin-token.json`\n4. `--app-home/runtime/admin-token.json`\n\n- Use `/local/status` for optional probing.\n- Load trigger catalogs from `/trigger-services`.\n- Dispatch only through `/local/commands/send`.\n- Authorize with the Runtime admin token.\n\n## Trigger Resolution\n\nResolution order is fixed:\n\n1. exact cached trigger name match from `--trigger-name`\n2. `--trigger-id`\n3. fail with a clear message telling the user to refresh triggers locally, or provide `triggerId` if the name is not cached yet\n\n## Common Commands\n\nList currently available local triggers:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --list-triggers\n```\n\nList currently available local triggers for agent parsing:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --list-triggers --list-format json\n```\n\nRefresh trigger snapshot from local Runtime:\n\n```bash\nbash {baseDir}/scripts/run.sh --connection-mode local --refresh-triggers\n```\n\nRun by trigger id in local mode:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-id trigger_xxx \\\n  --input-json '{\"keyword\":\"AI employee\"}'\n```\n\nRun by cached trigger name in local mode:\n\n```bash\nbash {baseDir}/scripts/run.sh \\\n  --connection-mode local \\\n  --trigger-name \"小红书测试\" \\\n  --input-json '{\"keyword\":\"AI employee\"}'\n```\n\n## Final Reply\n\nWhen a human asks for listing, prefer a short human-readable trigger list:\n\n- trigger count\n- trigger names\n- status\n- summary\n\nWhen another agent needs the list, prefer structured JSON with:\n\n- `mode`\n- `sourceMode`\n- `loadedAt`\n- `registryPath`\n- `triggerCount`\n- `triggers[]`\n\nWhen execution succeeds, summarize:\n\n- mode\n- trigger identity\n- commandId when available\n- final status\n- the key result\n\nWhen the run fails, clearly distinguish:\n\n- local Runtime reachability or authorization problems\n- trigger list refresh failure\n- command execution failure\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7e8rp9zay3je2bycn9zrmztx82hy57\",\n  \"slug\": \"mx-auto\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1777607489140\n}\n\nFile v1.0.0:references/learning-guide.md\n\n# mx-auto Learning Guide\n\nUse one trigger-oriented rule set:\n\n1. Normalize the user request into one local trigger list or trigger execution request.\n2. Current active mode is `local` only.\n3. Resolve config from per-run args, then environment, then stored preferences.\n4. Resolve trigger identity from cached exact trigger name first, then explicit `triggerId`.\n5. Dispatch only through the local Runtime path.\n6. For agent-to-agent usage, prefer explicit structured output over prose when a script supports it.\n\n## Asking Rules\n\nAsk only for values that are still missing after checking args, environment, and stored preferences.\n\nMissing values worth asking for:\n\n- local mode\n  - a reachable local Runtime setup when the Runtime admin token or Runtime URL cannot be discovered\n  - `triggerId` or `triggerName`\n\nDo not ask for values that are already present in:\n\n- `MX_AUTO_CONNECTION_MODE`\n- `MX_AUTO_LOCAL_BASE_URL`\n- `MX_AUTO_WAIT`\n- `MX_AUTO_LEASE_TTL_MS`\n- `MX_AUTO_POLL_SEC`\n- `MX_AUTO_TIMEOUT_SEC`\n- `MX_APP_RUNTIME_BASE_URL`\n- `RPA_RUNTIME_BASE_URL`\n- `MX_APP_RUNTIME_ADMIN_TOKEN`\n- `RPA_RUNTIME_ADMIN_TOKEN`\n- stored `triggerSnapshot`\n\n## Shared Flow\n\n1. Run `scripts/preflight_check.sh`\n2. Persist user-facing defaults when this turn provides them\n3. If listing triggers, refresh `triggerSnapshot` from `/trigger-services` and return a human-readable list\n   - for agent parsing, use `--list-format json`\n4. If executing a trigger, refresh `triggerSnapshot` from local Runtime when local access is available and the request benefits from it\n5. Resolve `triggerId`\n6. Build the command:\n   - `{ target: \"trigger.execute\", payload: { triggerId, input? }, wait, leaseTtlMs }`\n7. Dispatch through `scripts/local_dispatch_loop.sh`\n\n## Trigger Payload\n\nMinimum payload:\n\n```json\n{\n  \"triggerId\": \"trigger_xxx\"\n}\n```\n\nInput handling:\n\n- If the user supplies structured business input, pass it as `payload.input`.\n- `payload.input` must be a JSON object when present.\n- Do not invent extra fields.\n\n## Trigger Snapshot Rules\n\nWhen refreshing from `/trigger-services`:\n\n- cache only stable fields used for later selection\n- cache only callable and available trigger services\n- keep:\n  - `id`\n  - `name`\n  - `summary`\n  - `status`\n  - `callable`\n  - `available`\n  - `lastRunAt`\n  - `updatedAt`\n\nWhen resolving by `triggerName`:\n\n- require exact match\n- if the cache is missing or stale, tell the user to refresh triggers locally\n- do not fuzzy-match and risk running the wrong trigger\n- when exact match fails, include the cached candidate names in the error when possible\n\nWhen listing triggers:\n\n- default to a human-readable list\n- show:\n  - name\n  - status\n  - summary\n- do not default to raw JSON\n- when another agent needs deterministic parsing, use JSON output with:\n  - `mode`\n  - `sourceMode`\n  - `loadedAt`\n  - `registryPath`\n  - `triggerCount`\n  - `triggers[]`\n\n## Failure Framing\n\nLocal mode failures should say whether the problem is:\n\n1. Runtime unavailable\n2. Runtime unauthorized\n3. trigger resolution/cache miss\n4. trigger execution failure\n\nCloud-related files are reserved only. If the user explicitly tries cloud mode in this version, say it is reserved and not enabled yet.\n\nFile v1.0.0:agents/openai.yaml\n\ninterface:\n  display_name: \"mx-auto\"\n  short_description: \"List and run local App triggers with cached snapshots\"\n  default_prompt: \"Use $mx-auto to list local triggers or execute an existing local App trigger. Prefer trigger names for execution and use --list-format json when another agent needs a structured trigger list.\"","readmeExcerpt":"Skill: mx-auto Owner: yiming1001 Summary: Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or ru... Tags: latest:1.0.4 Version history: v1.0.4 | 2026-05-19T10:46:39.784Z | user Add progressive references plus sandbox tabs/snapshot and local script list/show/run routing. v1.0.3 | 2026-05-19T03:08:41.322Z | user Persi","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"bash {baseDir}/scripts/export_preference.sh show\nbash {baseDir}/scripts/export_preference.sh apply-recommended\nbash {baseDir}/scripts/export_preference.sh set-key defaultAppHome \"/Users/zhym/Library/Application Support/rpa-app-executor\""},{"language":"bash","snippet":"bash {baseDir}/scripts/run.sh ..."},{"language":"bash","snippet":"bash {baseDir}/scripts/run.sh triggers list --format json\nbash {baseDir}/scripts/run.sh triggers run --trigger-name \"小红书测试\""},{"language":"bash","snippet":"bash {baseDir}/scripts/run.sh sandbox tabs --format json\nbash {baseDir}/scripts/run.sh sandbox snapshot --url-contains dashboardV4 --url-not-contains /review"},{"language":"bash","snippet":"bash {baseDir}/scripts/run.sh scripts list --format json\nbash {baseDir}/scripts/run.sh scripts show xiaohongshu.note.search.v1.json --format json\nbash {baseDir}/scripts/run.sh scripts run xiaohongshu.note.search.v1.json --input-json '{\"keyword\":\"美食探店\"}' --wait true --format json"},{"language":"bash","snippet":"bash {baseDir}/scripts/run.sh --list-triggers\nbash {baseDir}/scripts/run.sh --trigger-name \"小红书测试\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: mx-auto\ndescription: Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or run Runtime triggers, inspect existing browser sandbox tabs/snapshots, or list/show/run local App scripts.\n---\n\n# mx-auto\n\nUse this skill as a lightweight router for local Runtime automation.\n\n## Capabilities\n\n- **Triggers**: list and run callable App triggers.\n  - Read [references/triggers.md](references/triggers.md) when the user asks to list, refresh, inspect, or run triggers.\n- **Sandbox**: list existing browser sandbox tabs or snapshot an existing tab.\n  - Read [references/sandbox.md](references/sandbox.md) when the user asks about browser sandbox tabs, target IDs, snapshots, dashboard text, or URL-matched tab inspection.\n- **Scripts**: list, show, or run local scripts/examples.\n  - Read [references/scripts.md](references/scripts.md) when the user asks to list scripts, inspect a script schema, or run a script directly.\n- For complex mixed requests, read [references/learning-guide.md](references/learning-guide.md).\n\n## Shared Runtime Defaults\n\nPreferences file:\n\n`$OPENCLAW_STATE_DIR/skill-state/mx-auto/preferences.json`\n\nFallback:\n\n`$HOME/.openclaw/skill-state/mx-auto/preferences.json`\n\nHelper:\n\n```bash\nbash {baseDir}/scripts/export_preference.sh show\nbash {baseDir}/scripts/export_preference.sh apply-recommended\nbash {baseDir}/scripts/export_preference.sh set-key defaultAppHome \"/Users/zhym/Library/Application Support/rpa-app-executor\"\n```\n\nRuntime base URL discovery:\n\n1. `MX_APP_RUNTIME_BASE_URL`\n2. `RPA_RUNTIME_BASE_URL`\n3. stored `defaultLocalBaseUrl`\n4. standard Runtime ports: `8877`, `8878`, `8879`\n\nRuntime app home discovery:\n\n1. `--app-home`\n2. `MX_AUTO_APP_HOME`\n3. `RPA_APP_HOME`\n4. stored `defaultAppHome`\n5. platform default app home\n\nRuntime admin token discovery:\n\n1. `MX_APP_RUNTIME_ADMIN_TOKEN`\n2. `RPA_RUNTIME_ADMIN_TOKEN`\n3. `{resolved app home}/runtime/admin-token.json`\n\nNever store or print the Runtime admin token value. App updates may rotate or recreate it; re-read the token file at runtime.\n\n## Entry Points\n\nPrefer the wrapper:\n\n```bash\nbash {baseDir}/scripts/run.sh ...\n```\n\nTriggers:\n\n```bash\nbash {baseDir}/scripts/run.sh triggers list --format json\nbash {baseDir}/scripts/run.sh triggers run --trigger-name \"小红书测试\"\n```\n\nSandbox:\n\n```bash\nbash {baseDir}/scripts/run.sh sandbox tabs --format json\nbash {baseDir}/scripts/run.sh sandbox snapshot --url-contains dashboardV4 --url-not-contains /review\n```\n\nScripts:\n\n```bash\nbash {baseDir}/scripts/run.sh scripts list --format json\nbash {baseDir}/scripts/run.sh scripts show xiaohongshu.note.search.v1.json --format json\nbash {baseDir}/scripts/run.sh scripts run xiaohongshu.note.search.v1.json --input-json '{\"keyword\":\"美食探店\"}' --wait true --format json\n```\n\nLegacy trigger commands remain supported:\n\n```bash\nbash {baseDir}/scripts/run.sh --list-triggers\nbash {baseDir}/scripts/run.sh --trigger-name \"小红书测试\"\n"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7e8rp9zay3je2bycn9zrmztx82hy57\",\n  \"slug\": \"mx-auto\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1779187599784\n}"},{"path":"references/learning-guide.md","content":"# mx-auto Learning Guide\n\nUse this guide only for complex requests that combine trigger, sandbox, or script operations.\n\n## Routing\n\n- Trigger list/run requests: read `references/triggers.md`.\n- Existing browser sandbox tab/snapshot requests: read `references/sandbox.md`.\n- Local script list/show/run requests: read `references/scripts.md`.\n\n## Shared Rules\n\n- Prefer auto-discovery before asking for Runtime URL, app home, or token.\n- Store app home and other non-secret defaults only.\n- Never store, print, or copy the Runtime admin token value.\n- Use exact names for execution targets; do not fuzzy-match a trigger or script when running it.\n- Ask only after Runtime discovery or target resolution fails.\n\n## Failure Framing\n\nClearly distinguish:\n\n- Runtime unavailable\n- Runtime unauthorized or token file missing\n- target resolution/cache miss\n- command execution failure\n- sandbox no-match or multiple-match disambiguation"},{"path":"references/sandbox.md","content":"# Sandbox Workflow\n\nUse this reference when inspecting existing browser sandbox tabs or snapshotting an existing tab.\n\n## Rules\n\n- Strictly read-only.\n- Only list tabs or snapshot an existing target.\n- Do not navigate.\n- Do not create pages or tabs.\n- Do not click, type, or mutate browser state.\n\n## Commands\n\n```bash\nbash {baseDir}/scripts/run.sh sandbox tabs\nbash {baseDir}/scripts/run.sh sandbox tabs --profile browser-1 --format json\nbash {baseDir}/scripts/run.sh sandbox snapshot --target-id <targetId>\nbash {baseDir}/scripts/run.sh sandbox snapshot --url-contains dashboardV4 --url-not-contains /review\n```\n\n## Runtime API\n\nCall `POST /browser` with Runtime admin auth.\n\nTabs:\n\n```json\n{ \"action\": \"tabs\", \"profile\": \"browser-1\" }\n```\n\nSnapshot:\n\n```json\n{\n  \"action\": \"snapshot\",\n  \"profile\": \"browser-1\",\n  \"targetId\": \"<targetId>\",\n  \"maxChars\": 6000\n}\n```\n\n## Target Resolution\n\n- `--target-id` wins when present.\n- Otherwise filter existing tabs by all `--url-contains` values and no `--url-not-contains` values.\n- Zero matches is a clear no-match error.\n- Multiple matches requires user disambiguation.\n\n## Output\n\n- Tabs: profile, tab count, targetId, title, URL.\n- Snapshot: profile, targetId, matched URL, text snapshot or extracted content."},{"path":"references/scripts.md","content":"# Scripts Workflow\n\nUse this reference when listing, showing, or running local App scripts/examples.\n\n## Commands\n\n```bash\nbash {baseDir}/scripts/run.sh scripts list\nbash {baseDir}/scripts/run.sh scripts list --format json\nbash {baseDir}/scripts/run.sh scripts show xiaohongshu.note.search.v1.json --format json\nbash {baseDir}/scripts/run.sh scripts run xiaohongshu.note.search.v1.json --input-json '{\"keyword\":\"美食探店\"}' --wait true --format json\n```\n\n## Runtime API\n\n- List/show scripts from `GET /examples/catalog`.\n- Run scripts through `POST /local/commands/send` with `target: \"script.run\"`.\n\nRun body:\n\n```json\n{\n  \"target\": \"script.run\",\n  \"payload\": {\n    \"name\": \"xiaohongshu.note.search.v1.json\",\n    \"inputOverrides\": {}\n  },\n  \"wait\": true,\n  \"leaseTtlMs\": 60000\n}\n```\n\n## Resolution\n\n- Run only exact script `name` matches.\n- Do not fuzzy-match script names for execution.\n- If no exact match exists, list candidate names from the current catalog.\n\n## Input\n\n- `--input-json` must be a JSON object.\n- Pass it as `inputOverrides`.\n- Do not invent required fields.\n- If Runtime or script reports missing input, surface the error clearly.\n\n## Output\n\n- List: script count, name, platform label, runner.\n- Show: manifest metadata and input schema.\n- Run: preserve `target`, `commandId`, `resultType`, `status`, and message."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or ru... Skill: mx-auto Owner: yiming1001 Summary: Local Runtime automation entrypoint for App triggers, read-only browser sandbox inspection, and local script execution. Use when the user wants to list or ru... Tags: latest:1.0.4 Version history: v1.0.4 | 2026-05-19T10:46:39.784Z | user Add progressive references plus sandbox tabs/snapshot and local script list/show/run routing. v1.0.3 | 2026-05-19T03:08:41.322Z | user Persi","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":947,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:58:53.874Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:58:53.874Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T15:11:57.039Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}