mcpField
B
Beancount Accounting

Beancount Accounting

github.com/ouachitalabsその他2206 回インストール39 週間前に更新
リポジトリ

Beancount Accounting について

Beancountで家計を管理する人向けのスキルガイドです。プレーンテキストの複式簿記ファイルの作成、編集、クエリに加え、ディレクティブ、BQL、検証コマンドを扱います。

主な機能

  1. 01Beancountファイルの作成と編集
  2. 02複式簿記の残高ルールへの準拠
  3. 03口座・取引・メタデータのディレクティブ
  4. 04BQLによる記録のクエリ
  5. 05bean-checkによるファイル検証

活用シーン

  1. 01日々の支出や口座振替の記録
  2. 02カテゴリ別の月次支出集計
  3. 03銀行口座残高の照合
  4. 04編集した会計ファイルの検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ouachitalabs/skills --skill beancount-accounting

インストール後、Claude Code で/beancount-accountingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
bql.md
examples.md
syntax.md

詳細

Beancount 会計スキル

Beancount は、プレーンテキストの複式簿記システムです。このスキルでは、Beancount ファイルの作成、編集、クエリに関する知識を提供します。

基本概念

複式簿記

すべての取引は差し引きゼロになる必要があります。お金は口座間を移動します。

  • 借方は資産/費用を増やし、負債/収益/資本を減らします
  • 貸方は資産/費用を減らし、負債/収益/資本を増やします
5 つの口座タイプ
タイプ用途通常の残高
Assets所有しているもの(銀行口座、投資)正
Liabilities支払う義務があるもの(クレジットカード、ローン)負
Income入ってくるお金(給与、利息)負
Expenses出ていくお金(食費、家賃)正
Equity純資産、開始残高負
口座名

大文字で始まる、コロン区切りの階層名を使用します。

Type:Country:Institution:Account:SubAccount

例:

Assets:Checking:Centennial:Joint
Liabilities:Card:Chase:Sapphire
Expenses:Food:Groceries
Income:Salary:Employer

取引の構文

基本形式
YYYY-MM-DD flag "Payee" "Narration"
  Account1    Amount Currency
  Account2    Amount Currency  ; optional comment
フラグ
  • * - 決済済み/完了した取引
  • ! - 保留中/確認が必要な取引
例

単純な支出:

2026-01-03 * "Starbucks" "Morning coffee"
  Expenses:Food:Coffee    5.75 USD
  Liabilities:Card:Chase:Sapphire

複数の明細を含む給与振込:

2026-01-15 * "Employer" "Bi-weekly salary"
  Assets:Checking:Main           3500.00 USD
  Expenses:Taxes:Federal          800.00 USD
  Expenses:Taxes:State            200.00 USD
  Expenses:Insurance:Health       150.00 USD
  Income:Salary                 -4650.00 USD

口座間の振替:

2026-01-10 * "Transfer to savings"
  Assets:Savings:Ally     500.00 USD
  Assets:Checking:Main   -500.00 USD
金額の補間

明細の金額を 1 つ省略できます。Beancount が計算します。

2026-01-03 * "Grocery Store" "Weekly groceries"
  Expenses:Food:Groceries    125.43 USD
  Assets:Checking:Main  ; Amount calculated as -125.43 USD

基本的なディレクティブ

open / close

口座のライフサイクルを宣言します。

2026-01-01 open Assets:Checking:Main USD
2028-12-31 close Assets:Checking:Main
balance

1 日の開始時点での口座残高を検証します(エラーを検出します)。

2026-01-31 balance Assets:Checking:Main 4583.84 USD
pad

2 つの日付の間に残高を調整する仕訳を自動生成します。

2026-01-01 pad Assets:Checking:Main Equity:Opening-Balances
2026-01-02 balance Assets:Checking:Main 4583.84 USD
include

整理しやすいようにファイルを分割します。

include "2026-01.beancount"
include "accounts.beancount"
option

Beancount の動作を設定します。

option "title" "Personal Finances"
option "operating_currency" "USD"

メタデータとタグ

メタデータ

ディレクティブまたは明細にキーと値のペアを付与します。

2026-01-03 * "Amazon" "Office supplies"
  order-id: "123-456-789"
  Expenses:Office    45.00 USD
    category: "equipment"
  Liabilities:Card:Chase
タグとリンク

関連する取引をグループ化します。

2026-01-15 * "Hotel" "Conference lodging" #work-travel #conference-2026
  Expenses:Travel:Lodging    299.00 USD
  Liabilities:Card:Chase

2026-02-01 * "Expense Report" "Reimbursement" ^conference-2026
  Assets:Checking:Main    299.00 USD
  Income:Reimbursements

BQL クエリ

Beancount Query Language(BQL)は、SQL に似たクエリを提供します。bean-query で実行します。

bean-query finances/2026.beancount "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY 1"
よく使うクエリ

口座残高:

SELECT account, sum(position)
WHERE account ~ 'Assets:Checking'
GROUP BY 1

カテゴリ別の月間支出:

SELECT MONTH(date), account, sum(position)
WHERE account ~ 'Expenses' AND year = 2026
GROUP BY 1, 2
ORDER BY 1, 2

ある口座の取引:

SELECT date, narration, payee, position, balance
WHERE account = 'Assets:Checking:Centennial:Joint'
ORDER BY date
主な BQL 関数
関数用途
SUM(position)金額を集計する
YEAR(date), MONTH(date)日付の各要素を抽出する
COST(position)取得原価を取得する
account ~ 'pattern'口座名を正規表現で照合する

Beancount ファイルの操作

ファイルの読み取り

編集する前に Beancount ファイルを読み、以下を把握します。

  • 既存の口座構成
  • 使用されている命名規則
  • 取引のパターン
  • include ファイルの構成
取引の追加
  1. 既存の口座名と完全に一致させます
  2. 取引先名/説明のスタイルを統一します
  3. 取引の残高が差し引きゼロになるようにします
  4. 時系列に適した場所または include ファイルに追加します
検証

bean-check を実行して構文を検証します。

bean-check finances/2026.beancount
よくあるパターン

クレジットカードの支払い:

2026-01-25 * "Chase" "Credit card payment"
  Liabilities:Card:Chase:Sapphire    500.00 USD
  Assets:Checking:Main              -500.00 USD

取得原価を含む投資の購入:

2026-01-20 * "Fidelity" "Buy index fund"
  Assets:Investments:Fidelity:FXAIX    10 FXAIX {150.00 USD}
  Assets:Investments:Fidelity:Cash   -1500.00 USD

住宅ローンの支払い内訳:

2026-01-01 * "Rocket Mortgage" "Monthly mortgage"
  Liabilities:Loan:RocketMortgage     800.00 USD  ; Principal
  Expenses:Housing:Interest           900.00 USD  ; Interest
  Expenses:Housing:Escrow             300.00 USD  ; Escrow
  Assets:Checking:Main              -2000.00 USD

ベストプラクティス

ファイル構成
  • 月別またはカテゴリ別に分割するには include を使用します
  • 口座定義はメインファイルにまとめます
  • 取引は適切な include ファイルに追加します
口座階層
  • 命名の階層の深さを統一します
  • 内容を把握しやすいよう、具体的なサブカテゴリを使用します
  • 関連する口座を論理的にグループ化します
残高の検証
  • 銀行口座には毎月の残高検証を追加します
  • 実際の明細と照合します
  • データ入力ミスを早期に検出します
エラーの防止
  • 編集後は必ず bean-check を実行します
  • 残高の検証を頻繁に行います
  • 取引を時系列順に並べます

追加リソース

リファレンスファイル

構文とパターンの詳細については、以下を参照してください。

  • references/syntax.md - すべてのオプションを含むディレクティブの完全なリファレンス
  • references/bql.md - BQL クエリ言語の完全なドキュメント
  • references/examples.md - よくある取引パターンとワークフロー
Command Line Tools
CommandPurpose
bean-check file.beancountValidate syntax
bean-query file.beancount "QUERY"Run BQL query
bean-report file.beancount balancesBalance report
bean-web file.beancountWeb interface

コメント