go-beancount進捗

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バイナリをリリースしたりしようと思っている。