Skills define how tools work. This file is for your specifics β the stuff that's unique to your setup.
tools/vultr-snapshot.sh/home/node/.openclaw/credentials/vultr-api.jsonbc5f56e5-a60e-4f3e-a40b-74eccae58f28Cost: ~$6/month (4 snapshots Γ ~30GB Γ $0.05/GB/month)
Manual run:
./tools/vultr-snapshot.sh
IP Allowlist: If API returns "Unauthorized IP", add 144.202.121.97 to Vultr API key allowlist at https://my.vultr.com/settings/#settingsapi
tools/ups-track.py <tracking_number>/home/node/.openclaw/credentials/ups-api.json/home/node/.openclaw/credentials/ups-token.json (auto-refreshed)Usage:
./tools/ups-track.py 1Z999AA10123456784
./tools/ups-track.py 1Z999AA10123456784 --json # Include raw JSON
Returns: Status, location, timestamp, delivery confirmation, activity count.
β οΈ CRITICAL BOUNDARY: Only (385) 485-5863 maps to Quan's personal phone.
NEVER use these numbers:
Tools:
/home/node/.openclaw/credentials/quo-api.jsontools/quo-messaging.pytools/quo-webhook-handler-v2.py (port 18791)quo-webhook.service (host-managed)Status: β Operational (fixed Feb 15, 2026)
https://sms-7f2a1b.relay9kq.us/quo-messaging.pySetup: VPS connected to Tailscale network as minnie-core
Tailscale Access:
100.72.11.53minnie-core (if MagicDNS enabled)Markdown Server:
tools/markdown-server.jsmarkdown-server.service (container-managed)Usage:
.md files to view rendered/MEMORY.md - Long-term memory/analysis/ - Analysis documents/working/ops/ - Operational tasksTroubleshooting:
systemctl restart markdown-server (on host)systemctl status markdown-serverjournalctl -u markdown-server -fPattern: Container port exposure (same as Quo webhook on 18791)
Tool: tools/markdown-to-pdf.js - Convert markdown to PDF using puppeteer
Usage:
node tools/markdown-to-pdf.js <input.md> [output.pdf]
Chinese Font Support (STANDARD PATTERN):
"Noto Sans SC" listed first in CSS font stackWhen generating multi-language PDFs:
Example:
# English PDF
node tools/markdown-to-pdf.js MASTER_PLAN.md MASTER_PLAN.pdf
# Chinese PDF (fonts automatically embedded)
node tools/markdown-to-pdf.js MASTER_PLAN_δΈζ.md MASTER_PLAN_δΈζ.pdf
Download via Tailscale:
Tool: tools/google-calendar-list.py - List events from ALL calendars
Usage:
python3 tools/google-calendar-list.py --days 1 [--timezone America/Los_Angeles]
Multi-Calendar Support (CRITICAL):
[Quan ZTAG], [Team Calendar], etc.Timezone Handling:
America/Los_Angeles (PT)OAuth Credentials:
/home/node/.openclaw/credentials/google-calendar-tokens.json/home/node/.openclaw/credentials/google-calendar-client-secret.jsonUsed By:
Example Output:
all-day - Presidents' Day [Holidays in United States]
10:00 AM - π― Minnie: Telegram Topics Setup [quan@gantom.com]
1:00 PM - π― Minnie: Daily Markdown Maintenance Setup [quan@gantom.com]
6:00 PM - Geo Yoyo class [Quan ZTAG]
Debugging:
# Test tomorrow's events
python3 tools/google-calendar-list.py --days 1
# JSON output for debugging
python3 tools/google-calendar-list.py --days 1 --json
Things like:
Skills are shared. Your setup is yours. Keeping them apart means you can update skills without losing your notes, and share skills without leaking your infrastructure.
Add whatever helps you do your job. This is your cheat sheet.