| name | automationhub-multi-harness |
| description | Use when Codex needs to operate, extend, debug, document, or validate mac-automation/AutomationHub across its CLI, JSON-RPC helper, Microsoft Edge current-profile automation, macOS Accessibility/screenshot/input primitives, LinkedIn workflows, launchd scheduling, and Swift app smoke-test harnesses. Trigger for requests involving automationctl, AutomationHub JSON-RPC, local desktop/browser automation, LinkedIn notification/post workflows, app smoke tests, or API/functionality changes to this tool. |
AutomationHub Multi-Harness
Core Rule
If your Codex runtime has a persistent memory file, read it before work. If you change any AutomationHub API, command, flag, JSON-RPC method, output shape, safety behavior, or add functionality, update memory at task end with a concise durable lesson or usage note and keep this skill's references in sync.
Project Root
Default repo:
cd /path/to/mac-automation
Primary executables:
bun run automationctl <command> --json
./bin/automationctl <command> --json
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"permissions.status"}' | ./bin/AutomationHub
Harness Choice
Use the narrowest harness that can complete the task:
- CLI harness: use
automationctl for normal user-facing workflows, artifacts, exit codes, and run logs.
- JSON-RPC harness: use
AutomationHub for compact stdin/stdout primitive calls from another local process.
- Edge current-profile harness: use CLI or JSON-RPC Edge methods when the user's logged-in Edge session is required.
- AX/screenshot/input harness: use
ax, screen, and input commands for app/window UI work after checking permissions.
- LinkedIn workflow harness: use
linkedin notifications and linkedin post; always dry-run before public writes unless the user explicitly requested live submission.
- Swift app smoke harness: use
app smoke for Xcode build/test evidence, simulator screenshots/logs, and app-owned AX tap/type checks.
- launchd harness: use
workflow install-launchd for recurring notification-check; use --dry-run first.
Read references/harnesses.md for detailed examples and safety notes.
Standard Workflows
Start with:
bun install
bun run automationctl doctor --json
bun run automationctl help --json
For a non-mutating smoke pass, run:
bash skills/automationhub-multi-harness/scripts/smoke_automationhub.sh
For API details, read references/api-surface.md. For code changes, read references/maintenance.md before editing.
Safety Defaults
- Treat the tool as operating on the user's live desktop and live Edge profile.
- Do not print secrets, cookies, storage, full tab lists, full notification names, or public-write content unless the user explicitly requests private details.
- Keep generic
edge js read-only and allowlisted. Put mutations behind workflow-specific commands with verification.
- Prefer scoped screenshots. Use
--full-screen only when explicitly intentional.
- For public writes, require exact user text, perform a dry-run first, and rely on audit logs.
- For launchd installation, verify
--dry-run output before creating or loading agents.
Change Checklist
When modifying this tool:
- Update code and tests near the changed surface.
- Update references/api-surface.md for any command, flag, method, result, artifact, or exit-code change.
- Update references/harnesses.md when a harness workflow changes.
- Update persistent memory, if available, at task end for durable API/functionality lessons.
- Run:
bun run typecheck
bun test
bash skills/automationhub-multi-harness/scripts/smoke_automationhub.sh