I kept rebuilding the same client paperwork for every project — proposal, NDA before the discovery call, services agreement, invoice, time tracking, and eventually a late-payment reminder — so I turned them into a set of small, zero-dependency Python CLIs. Each one takes a JSON file and outputs a clean, print-ready HTML file. No accounts, no cloud, no telemetry.
The suite now covers the whole client lifecycle:
- freelance-proposal-cli — scope/pricing/timeline quote
- freelance-nda-cli — mutual NDA for the discovery call before scoping
- freelance-contract-cli — plain-language services agreement
- contract-checklist-cli — scans a contract for commonly-missing clauses
- freelance-time-cli — time tracking
- freelance-timesheet-to-invoice-cli — converts tracked hours straight into an invoice
- freelance-invoice-cli — HTML invoice generator
- freelance-late-fee-cli — computes late fees and which reminder email to send
- freelance-rate-cli / freelance-expense-cli / freelance-tax-cli — hourly rate math, expenses, US self-employment tax
- crypto-pay-cli / usdt-rub-cli / freelance-currency-cli — for clients who pay in stablecoins instead of wire transfer
Each one is MIT-licensed, has a test suite, and runs in CI. They're designed to chain together — timesheet hours flow into the invoice generator, the invoice generator's output matches what the late-fee calculator expects, and so on — so you're not retyping numbers between tools.
Hub repo with the full list: https://github.com/kleogeos/awesome-freelance-tools
If you'd rather not install anything, there are free browser versions (just forms, nothing uploaded) at https://kleogeos.github.io/freelancer-tools/?src=devto1
Standard disclaimer: the contract/NDA generators are deliberately simple templates (not legal advice), and that's stated right on the generated document.
Happy to answer questions about any of them, or hear what's still missing from the workflow.
Top comments (0)