Install
openclaw skills install sysclaw-reportingReport system issues and submit resource requests to SysClaw via the cross-agent communication system. Use when an agent needs to report an error, warning, or info-level issue for SysClaw triage, or request anything from SysClaw including software installation, resource access, configuration changes, service management, deployments, or system information. Triggers on phrases like report an issue, report an error, request access, need software, install package, create database, restart service, deploy, check status, escalate to sysclaw.
openclaw skills install sysclaw-reportingReport issues and submit requests to SysClaw. This is the client-side skill — it covers how to communicate with SysClaw, not how SysClaw processes requests.
pip3 install psycopg2-binary
Set these before running scripts. All scripts use a fallback chain: script-specific vars → SYSCLAW_DB_* → defaults.
# Shared connection settings (used by all scripts as fallback)
export SYSCLAW_DB_HOST="<your-db-host>" # Ask your SysClaw operator
export SYSCLAW_DB_PORT="5432"
export SYSCLAW_DB_NAME="system_comm"
export SYSCLAW_DB_USER="<your-agent-role>" # e.g., jobagent, pmagent, researcher_agent
export SYSCLAW_DB_PASSWORD="<your-db-password>"
You can also set per-script overrides (ISSUE_DB_*, REQUEST_DB_*) if different scripts need different credentials, but in most cases the shared SYSCLAW_DB_* vars are sufficient.
Ask your SysClaw operator for the correct host address and your agent credentials.
For errors, warnings, and problems that need attention:
scripts/report-issue.sh <source> <severity> <title> [category] [details] [source_host]
Severity: info | warning | critical
Categories: disk | service | error | resource | network | config | other
Examples:
scripts/report-issue.sh jobhunter warning "Disk usage above 80%" disk "df shows 82% on /data" srv-prod-01
scripts/report-issue.sh pmagent critical "API endpoint returning 500" service "5 consecutive failures" srv-prod-02
source_host (6th argument, optional): Identifies which machine this report originates from. Defaults to the current hostname if omitted.
For software installs, access requests, configuration changes, and more:
scripts/request-resource.sh <source> <type> <action> <target> <justification> [urgency] [payload] [source_host]
Types: access | software | resource | config | service | deployment | info
Actions: install | remove | create | modify | restart | grant | check | deploy
Urgency: low | normal | urgent (default: normal)
Payload: Valid JSON string (optional). Validated before submission.
scripts/request-resource.sh jobhunter software install nginx '{"version":"latest"}' normal
scripts/request-resource.sh pmagent access grant /var/data/pm '{"level":"read"}'
scripts/request-resource.sh researcher info check disk_usage
Verdicts:
approved + DONE — SysClaw completed the work, see notification for detailsdenied — see notification for reasonescalated — human operator reviewing, you'll be notified when decidedCheck for responses from SysClaw:
scripts/check-notifications.sh <your-agent-name> # View unread
scripts/check-notifications.sh <your-agent-name> yes # View and mark as read
Workflow:
check-notifications.sh at session start or after submitting a requestSet up a cron job so responses are ready when your session starts:
# Create wrapper script
cat > /usr/local/bin/check-sysclaw-notifications.sh << 'SCRIPT'
#!/bin/bash
export SYSCLAW_DB_HOST="<db-host>"
export SYSCLAW_DB_PORT="5432"
export SYSCLAW_DB_NAME="system_comm"
export SYSCLAW_DB_USER="<your-role>"
export SYSCLAW_DB_PASSWORD="<your-password>"
bash "<skill-path>/scripts/check-notifications.sh" <your-agent-name> > "<workspace>/memory/notifications.md" 2>/dev/null
SCRIPT
chmod +x /usr/local/bin/check-sysclaw-notifications.sh
# Add to crontab
(crontab -l 2>/dev/null; echo "*/15 * * * * /usr/local/bin/check-sysclaw-notifications.sh") | crontab -
Then at session start: cat memory/notifications.md
If you prefer direct database access:
-- Report issue
INSERT INTO issues (source, severity, category, title, details, source_host)
VALUES ('jobhunter', 'warning', 'disk', 'Disk usage high', 'Partition at 85%', 'srv-prod-01');
-- Submit request
INSERT INTO agent_requests (requesting_agent, request_type, action, target, justification, urgency, payload, source_host)
VALUES ('pmagent', 'software', 'install', 'nginx', 'Need web server', 'normal', '{"version":"latest"}'::jsonb, 'srv-prod-02');
-- Notify SysClaw (after submitting request)
INSERT INTO notifications (recipient, sender, related_request, message, urgency)
VALUES ('sysclaw', 'pmagent', <request_id>, 'New software request: install nginx', 'normal');
-- Check responses
SELECT * FROM notifications WHERE recipient = 'pmagent' AND read = FALSE;
Do not set verdict, security_assessment, resolved_at, or resolved_by — SysClaw manages these.
scripts/report-issue.sh <your-source> info "SysClaw reporting skill installed - test"
psycopg2 with parameterized queries (no SQL injection risk)json.loads() before database insertionPGCONNECT_TIMEOUT)