一键导入
zenith-finance-sync
Auto-sync Zenith Finance data (transactions, ledger) to Google Sheets. Creates/updates a spreadsheet with Dashboard and History sheets.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Auto-sync Zenith Finance data (transactions, ledger) to Google Sheets. Creates/updates a spreadsheet with Dashboard and History sheets.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Integrates Caveman templating engine with RTK (Rust Token Killer) for token-optimized output formatting. Provides a wrapper script and patterns for using Caveman templates to compress CLI output.
Optimize Hermes context usage — expand RTK coverage, prune sessions, manage memory, set up auto-prune cron. Use when token usage is high or RTK coverage is low.
Set up SSH authentication for custom Git hosts (non-standard ports, custom domains, VPN-dependent hosts) with verification workflow and troubleshooting for common connectivity issues.
Manages MySQL services via Homebrew with RTK integration for token optimization. Provides easy start/stop/restart/status commands and monitoring capabilities.
Install and configure Syncthing for folder sync between macOS and Android devices. Covers brew install, service setup, web UI automation for folder creation, device ID extraction, and cross-device pairing instructions. Use when user needs to sync folders between Mac and phone/tablet.
Synchronize Zenith Finance ledger and transactions to Google Sheets with automatic updates. Creates/maintains a spreadsheet with Dashboard (summary, charts) and History (full transaction log) sheets.
| name | zenith-finance-sync |
| description | Auto-sync Zenith Finance data (transactions, ledger) to Google Sheets. Creates/updates a spreadsheet with Dashboard and History sheets. |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| metadata | {"hermes":{"tags":["Finance","Accounting","Google Sheets","Automation","Zenith"]}} |
Automatically synchronizes Zenith Finance transaction data and ledger balances to a Google Sheets spreadsheet with:
The skill stores the target spreadsheet ID in:
r'$$\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}$$' to match [2026-04-07 21:32]\n2. Transaction parser (around line 109): Should be r'$$(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2})$$\\s*\\|\\s*(.+?)\\s*\\|\\s*(.+?)\\s*\\|\\s*(.+?)\\s*\\|\\s*(.+)'\n3. Amount extraction (around line 117): Should be r'-\\s*Rp([\\d,.]+)$' to extract amounts like "- Rp12345.67"\n4. Amount/Balance cleaning (around lines 126, 134): Should be re.sub(r'[Rp,\\s]', '', string) to remove Rp, commas, and spaces\n\n### String Escaping Issues\nIf encountering "unexpected character after line continuation character" errors:\n- Check print statements for incorrectly escaped quotes\n- Should be print(f\"Warning: message {variable}\") not print(f\\\"Warning: message {variable}\\\")\n\n### PATH Construction Issues\nIf seeing "google_token.json not found" errors despite file existing:\n- Check TOKEN_PATH assignment - should be Path(HERMES_HOME) / \"google_token.json\" not malformed concatenation\n\n### Sync State Issues\nIf load_sync_state() errors occur:\n- Ensure the sync state file (~/.hermes/zenith_sync_state.json) contains valid JSON\n- Is absent for first run (will be created after successful sync)\n\n### Google Auth Problems\nIf API calls fail with authentication errors:\n- Re-authenticate using the google-workspace-setup skill\n- Verify token file exists at ~/.hermes/google_token.json\n- Ensure required scopes are granted: spreadsheets and driveTrigger this skill after any Zenith Finance transaction is recorded, or run manually to sync all data.
History Sheet Columns:
Dashboard Sheet:
This skill uses the scripts/sync.py script to perform the actual synchronization. The script handles robust parsing of Transactions.md format in two versions:
Each transaction on its own line: [timestamp] | description | amount | Income/Expense | Category | Source | Balance
Amount is a numeric value (may include commas)
Income/Expense field indicates transaction type
Category provides detailed categorization (Food, Transport, etc.)
Source indicates the account involved
Balance shows running net worth after transaction (prefixed with "Rp")
Opening balance transactions are identified and processed correctly
Sync state is tracked using timestamps to only process new transactions since last sync
The parser handles malformed lines gracefully with warnings rather than failures
Dashboard summary formulas are preserved per user specification, specifically ensuring B2 and B3 use column D (Category) for SUMIF calculations rather than column E (Source)