Beancount Accounting について
Beancountで家計を管理する人向けのスキルガイドです。プレーンテキストの複式簿記ファイルの作成、編集、クエリに加え、ディレクティブ、BQL、検証コマンドを扱います。
主な機能
- 01Beancountファイルの作成と編集
- 02複式簿記の残高ルールへの準拠
- 03口座・取引・メタデータのディレクティブ
- 04BQLによる記録のクエリ
- 05bean-checkによるファイル検証
活用シーン
- 01日々の支出や口座振替の記録
- 02カテゴリ別の月次支出集計
- 03銀行口座残高の照合
- 04編集した会計ファイルの検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ouachitalabs/ skills --skill beancount-accountingインストール後、Claude Code で/beancount-accountingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/bql.mdexamples.mdsyntax.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 ファイルの構成
取引の追加
- 既存の口座名と完全に一致させます
- 取引先名/説明のスタイルを統一します
- 取引の残高が差し引きゼロになるようにします
- 時系列に適した場所または 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
| Command | Purpose |
|---|---|
bean-check file.beancount | Validate syntax |
bean-query file.beancount "QUERY" | Run BQL query |
bean-report file.beancount balances | Balance report |
bean-web file.beancount | Web interface |