configure-openclaw/SKILL.md
Configure OpenClaw notification gateway via natural language
npx skillsauth add abanoub-ashraf/manus-skills-import configure-openclawInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Set up OpenClaw as a notification gateway so OMX can route notification events to your OpenClaw hook endpoints (or a local command gateway).
Always write OpenClaw config under:
notifications.openclaw.enablednotifications.openclaw.gatewaysnotifications.openclaw.hooksDo not use legacy keys like gatewayType, endpoint, or top-level command.
This is an interactive setup wizard. Ask questions with AskUserQuestion, merge changes into ~/.codex/.omx-config.json, and then run a verification flow with explicit pass/fail diagnostics.
CONFIG_FILE="$HOME/.codex/.omx-config.json"
if [ -f "$CONFIG_FILE" ]; then
OPENCLAW_ENABLED=$(jq -r '.notifications.openclaw.enabled // false' "$CONFIG_FILE" 2>/dev/null)
GATEWAYS=$(jq -r '.notifications.openclaw.gateways // {} | keys | join(", ")' "$CONFIG_FILE" 2>/dev/null)
HOOKS=$(jq -r '.notifications.openclaw.hooks // {} | keys | join(", ")' "$CONFIG_FILE" 2>/dev/null)
echo "OPENCLAW_ENABLED=$OPENCLAW_ENABLED"
echo "GATEWAYS=${GATEWAYS:-none}"
echo "HOOKS=${HOOKS:-none}"
else
echo "NO_CONFIG_FILE"
fi
If existing config is found, show current gateways/hooks and ask whether to update or replace.
Use AskUserQuestion:
Question: "Which OpenClaw gateway mode do you want to configure?"
Options:
Collect three values:
local)http://127.0.0.1:18789)Build the endpoint URL as:
${BASE_URL%/}/hooks/agent${BASE_URL%/}/hooks/wakeRun these checks and report each result:
[ -n "$HOOKS_TOKEN" ] && echo "PASS token provided" || echo "FAIL token missing"
case "$BASE_URL" in
http://*|https://*) echo "PASS URL format" ;;
*) echo "FAIL URL must start with http:// or https://" ;;
esac
curl -sS -o /dev/null -w "HTTP %{http_code}\n" "$BASE_URL" || echo "FAIL cannot reach base URL"
/hooks/agent)curl -sS -o /tmp/omx-openclaw-agent.json -w "HTTP %{http_code}\n" \
-X POST "${BASE_URL%/}/hooks/agent" \
-H "Authorization: Bearer $HOOKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"instruction":"OMX OpenClaw setup probe","event":"session-end","sessionId":"setup-smoke"}'
If probe is non-2xx or network fails, treat as setup failure and continue with diagnostics.
Collect:
local-command){{event}}, {{instruction}}, {{sessionId}}, {{projectPath}})Example:
~/.local/bin/my-notifier --event {{event}} --text {{instruction}}
CLI command gateways only run when both are set:
export OMX_OPENCLAW=1
export OMX_OPENCLAW_COMMAND=1
If OMX_OPENCLAW_COMMAND is missing, command gateway dispatch is blocked by design.
Use AskUserQuestion with multiSelect.
Question: "Which OMX events should trigger OpenClaw hooks?"
Recommended defaults:
session-endask-user-questionOptional:
session-startsession-idlestopFor each selected event, collect a short instruction template.
Always merge into ~/.codex/.omx-config.json.
jq \
--arg gatewayName "$GATEWAY_NAME" \
--arg url "${BASE_URL%/}/hooks/agent" \
--arg token "$HOOKS_TOKEN" \
'.notifications = (.notifications // {enabled: true}) |
.notifications.enabled = true |
.notifications.openclaw = (.notifications.openclaw // {}) |
.notifications.openclaw.enabled = true |
.notifications.openclaw.gateways = (.notifications.openclaw.gateways // {}) |
.notifications.openclaw.gateways[$gatewayName] = {
type: "http",
url: $url,
headers: {"Authorization": ("Bearer " + $token)}
}' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
jq \
--arg gatewayName "$GATEWAY_NAME" \
--arg command "$COMMAND_TEMPLATE" \
'.notifications = (.notifications // {enabled: true}) |
.notifications.enabled = true |
.notifications.openclaw = (.notifications.openclaw // {}) |
.notifications.openclaw.enabled = true |
.notifications.openclaw.gateways = (.notifications.openclaw.gateways // {}) |
.notifications.openclaw.gateways[$gatewayName] = {
type: "command",
command: $command
}' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
jq \
--arg gatewayName "$GATEWAY_NAME" \
'.notifications.openclaw.hooks = (.notifications.openclaw.hooks // {}) |
.notifications.openclaw.hooks["session-end"] = {
enabled: true,
gateway: $gatewayName,
instruction: "OMX task completed for {{projectPath}}"
} |
.notifications.openclaw.hooks["ask-user-question"] = {
enabled: true,
gateway: $gatewayName,
instruction: "OMX needs input: {{question}}"
}' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
Show this exactly:
# Required for OpenClaw integration
export OMX_OPENCLAW=1
# Required in addition for command gateways
export OMX_OPENCLAW_COMMAND=1
Run both checks for HTTP gateways:
/hooks/wake)curl -sS -X POST "${BASE_URL%/}/hooks/wake" \
-H "Authorization: Bearer $HOOKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text":"OMX wake smoke test","mode":"now"}'
Expected pass signal: JSON includes "ok":true.
/hooks/agent) — not wake-onlycurl -sS -o /tmp/omx-openclaw-delivery.json -w "HTTP %{http_code}\n" \
-X POST "${BASE_URL%/}/hooks/agent" \
-H "Authorization: Bearer $HOOKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"instruction":"OMX delivery verification","event":"session-end","sessionId":"verify-setup"}'
Expected pass signal: HTTP 2xx and response body confirms acceptance.
If verification fails, guide with this checklist:
Authorization header./hooks/agent and /hooks/wake are enabled by OpenClaw hooks config.OMX_OPENCLAW=1 and OMX_OPENCLAW_COMMAND=1.Show:
/hooks/agent delivery test passed# Required for all OpenClaw gateways
export OMX_OPENCLAW=1
# Required additionally for CLI command gateways
export OMX_OPENCLAW_COMMAND=1
# Optional debug logs
export OMX_OPENCLAW_DEBUG=1
development
Design principles for building polished, native-feeling SwiftUI apps and widgets. Use this skill when creating or modifying SwiftUI views, iOS widgets (WidgetKit), or any native Apple UI. Ensures proper spacing, typography, colors, and widget implementations that look and feel like quality apps rather than AI-generated slop.
data-ai
Design and implement SwiftUI views, components, and app architecture. Use when creating new SwiftUI views, implementing MVVM/TCA patterns, managing state with @Observable, @State, @Binding, or @Environment, designing navigation flows, or structuring iOS app architecture. Triggers on SwiftUI, view model, state management, navigation, coordinator pattern.
development
Implement, review, or improve SwiftUI animations and transitions. Use when adding implicit or explicit animations with withAnimation, configuring spring animations (.smooth, .snappy, .bouncy), building phase or keyframe animations with PhaseAnimator/KeyframeAnimator, creating hero transitions with matchedGeometryEffect or matchedTransitionSource, adding SF Symbol effects (bounce, pulse, variableColor, breathe, rotate, wiggle), implementing custom Transition or CustomAnimation types, or ensuring animations respect accessibilityReduceMotion.
testing
Audit SwiftUI views for accessibility (iOS + macOS) with patch-ready fixes