← Back to Skills Marketplace
hohobohan

Sync Adapter

by Hobohan · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
40
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install hobohan-sync-adapter
Description
Sync local .md data files to Google Sheets with dedup hashing. Reusable for expenses, investments, and any key-value data.
README (SKILL.md)

Sync Adapter

Pattern for syncing structured .md data to Google Sheets. Uses a service account, JWT auth, and content-hash dedup to avoid duplicates.

Authentication

  • Service account: /home/hobopi/.openclaw/secrets/google-service-account.json
  • JWT flow: sign with RSA256, exchange for access token
  • Sheet API: https://sheets.googleapis.com/v4/spreadsheets/{id}
  • Spreadsheet ID: 1Ikbydh-Xzc6F3pk1Q5lbCTbdEERSb4Hq8obzbABVZbU

Dedup strategy

Key generation: (normalized_date|normalized_amount|notes)

  • normalize_amount(str) — strips trailing zeros from decimal: $18.00$18, $18.50$18.50
  • This prevents float vs string mismatches between ledger ($18.00 as float 18.0) and sheet (18 as string)

Flow:

  1. Read all ledger *.md files → parse entries
  2. Read all existing sheet rows → build set of dedup keys
  3. Filter: only entries whose key not already in set
  4. Append new entries only

Parsing ledger format

m = re.match(r'^- ([^$]+) \$([0-9]+\.?[0-9]*) \| (.+)', line)

Parses: - Category $Amount | Notes

Investment format:

m = re.match(r'^- ([^$]+) \$([0-9.]+)(?: \| (.+))?', line)

Sync implementations

Expense sync (daily 9:30am)

  • Script: scripts/sync-ledger-to-sheet.py
  • Tab: Sheet1
  • Columns: Date, Category, Amount (SGD), Notes
  • Pinned to deepseek/deepseek-v4-flash, timeout 60s

Investment sync (Saturday 11am)

  • Script: scripts/sync-investments-to-sheet.py (or agent reads ledger + writes to sheet directly)
  • Tab: Investments
  • Columns: Date, Type (DEPOSIT/WITHDRAW), Amount (SGD), Notes
  • Type field: positive → DEPOSIT, negative → WITHDRAW
  • Pinned to deepseek/deepseek-v4-flash, timeout 600s

API notes

  • Use valueInputOption: 'USER_ENTERED' for date/currency formatting
  • Date format: YYYY-MM-DD (string) — prevents auto-conversion to different format
  • Amount: send as number (float), not string — prevents ' prefix
  • Find last row: read column A, count non-empty cells
  • Append: start after last populated row
  • Never modify existing rows — append only
Usage Guidance
Before installing or running it, confirm the service-account JSON belongs to you, has only the minimum Google Sheets permissions needed, and that the spreadsheet ID is your intended destination. Treat the cron sync as an automated process that may append private expense or investment data without further prompting once configured.
Capability Tags
requires-oauth-tokenrequires-sensitive-credentials
Capability Assessment
Purpose & Capability
The stated purpose is syncing structured local markdown ledger data to Google Sheets, and the documented credential use, Sheets API calls, deduplication, and append-only behavior fit that purpose.
Instruction Scope
The skill documents a specific service-account path and spreadsheet ID, so it is not fully generic despite describing itself as reusable; users must confirm or replace those values.
Install Mechanism
The package contains only markdown skill documentation and a changelog; no executable scripts, dependencies, or hidden install steps were present.
Credentials
Read/write, exec, cron, and sensitive-credential access are proportionate for scheduled Sheets synchronization, but they touch private financial-style records and should be scoped by the user.
Persistence & Privilege
The skill describes scheduled daily and weekly sync jobs through cron, but this is disclosed and aligned with its sync purpose; no privilege escalation or stealth persistence was found.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install hobohan-sync-adapter
  3. After installation, invoke the skill by name or use /hobohan-sync-adapter
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release. Service account JWT auth, dedup hashing, ledger parsing, Google Sheet append-only sync.
Metadata
Slug hobohan-sync-adapter
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Sync Adapter?

Sync local .md data files to Google Sheets with dedup hashing. Reusable for expenses, investments, and any key-value data. It is an AI Agent Skill for Claude Code / OpenClaw, with 40 downloads so far.

How do I install Sync Adapter?

Run "/install hobohan-sync-adapter" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Sync Adapter free?

Yes, Sync Adapter is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Sync Adapter support?

Sync Adapter is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Sync Adapter?

It is built and maintained by Hobohan (@hohobohan); the current version is v1.0.0.

💬 Comments