go-beancountというリポジトリにて、goでbeancount処理系やツールチェーンをいろいろ書いているので紹介したい。 まあ、書いているのは私ではなくて主にClaude Codeだが。
- beancheck
- beancountの整合性チェッカー。公式のbean-checkと似た感じのもの
- 公式のPython版と同様にpluginで拡張する仕組みはサポートしているので、追加のチェックを足したりもできる。
- beanfmt
- フォーマッタ
- 公式のbean-formatとそんなに違わないが、全角文字があっても正しく桁が揃う点はこだわりポイントだ。
- beanimport
- インポータ。外部から提供されたCSVなどを解析してbeancount directive列に変換する。
- 今のところ汎用CSV importerしか埋め込まれていないが、プラグインでimporterを追加もできる。
- 汎用CSV importerはTOML設定ファイルで割と柔軟に設定できる。たとえば、こんな感じの設定を食べさせるとMoneyForward MEからダウンロードしたCSVを変換できる。
- beanprice
- 時価取得コマンド
- 外部データソースからコモディティの時価を取得してpriceディレクティブの列を生成する
- 今のところ欧州中央銀行APIによる為替(EUR建)取得しか埋め込まれていないが、プラグインでquoterを追加もできる。
- beanfile
- 標準入力等からディレクティブ列を読んで、勘定科目名と日付で定まる適切なファイルに書き込む。書き込み先のファイルが既存なら、重複ディレクティブソート順を考慮していい感じにマージする。
今はそんなに使いものになるわけでもないが、そのうち統合frontendコマンドで束ねたり、prebuiltバイナリをリリースしたりしようと思っている。