Personal Bookkeeper
A command-line finance toolkit for individuals and freelancers. Personal Bookkeeper provides 12 dedicated commands for recording transactions, categorizing expenses, checking balances, tracking trends, forecasting budgets, generating reports, and managing tax notes — all backed by simple timestamped log files.
Commands
| Command | Description |
|---|
| INLINECODE0 | Record a financial transaction (income, expense, transfer). Without args, shows recent record entries. |
| INLINECODE1 |
Categorize a transaction (food, rent, transport, entertainment). Without args, shows recent entries. |
|
personal-bookkeeper balance <input> | Log a balance snapshot (account balance, net worth checkpoint). Without args, shows recent balance entries. |
|
personal-bookkeeper trend <input> | Record a spending or income trend observation. Without args, shows recent trend entries. |
|
personal-bookkeeper forecast <input> | Log a budget forecast or projection. Without args, shows recent forecast entries. |
|
personal-bookkeeper export-report <input> | Save a report entry (monthly summary, quarterly review). Without args, shows recent export-report entries. |
|
personal-bookkeeper budget-check <input> | Record a budget check (over/under budget notes). Without args, shows recent budget-check entries. |
|
personal-bookkeeper summary <input> | Log a financial summary (weekly recap, category totals). Without args, shows recent summary entries. |
|
personal-bookkeeper alert <input> | Record a financial alert (overspending, low balance, due date). Without args, shows recent alert entries. |
|
personal-bookkeeper history <input> | Log a history note or view recent history entries. |
|
personal-bookkeeper compare <input> | Record period-over-period comparisons (this month vs last). Without args, shows recent compare entries. |
|
personal-bookkeeper tax-note <input> | Save tax-related notes (deductible expenses, filing reminders). Without args, shows recent tax-note entries. |
|
personal-bookkeeper stats | Show summary statistics across all categories — entry counts per log file, total entries, and data size. |
|
personal-bookkeeper export <fmt> | Export all data to a file. Supported formats:
json,
csv,
txt. |
|
personal-bookkeeper search <term> | Search across all log files for a keyword (case-insensitive). |
|
personal-bookkeeper recent | Show the 20 most recent entries from the activity history log. |
|
personal-bookkeeper status | Health check — version, data directory, total entries, disk usage, last activity. |
|
personal-bookkeeper help | Display the full help message with all available commands. |
|
personal-bookkeeper version | Print the current version (v2.0.0). |
Data Storage
All data is stored as plain-text log files in ~/.local/share/personal-bookkeeper/:
- - Each command writes to its own log file (e.g.
record.log, categorize.log, tax-note.log) - Every action is also recorded in
history.log with a timestamp - Entries use the format
YYYY-MM-DD HH:MM|<input> (pipe-delimited) - Export produces files at INLINECODE28
- No database required — all data is grep-friendly and human-readable
Requirements
- - Bash 4+ (uses
set -euo pipefail) - Standard Unix utilities:
date, wc, du, head, tail, grep, cat, INLINECODE37 - No external dependencies — pure bash, no Python, no API keys
- Works on Linux and macOS
When to Use
- 1. Daily expense tracking — Use
record every time you make a purchase, then categorize to tag it (food, transport, entertainment) for end-of-month analysis. - Monthly budget reviews — Run
budget-check to note whether you're over or under budget, summary to log category totals, and compare to see this month vs. last. - Tax season preparation — Use
tax-note throughout the year to flag deductible expenses, then export csv to hand your accountant a clean spreadsheet. - Financial forecasting — Log
forecast entries with projected income and expenses for upcoming months, then trend to track whether actuals match your projections. - Freelancer income management —
record each invoice payment, balance to snapshot your account after deposits, and alert to flag overdue invoices or low cash reserves.
Examples
CODEBLOCK0
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com
个人记账本
一款面向个人和自由职业者的命令行金融工具。个人记账本提供12个专用命令,用于记录交易、分类支出、检查余额、追踪趋势、预测预算、生成报告以及管理税务笔记——所有数据均以简单的时间戳日志文件形式存储。
命令
| 命令 | 描述 |
|---|
| personal-bookkeeper record <输入> | 记录金融交易(收入、支出、转账)。无参数时显示最近的记录条目。 |
| personal-bookkeeper categorize <输入> |
对交易进行分类(餐饮、房租、交通、娱乐)。无参数时显示最近的条目。 |
| personal-bookkeeper balance <输入> | 记录余额快照(账户余额、净资产检查点)。无参数时显示最近的余额条目。 |
| personal-bookkeeper trend <输入> | 记录支出或收入趋势观察。无参数时显示最近的趋势条目。 |
| personal-bookkeeper forecast <输入> | 记录预算预测或预估。无参数时显示最近的预测条目。 |
| personal-bookkeeper export-report <输入> | 保存报告条目(月度总结、季度回顾)。无参数时显示最近的导出报告条目。 |
| personal-bookkeeper budget-check <输入> | 记录预算检查(超支/未超支备注)。无参数时显示最近的预算检查条目。 |
| personal-bookkeeper summary <输入> | 记录财务总结(每周回顾、分类总计)。无参数时显示最近的总结条目。 |
| personal-bookkeeper alert <输入> | 记录财务提醒(超支、余额不足、到期日)。无参数时显示最近的提醒条目。 |
| personal-bookkeeper history <输入> | 记录历史备注或查看最近的历史条目。 |
| personal-bookkeeper compare <输入> | 记录期间对比(本月与上月对比)。无参数时显示最近的对比条目。 |
| personal-bookkeeper tax-note <输入> | 保存税务相关备注(可抵扣支出、报税提醒)。无参数时显示最近的税务备注条目。 |
| personal-bookkeeper stats | 显示所有类别的汇总统计——每个日志文件的条目数、总条目数和数据大小。 |
| personal-bookkeeper export <格式> | 将所有数据导出到文件。支持的格式:json、csv、txt。 |
| personal-bookkeeper search <关键词> | 在所有日志文件中搜索关键词(不区分大小写)。 |
| personal-bookkeeper recent | 显示活动历史日志中最近的20条条目。 |
| personal-bookkeeper status | 健康检查——版本、数据目录、总条目数、磁盘使用情况、最近活动。 |
| personal-bookkeeper help | 显示包含所有可用命令的完整帮助信息。 |
| personal-bookkeeper version | 打印当前版本(v2.0.0)。 |
数据存储
所有数据以纯文本日志文件形式存储在 ~/.local/share/personal-bookkeeper/ 中:
- - 每个命令写入其自己的日志文件(例如 record.log、categorize.log、tax-note.log)
- 每个操作也会记录到 history.log 中,并附带时间戳
- 条目使用 YYYY-MM-DD HH:MM|<输入> 格式(管道符分隔)
- 导出文件生成在 ~/.local/share/personal-bookkeeper/export.{json,csv,txt}
- 无需数据库——所有数据均可通过grep搜索且人类可读
系统要求
- - Bash 4+(使用 set -euo pipefail)
- 标准Unix工具:date、wc、du、head、tail、grep、cat、cut
- 无外部依赖——纯bash,无需Python,无需API密钥
- 适用于Linux和macOS
使用场景
- 1. 日常支出追踪——每次购物时使用 record,然后使用 categorize 标记类别(餐饮、交通、娱乐),以便月末分析。
- 月度预算审查——运行 budget-check 记录是否超支或未超支,使用 summary 记录分类总计,使用 compare 查看本月与上月的对比。
- 报税季准备——全年使用 tax-note 标记可抵扣支出,然后使用 export csv 为会计师提供一份整洁的电子表格。
- 财务预测——记录 forecast 条目,包含未来几个月的预计收入和支出,然后使用 trend 追踪实际数据是否与预测相符。
- 自由职业者收入管理——使用 record 记录每笔发票付款,使用 balance 在存款后快照账户余额,使用 alert 标记逾期发票或现金储备不足。
示例
bash
记录一笔杂货支出
personal-bookkeeper record Costco杂货 -¥358.50
对交易进行分类
personal-bookkeeper categorize Costco收据 -> 食品/杂货
检查本月是否在预算内
personal-bookkeeper budget-check 三月预算:已支出¥4200,限额¥5000
添加一条可抵扣税务备注
personal-bookkeeper tax-note 家庭办公室网络费¥199/月——可抵扣
将所有数据导出为CSV以便在电子表格中查看
personal-bookkeeper export csv
由BytesAgain提供 | bytesagain.com | hello@bytesagain.com