← Back to Index

TOOLS.md - Local Notes

Skills define how tools work. This file is for your specifics β€” the stuff that's unique to your setup.

Vultr Snapshots

Automated Weekly Backups

Cost: ~$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


Package Tracking

UPS

Usage:

./tools/ups-track.py 1Z999AA10123456784
./tools/ups-track.py 1Z999AA10123456784 --json  # Include raw JSON

Returns: Status, location, timestamp, delivery confirmation, activity count.

Multi-Carrier (Future)


Quo (Business SMS/Phone)

⚠️ CRITICAL BOUNDARY: Only (385) 485-5863 maps to Quan's personal phone.

NEVER use these numbers:

Tools:

Status: βœ… Operational (fixed Feb 15, 2026)


Tailscale + Markdown Server

Setup: VPS connected to Tailscale network as minnie-core

Tailscale Access:

Markdown Server:

Usage:

Troubleshooting:

Pattern: Container port exposure (same as Quo webhook on 18791)


PDF Generation & Chinese Font Rendering

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):

When generating multi-language PDFs:

  1. Ensure markdown server is running (port 9876)
  2. Chinese fonts load automatically from Google Fonts CDN
  3. PDF generation embeds fonts for offline viewing
  4. Test on actual device before delivering

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:


Google Calendar Integration

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):

Timezone Handling:

OAuth Credentials:

Used 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

What Goes Here

Things like:

Why Separate?

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.