面倒な家計簿を自動化するOSS「card-notify」を作った
1. 家計簿つけるのって面倒
家計簿をつけるのは非常に煩わしい行為です。
カードでいくら使った、現金いくら使った。全額の入力は大変労力がかかるのにコストは果てしないです。
それを解決するアプリを作りました。
2. 必要な要素
家計簿で煩わしい要素は先ほども説明したように手入力が多い点です。
そこでGmailのAPIからメールを取得し、クレジットカードでの決済履歴から自動で使用額と使用店を取得することとしました。
また、専用アプリは汎用性に欠けるため日本人の多くが使用しているメッセージアプリを使用することでアプリを排除しました。
必要な要素はシンプルに2つだけです。
- メールの自動取得
- メッセージアプリへの自動送信
3. 他の家計簿アプリとの違い
- 手入力は現金のみ
- クレジットカードの利用履歴はメールから自動取得
- 前日の使用金額をユーザーの指定時間にLINEで自動送信
- 週次の使用金額を毎週月曜、月次の使用金額を毎月1日に自動送信
- データ管理はすべてユーザー自身(自分のGoogle/LINE/サーバーで動かすセルフホスト型。他人のデータを預かるサービスではない)
- 海外で使用した場合は外貨のみ自動で別勘定に集計(円換算はせず通貨別に集計)
- アプリ自体の更新は任意でオンにできる自動アップデート機能を用意(既定はOFF。有効時は失敗すると自動でロールバック)
4. 開発
実際にデモ版をClaude Codeで開発しました。
開発後、実際に3週間ほど使ってみたところ修正すべき点が多々発生し、それを修正したのちにOSS版の開発を始めました。
OSS版では以下の改善を行っています。
- 実装内のハードコードをやめ、
.envベースの設定に統一。誰が見てもわかりやすい構成にした - カード会社ごとのメール解釈をプラグイン化し、カード追加を1ファイルの実装で完結できるようにした
- デモ版ではCLIのみでセットアップしていたものを、ブラウザ上(
/setupウィザード)からも完結できるようにし、ユーザビリティを向上させた
5. 推奨環境
推奨環境は以下の通りです。
| CPU | Memory | Storage | Network | OS |
|---|---|---|---|---|
| 1vCPU(x86_64 or Arm) | 1GB | 5GB | 24時間接続 | Linux(Debian/Ubuntu) |
6. 配布サイト
こちらにアクセスするとインストール方法等が記載されています。専用ユーザーの作成・venv・依存導入・systemd登録まで自動で行うワンライナーを用意しています。
ライセンスはMITです。ぜひ触ってみてください。