Execute commands on the host machine from inside this container.
# Execute a command on the host
hostlink exec "ls /home/jebadiah"
# Ping the daemon (connection test)
hostlink ping
# With explicit socket/token (if env vars not set)
hostlink -s /run/hostlink/hostlink.sock -k $HOSTLINK_TOKEN exec "echo hello"
# Set working directory
hostlink -w /home/jebadiah exec "pwd"
# Set environment variables
hostlink -e MY_VAR=value exec "echo $MY_VAR"
# With timeout (ms)
hostlink -T 60000 exec "long-running-command"
# JSON output (machine-readable)
hostlink -j exec "ls -la" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['stdout'])"
# List configured targets
hostlink targets
Set these so you don't need to pass flags every time:
| Variable | Purpose | Default |
|---|---|---|
| ---------- | --------- | --------- |
HOSTLINK_SOCKET | Unix socket path | /run/hostlink/hostlink.sock |
HOSTLINK_TOKEN | Auth token | (required) |
HOSTLINK_TARGET | Target node name | (optional) |
Best place to set these: workspace/.env or openclaw.json env.vars section.
Check if hostlinkd is reachable:
hostlink ping
# Expected: [hostname] pong - uptime Xs
# If error: daemon not running or socket not mounted
hostlink exec "ls /home/jebadiah/projects"
hostlink exec "cat /etc/hostname"
hostlink exec "nvidia-smi"
hostlink exec "ollama list"
hostlink exec "ls ~/.cache/huggingface/hub"
hostlink exec "ls /path/to/qwen3-merge"
hostlink exec "cat /path/to/qwen3-merge/README.md"
hostlink exec "docker ps"
hostlink exec "docker stats --no-stream"
| Code | Meaning |
|---|---|
| ------ | --------- |
| 0 | Success |
| 1 | Remote command failed (check exit_code in JSON output) |
| 2 | Connection failed (daemon unreachable) |
| 3 | Authentication failed (wrong token) |
| 5 | Timeout |
| 7 | Client error (bad args, missing targets file) |
"Connection failed" / exit 2:
sudo systemctl start hostlinkdHOSTLINK_SOCKET env var"Authentication failed" / exit 3:
HOSTLINK_TOKEN — must match auth_token in /etc/hostlink/hostlink.conf"server busy" error:
Container (you are here) Host machine
┌─────────────────────┐ ┌──────────────────────────┐
│ hostlink (client) │◄────────►│ hostlinkd (daemon) │
│ workspace/bin/ │ Unix │ /etc/hostlink/ │
│ │ socket │ auth_token = <secret> │
└─────────────────────┘ │ shell = /bin/bash │
└──────────────────────────┘
See references/setup.md for installation and docker-compose configuration.
共 1 个版本