OpenClaw · Skill

Toolguard Daemon Control

Manage any executable as a persistent macOS launchd user agent.

iOS & macOS Development
v0.0.1
VirusTotal: Suspicious

Install

Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.

Primary command

clawhub install johnnylambada/toolguard-daemon-control

ClawHub installer

npx clawhub@latest install johnnylambada/toolguard-daemon-control

OpenClaw CLI

openclaw skills install johnnylambada/toolguard-daemon-control

Direct OpenClaw install

openclaw install johnnylambada/toolguard-daemon-control

What this skill does

Manage any executable as a persistent macOS launchd user agent.

Why it matters

Using launchd instead of background shell processes means services survive session ends and restart automatically on failure without any manual intervention.

Typical use cases

  • Keep a local proxy server running after terminal closes
  • Auto-restart a development backend that crashes intermittently
  • Run a scheduled background worker as a persistent user service
  • Check which background services are currently active on macOS
  • Tail logs from a long-running daemon without manual log hunting

Source instructions

toolguard-daemon-control

Manage any executable as a persistent macOS launchd user agent.

Overview

Services are installed as ~/Library/LaunchAgents/ai.toolguard.<name>.plist and run as user-level launch agents. They auto-restart on failure and log to ~/Library/Logs/toolguard/.

Scripts

All scripts are in scripts/ relative to this skill's directory. Run them with bash.

install.sh — Create and start a service

bash scripts/install.sh <service-name> <command> [args...] [--workdir <dir>] [--env KEY=VALUE ...]
  • service-name: Short identifier (e.g., toolguard-proxy). Used in plist filename and log paths.
  • command: Absolute path to the executable.
  • args: Arguments passed to the command.
  • --workdir <dir>: Working directory for the process (default: $HOME).
  • --env KEY=VALUE: Environment variables (repeatable).

Example:

bash scripts/install.sh toolguard-proxy /usr/local/go/bin/go run ./cmd/server --config toolguard.dev.yaml --workdir ~/Documents/toolguard

uninstall.sh — Stop and remove a service

bash scripts/uninstall.sh <service-name>

Unloads the service and removes the plist file. Logs are preserved.

status.sh — Check service status

bash scripts/status.sh [service-name]

Without arguments, lists all ai.toolguard.* services. With a name, shows detailed status for that service.

logs.sh — View service logs

bash scripts/logs.sh <service-name> [--follow] [--lines <n>]

Shows stdout and stderr logs. Default: last 50 lines.

list.sh — List all managed services

bash scripts/list.sh

Lists all installed ai.toolguard.* services with their running state.

Notes

  • Services run as the current user (no sudo required).
  • Services auto-restart on crash (KeepAlive = true).
  • To run a Go project, use the compiled binary path or wrap in a shell script — launchd does not support go run directly. Use go build first, then point to the binary.
  • Log directory: ~/Library/Logs/toolguard/<service-name>/
  • Plist location: ~/Library/LaunchAgents/ai.toolguard.<service-name>.plist

Related OpenClaw skills

Browse all →
Featured slot

Your product here

Reserve this slot to reach operators and coding-agent buyers.

Shown where builders are actively comparing tools and deployment options.

Advertise