2026年9月15日時点の情報です。
2024年半ばにリリースされた Beancount バージョン3 は、この人気のあるプレーンテキスト会計ツールにとって重要なアーキテクチャ進化を示しています。ユーザーの台帳ファイルに対する後方互換性は維持されていますが、基盤となる構造と付随ツールには大幅な変更が加えられています。ここでは、Beancount v3 の新機能と、このガイドが初めて公開されて以来にリリースされた 3.1~3.2 系の変更点について詳しく説明します。
構文と最初の台帳については、Beancount 構文リファレンス と はじめに を参照してください。check、query、import、reports をラップするホスト型CLIについては、Beancount CLI リファレンス を参照してください。
よりモジュール化され、合理化されたアーキテクチャ
Beancount v3 で最も重要な変更点は、よりモジュール化されたエコシステムへの移行です。以前はコアにバンドルされていたいくつかの主要機能が、独立した別々のプロジェクトに分離されました。これにより、Beancount のコアはより軽量になり、個々のコンポーネントに集中した開発が可能になります。
現在、別パッケージとなっている主要コンポーネントは以下の通りです:
- beanquery: 台帳ファイルのための強力なSQLライクなクエリツールが、独自のパッケージになりました。
- beangulp: データインポートフレームワークの新しい場所で、従来の
beancount.ingestモジュールに取って代わります。 - beanprice: 商品や株式の価格を取得するための専用ツールです。
この分離により、ユーザーはバージョン2で慣れ親しんだ完全な機能を維持するために、beancount 自体に加えてこれらのパッケージをインストールする必要があります。
コマンドラインツールとワークフローの変更
新しいモジュラーアーキテクチャを反映して、コマンドラインツールにはいくつかの注目すべき変更があります:
bean-reportは廃止: このツールは削除されました。レポートのニーズには、beanqueryパッケージのbean-queryを使用することをお勧めします。- 新しいインポーター・ワークフロー:
bean-extractとbean-identifyコマンドがコアから削除されました。beangulpを使用した新しいアプローチはスクリプトベースです。ユーザーは、銀行取引明細書などの外部ソースからのデータインポートを処理する独自のPythonスクリプトを作成することになります。
構文と機能の拡張
コアの会計原則は同じですが、Beancount v3 では構文にいくつかの歓迎すべき柔軟性が導入されています:
- より柔軟な通貨コード: 通貨名の長さと文字に関する従来の制限が緩和されました。1文字の通貨記号がサポートされるようになりました。
- トランザクションフラグの拡張: トランザクションのフラグとして A から Z までの任意の大文字を使用できるようになり、より詳細な分類が可能になりました。
重要なのは、これらの変更は後方互換性があるため、既存の Beancount v2 台帳ファイルは変更なしで動作することです。
C++ による書き換えとパフォーマンス
Beancount の長期的な目標の1つは、パフォーマンスに重要なコンポーネントを C++ で書き換えることでした。Beancount v3 の初期リリースには C++ コアは含まれておらず、2026年9月15日現在もその状況は変わりません。公開されている PyPI ライン(3.2.3 まで)は、依然としてモジュール化された Python v3 ブランチです。歴史的な C++/Bazel の作業は別の cpp ブランチにあり、ユーザーが PyPI からインストールするパッケージの一部ではありません。したがって、現在の v3 リリースの日常的なパフォーマンスは v2 後期と同じクラスであり、桁違いの C++ 書き換えではなく、パーサーとツールの段階的な改善が行われています。
この記事の執筆以降(v3.1 → v3.2.x)
主な情報源: プロジェクトの CHANGES ファイル、3.1.0…3.2.0 の GitHub compare ビュー、および PyPI beancount(2026年9月15日時点の最新版は 3.2.3)。
- 3.1.x 系 — 3.0 のモジュール分割(
beanquery、beangulp、beanpriceは別インストールのまま)後のパッケージングと API クリーンアップを継続。 - 3.2.0(2025年9月14日) —
beancount/beancountのリリースコミット。この期間のユーザー向けの注目すべき作業には、複数ファイル対応のbean-format、許容誤差/精度の改良、wheel/CI のメンテナンスが含まれます(上記の compare リンクを参照)。 - 3.2.1–3.2.3(2026年) — その後のバイナリおよびパッケージングリリース(3.2.1 の概要でメーリングリストに記載された Python 3.14 のテストカバレッジとドキュメントの足場を含む)。
pip install -U beancountでインストールし、アップグレード時にはコンパニオンパッケージ(beanquery、beangulp)をメジャーバージョンに合わせて固定してください。
Fava: Fava 1.30 で Beancount 3 サポートが追加されました(2024年12月29日)。Fava 1.30.13(2026年5月19日) で Beancount 2 のサポートが終了し、インポーターには beangulp が必要です。2026年9月15日時点の現在の PyPI ラインは 1.30.16 です。Fava のアップグレードは Beancount 3 の台帳と組み合わせてください。
v2 から v3 への移行
ほとんどのユーザーにとって、Beancount v2 から v3 への移行は比較的簡単です:
- 台帳ファイル:
.beancountファイルの変更は必要ありません。 - インストール:
pipを使用して、beanqueryやbeangulpなどの新しい独立したパッケージをインストールする必要があります。 - インポータースクリプト: カスタムインポーターがある場合は、新しい
beangulpAPI を使用するように更新する必要があります。これは主に、インポーターが継承する基本クラスの変更と、いくつかのメソッドシグネチャの調整を意味します。 - Fava: Beancount 用の人気の Web インターフェースである Fava は、v3 と互換性があるように更新されています。シームレスなエクスペリエンスのために、最新バージョンの Fava を確実に使用してください。
要するに、Beancount v3 は、プロジェクトのアーキテクチャを合理化し、よりモジュール化して、長期的に保守と拡張を容易にする基礎的なリリースです。特にデータインポートに関して、ユーザーのワークフローにいくつかの調整が必要ですが、この強力な会計ツールの将来の開発の基盤を築きます。





