freelance-tracker
Track freelance clients, log hours, and generate markdown invoices from ~/openclaw-work/freelance/clients/<client>/config.json. Use whenever you need to log time, summarize hours, or produce a ready-t
SKILL.mdskills/freelance-tracker/SKILL.md
GitHubFreelance Tracker
Overview
Keeps a running log of hours worked per client and project, then generates clean markdown invoices you can copy-paste or convert to PDF. All data lives in plain JSON files you own.
Quick Start
- Initialize a client (run once per client):
cd /Users/chenjiaxuan/openclaw/skills/freelance-tracker python scripts/freelance_tracker.py --init-client <client-slug> --rate 100 - Log hours:
python scripts/freelance_tracker.py --client <client-slug> --log "2h project-name: built login page" - Show summary for current week:
python scripts/freelance_tracker.py --client <client-slug> --summary - Generate an invoice:
Output lands inpython scripts/freelance_tracker.py --client <client-slug> --invoice~/openclaw-work/freelance/out/<client>/invoice_YYYY-MM-DD.md.
Workflow
1. Set Up a Client
- Config lives at
~/openclaw-work/freelance/clients/<client>/config.json. - Set
name,email,rate(hourly, USD), and optionalcurrencyandpayment_terms. - Use
--init-clientflag to scaffold it automatically.
2. Log Time
- Format:
<Nh> <project>: <description>— e.g.2.5h openclaw-setup: configured gateway and channels - Entries are appended to
~/openclaw-work/freelance/clients/<client>/log.jsonwith an ISO timestamp. - Use
--date YYYY-MM-DDto backfill past entries.
3. Summarize Hours
--summaryprints a table of all unbilled entries grouped by project.- Add
--weekor--monthto filter by period. - Add
--allto include already-billed entries.
4. Generate Invoice
- Reads all unbilled log entries, applies the hourly rate, and fills
assets/invoice-template.md. - Marks entries as billed so they won't appear on the next invoice.
- Supports
--dry-runto preview without marking entries.
Scripts
| Path | Purpose |
|---|---|
scripts/freelance_tracker.py |
Main CLI: init clients, log hours, summarize, and generate invoices. |
References & Assets
references/config-schema.md: Client config contract and field descriptions.assets/invoice-template.md: Markdown invoice skeleton injected on each run.