exec_local_command() call; the OpenClaw client executes it on your machine; the result comes back as a spoken response.
For a short task-oriented quickstart, see Getting Started → OpenClaw. This page is the full reference.
What you can build
- Application launcher and manager
- System monitoring and diagnostics
- File and folder automation
- Development environment controller
- Custom workflow automations
- Smart home integration via computer
- Screenshot and screen recording tools
- Clipboard and text manipulation
Setup
1. Install OpenClaw
OpenClaw must be installed and configured on your local machine with an LLM API key.2. Download the OpenClaw client
Download for your OS:- Windows —
.exeinstaller - macOS —
.dmgor.app - Linux — AppImage or
.deb
3. Run the client
1
Launch
- Windows — run the
.exe, allow permissions if prompted - macOS — if blocked, go to System Settings → Privacy & Security → Open Anyway
- Linux —
chmod +xand run, grant required permissions
2
Get your OpenHome API key
Copy it from Dashboard → Settings → API Keys.
3
Connect
Paste the key into the OpenClaw client, click Connect. Wait for the “welcome” message in the logs — that confirms a live connection.
4. Add the OpenClaw Ability
Install the OpenClaw Ability from the Abilities library on your Agent. This is the template you’ll customize for your use case.The exec_local_command() API
One function carries every command from the Ability to the OpenClaw client.
command(str | dict, required) — inquiry or command for OpenClawtarget_id(str | None) — target device identifier (default:"laptop")timeout(float) — max seconds to wait for a response (default:10.0)
str — response from OpenClaw (success message, error, or command output).
Usage
How it works
- User speaks a computer-control command
- OpenHome captures voice as text
- Ability sends the command to your local OpenClaw client via
exec_local_command() - OpenClaw executes on your computer
- OpenClaw returns the result (success / failure / output)
- An LLM converts the technical output into a natural spoken response (max ~15 words)
- OpenHome speaks the result
Example abilities
1. Development environment controller
2. System health monitor
3. Smart screenshot
4. App manager with confirmation
Best practices
1. Define clear trigger words
Specific, unambiguous triggers beat generic ones:- ✅
start development session,launch dev environment,open my coding setup - ❌
start,go,do it
2. Validate before executing
3. Confirm destructive actions
4. Tune timeouts
5. Format responses for voice
Don’t just echo raw OpenClaw output. Parse and shape:6. Handle errors and timeouts
7. Chain commands for workflows
Troubleshooting
OpenClaw client won't connect
OpenClaw client won't connect
- Verify your API key is correct (from Dashboard → Settings → API Keys)
- Check the daemon is running:
openclaw status - Restart the OpenClaw client app
- Check the client logs for error messages
Commands time out or fail
Commands time out or fail
- Increase timeout:
exec_local_command(command, timeout=20.0) - Check daemon status:
openclaw status - Verify the command is valid for your OS
- Review OpenClaw client logs
Permission errors on macOS
Permission errors on macOS
- System Settings → Privacy & Security → find the blocked app → Open Anyway
- Grant Accessibility and Automation permissions when prompted
Commands not executing
Commands not executing
- Confirm the client shows “Connected”
- Test a safe command first: “what time is it”
- Verify the Ability is registered on your Agent
- Review OpenClaw client logs
Security & privacy
- Commands run locally — not sent to external servers (the LLM used by OpenClaw may receive the natural-language text for command generation)
- Your OpenHome API key authenticates the OpenHome → OpenClaw connection
- Always add validation for user-provided input
- Use confirmation prompts for destructive operations (restart, delete, format)
- Review all permissions carefully when installing the client
Architecture
Resources
- OpenClaw template on GitHub: openhome-dev/abilities/templates/OpenClaw
- OpenClaw CLI help:
openclaw --help - Check status:
openclaw status - Quick start checklist: Getting Started → OpenClaw
- Lightweight alternative: Local Connect

