What you can build
- System monitor (disk space, CPU, memory)
- File management assistant (create, move, delete files)
- Development environment controller (git, npm, dev servers)
- Application launcher
- Network diagnostics tool (ping, traceroute, speed test)
- Automation scripts (backups, cleanup)
Setup
1. Check Python
2. Download the client
Downloadlocal_client.py. Save anywhere convenient — ~/openhome/ on macOS/Linux, C:\openhome\ on Windows.
3. Add your API key
Openlocal_client.py in a text editor. Find the line:
4. Run the client
Connected to OpenHome. Keep this terminal window open while using the Ability.
5. Install the Local Link Ability
Add the Local Link Ability from the Abilities library to your Agent. Now test it: “show current directory”.How it works
The template
The Ability uses a small system prompt to convert natural language into a shell command, executes it, then uses a second prompt to convert the output into a spoken response.The command-generation prompt
Tune this for your OS and use case. Default (macOS/Linux):cmd equivalents.
The core function
exec_local_command() reference
command(required) — terminal command to executetarget_id(optional) — device identifier (default:"laptop")timeout(optional) — max wait time in seconds (default:10.0)
Example abilities
1. Git assistant
2. System monitor (cross-platform)
3. Dev environment launcher
4. File organization assistant
Customizing the client
Add custom command handlers
Add logging
Add a command blocklist
Best practices
1. Test commands manually first
2. Use a whitelist for voice-only use cases
3. Tune timeouts
4. Handle errors and timeouts
Local Connect vs OpenClaw
Use Local Connect when you want direct terminal access with minimal setup. Use OpenClaw when you need robust LLM-powered automation.
Troubleshooting
Client won't connect
Client won't connect
- Verify the API key in
local_client.pyis correct - Check Python version:
python3 --version(needs 3.7+) - Check internet connection and any firewall blocking outbound WebSocket
Commands not executing
Commands not executing
- Check the client terminal for errors
- Verify the command runs correctly when typed manually
- Check logs:
tail -f /tmp/openhome_client.log - Restart the client
Permission denied
Permission denied
- Some commands need admin privileges. Avoid them in voice flows when possible
- Or modify the client to prompt for
sudopassword (advanced)
Client disconnects randomly
Client disconnects randomly
- Keep the session alive with
tmux/screen - Add reconnect logic to the client
- On macOS, check sleep settings — the client pauses when the system sleeps
Spoken output is raw terminal text
Spoken output is raw terminal text
- The template uses an LLM to reformat responses. Check
check_response_system_promptis correct - Add command-specific parsing for structured output (JSON, tables)
Security
Recommended safety measures
1. Command whitelistrm, sudo, shutdown, dd, format.
3. Monitor client logs
Architecture
Resources
- Local Link template on GitHub: openhome-dev/abilities/templates/Local
- Heavier alternative: Connect to OpenClaw
- Getting started quickstart: Getting Started → OpenClaw (OpenClaw variant; Local Connect quickstart coming)

