از این مرجع برای جستوجوی دستورات bea و رفتار آنها استفاده کنید. برای نخستین دفتر کل خود، شروع سریع CLI را دنبال کنید. برای بستن یک ماه کامل از ابتدا تا انتها، نخستین ماه شما با bea را مرور کنید. برای فایلهای بانکی، از راهنمای گامبهگام واردکردن استفاده کنید.
دستورات در یک نگاه
| دستور | هدف |
|---|---|
bea init [DIRECTORY] | ایجاد دفتر کل با حسابهای رایج |
bea add TYPE | افزودن یک بخشنامه تاریخدار |
bea add transactions --from FILE.json | افزودن یک دسته تراکنش |
bea import SOURCE | پیشنمایش یک خروجی؛ برای نوشتن --apply را اضافه کنید |
bea list TYPE | فهرست و پالایش بخشنامهها |
bea check | اعتبارسنجی کل دفتر کل |
bea format PATH | همترازی یک فایل یا قالببندی بازگشتی یک پوشه |
bea query [BQL] | اجرای یک پرسوجو یا باز کردن پوسته تعاملی پرسوجو |
bea report TYPE | تولید گزارشهای مالی |
bea balance [ACCOUNT...] | چاپ موجودی حسابهای منطبق |
bea ask [QUESTION] | استفاده از کمک اختیاری هوش مصنوعی میزبانیشده با دفتر کل محلی |
bea cloud … | ورود و مدیریت دفترهای کل میزبانیشده |
bea doctor COMMAND | بررسی زمینه دفتر کل و تشخیصها |
bea example [OPTIONS] | تولید یک دفتر کل نمونه |
bea treeify [INPUT] | نمایش نام حسابها به شکل درخت متنی |
bea ingest COMMAND | شناسایی، استخراج یا بایگانی با پیکربندی Beangulp |
bea price [OPTIONS] | بررسی، تازهسازی یا صادرات قیمتهای مدیریتشده؛ در غیر این صورت دریافت نقلقول از طریق Beanprice اختیاری |
bea engine COMMAND | بررسی موتور مدیریتشده یا فعالسازی قابلیتهای اختیاری |
bea upgrade [--check] | ارتقا با مدیر بسته مالک، یا بررسی بهروزرسانی |
گزینهها و مسیرهای عمومی
گزینههای سراسری پیش از دستور میآیند:
bea --file ~/my-books/main.bean check
bea --json list transaction --limit 100| گزینه | رفتار |
|---|---|
--file / -f PATH | انتخاب دفتر کل ریشه؛ BEA_FILE و ./main.bean را بازنویسی میکند |
--json | خروجی ساختاریافته؛ اعلانهای CLI را نیز غیرفعال میکند |
--no-input | غیرفعالکردن اعلانها؛ نبود ورودی الزامی با کد 2 خارج میشود |
--yes / -y | تأیید عملیاتی مانند حذف ابری؛ مجوز نوشتن هوش مصنوعی نمیدهد |
--debug | شامل ردیابی استثناها |
--offline | حل قیمتهای مدیریتشده از حافظه نهان محلی بدون دریافت |
--strict-prices | شکست در بارگذاری هنگام کهنه یا در دسترس نبودن منبع مدیریتشده |
--strict | رد پاسخهای جزئی حتی در ترمینال؛ --allow-errors یک دستور دوباره آن را مجاز میکند |
--version | نمایش نسخه نصبشده بدون درخواست شبکهای |
--help / -h | نمایش راهنما؛ روی زیردستورها نیز موجود است |
--show-completion | چاپ تکمیل پوسته |
--install-completion | نصب تکمیل پوسته |
--shell NAME | انتخاب bash، zsh، fish، powershell یا pwsh بهجای تشخیص خودکار پوسته |
init هدف پوشه/فایل خود را میسازد و BEA_FILE را نادیده میگیرد. بهجای آرگومان پوشه، گزینه سراسری --file را میپذیرد. format از هدف مکانی خود استفاده میکند. یک نام فایل یا پوشه ارائه دهید. گزینه سراسری --file هدف قالببندی را انتخاب نمیکند.
ایجاد یک دفتر کل
bea init [DIRECTORY] بهطور پیشفرض از پوشه جاری استفاده میکند. یک پوشه فایل main.bean میسازد؛ یک مسیر .bean یا .beancount مستقیماً فایل جدید را نامگذاری میکند.
| گزینه | رفتار |
|---|---|
--currency / -c SYMBOL | ارز عملیاتی؛ در حالت غیرتعاملی الزامی، پیشفرض تعاملی USD |
--date YYYY-MM-DD | تاریخ آغازین تاریخچه/افتتاح؛ در غیر این صورت یک اعلان یا امروز |
--opening-balance "ACCOUNT NUMBER" | برای حسابهای دارایی/بدهی الگو تکرار کنید؛ مبالغ از ارز عملیاتی استفاده میکنند |
الگو حسابهای Assets:Checking، Assets:Savings، Assets:Cash، Liabilities:CreditCard، Income:Salary، Income:Interest، Expenses:Groceries، Expenses:Dining، Expenses:Rent، Expenses:Transport، Expenses:Utilities، Expenses:Fees، Expenses:Uncategorized و Equity:OpeningBalances را باز میکند.
موجودیهای افتتاحیه در برابر Equity:OpeningBalances تسویه میشوند. بدهی منفی است. ورودی ارز به حروف بزرگ تبدیل میشود. نمادهای سفارشی مجاز هستند؛ نمادی که سه حرف بزرگ نیست، هشدار اشتباه تایپی را فعال میکند. این بررسی ثبت ارز ISO نیست.
فایلهای موجود هرگز بازنویسی نمیشوند. فایلهای جدید از مجوزهای فقط مالک استفاده میکنند، حالت 0600 در POSIX. نوشتنهای افزودن و واردکردن بعدی مجوزها را حفظ میکنند و به مقصدهای فقطخواندنی احترام میگذارند. قالببندی درجا از قالببند بومی استفاده میکند و خطاهای فایلسیستم خود را گزارش میدهد.
افزودن تراکنشها
bea add transaction -n "Groceries" --payee "Corner Market" \
-p "Expenses:Groceries 30" -p "Assets:Checking" \
--flag '!' --tag household --link receipt-42 --meta 'receipt:IMG_42.jpg'| گزینه | رفتار |
|---|---|
--posting / -p POSTING | الزامی؛ برای هر ثبت تکرار کنید |
--date YYYY-MM-DD | پیشفرض امروز |
--flag CHARACTER | پیشفرض *؛ از ! برای علامتگذاری تراکنش جهت بازبینی استفاده کنید |
--payee TEXT | طرف مقابل اختیاری |
--narration / -n TEXT | هدف اختیاری؛ متن حذفشده بهعنوان (no narration) فهرست میشود |
--tag TAG، --link LINK | قابل تکرار؛ # یا ^ ابتدایی اختیاری پذیرفته میشود |
--meta KEY:VALUE | فراداده تراکنش قابل تکرار |
--into FILE | نوشتن یک فایل شاملشده همزمان با اعتبارسنجی ریشه |
--allow-errors | اجازه صریح خطاهای اعتبارسنجی معنایی؛ نحو باید هنوز تجزیه شود |
یک ثبت میتواند مبلغ خود را حذف کند. ثبتهای شمارهدار میتوانند ارز را زمانی حذف کنند که یک حساب یک ارز مجاز دارد یا دفتر کل یک ارز عملیاتی سازگار دارد. در غیر این صورت، نماد را ارائه دهید.
نحو بومی ثبت از محاسباتی مانند 84/2 EUR، هزینههایی مانند {100 USD}، هزینههای کل {{1000 USD}} و قیمتهای @ یا @@ پشتیبانی میکند. از مبالغ اعشاری مانند 1000 استفاده کنید، نه نماد توانی مانند 1e3.
یک تبدیل ارز به نرخ تراکنش واقعی خود نیاز دارد. برای مثال، 100 EUR @ 1.08 USD را به حسابی باز شده به EUR و -108 USD را به حساب جاری ثبت کنید. یک خرید سرمایهگذاری میتواند 2 AAPL {100 USD} را به حسابی باز شده به AAPL و -200 USD را به حساب جاری ثبت کند. وقتی گزارشها به ارزشگذاری بازار نیاز دارند، نقلقولهای price تاریخدار را اضافه کنید.
فراداده رشتههای ساده مانند --meta 'receipt:IMG_42.jpg' را میپذیرد. اعداد بومی، بولیها، تاریخها و مبالغ نوع خود را حفظ میکنند. مثالها شامل --meta 'reviewed:TRUE'، --meta 'received:2026-08-03' و --meta 'fee:2.50 USD' هستند. نقلقولهای داخلی یک رشته را تحمیل میکنند: --meta 'code:"1234"'. کلیدها باید متمایز باشند؛ filename و lineno رزرو شدهاند.
افزودنهای تکی، افزودنهای انبوه و واردکردنها، شکست خط در طرف مقابل، روایتها و فراداده رشتهای را با فاصله جایگزین میکنند. نقلقولها و بکاسلشها محتوای خود را حفظ میکنند.
افزودن دستورات دیگر
همه این دستورات به --date YYYY-MM-DD نیاز دارند. همچنین --into FILE و --allow-errors را میپذیرند.
| نوع | فیلدهای الزامی | گزینههای اضافی |
|---|---|---|
open | --account / -a | تکرار --currency / -c برای محدودکردن ارزها |
close | --account / -a | — |
balance | --account / -a، --amount "NUMBER CURRENCY" | --pad-from ACCOUNT، --pad-date YYYY-MM-DD |
pad | --account / -a، --source / -s | — |
note | --account / -a، --comment / --message / -m | — |
event | --type / -t، --description / -d | — |
price | --currency / --commodity / -c، --amount "NUMBER CURRENCY" | ارز، کالایی را که قیمتگذاری میشود نامگذاری میکند |
commodity | --currency / --commodity / -c | — |
document | --account / -a، --filename / --path | --tag و --link تکرارشده |
custom | --type / -t | --value / -v KIND:VALUE تکرارشده |
نام حسابها یک ریشه با حرف بزرگ و بخشهای جدا شده با دونقطه دارند. هر زیرحساب با یک حرف بزرگ یا رقم شروع میشود. بیکانت از حروف یونیکد و نامهای ریشه پیکربندیشده پشتیبانی میکند.
یک balance حساب را در ابتدای تاریخ خود بررسی میکند. نحو تلورانس پشتیبانی میشود، مانند --amount "1538 ~ 1 EUR". تلورانس باید نامنفی باشد.
از add balance --pad-from Equity:OpeningBalances برای نوشتن یک pad و تأییدیه موجودی آن با هم استفاده کنید. pad بهطور پیشفرض روز قبل است؛ --pad-date میتواند روز دیگری را زودتر انتخاب کند. هر دو حساب باید فعال باشند. یک pad مستقل به یک balance بعدی برای مصرف نیاز دارد. --allow-errors میتواند آن حالت میانی را صحنهبندی کند اما نمیتواند از یک حساب pad نامعتبر عبور کند.
add price یک تکرار دقیق تاریخ/کالا/قیمت را در ریشه و شاملهای آن نادیده میگیرد. با کد 0 خارج میشود و مکان موجود را شناسایی میکند. تاریخها یا قیمتهای متفاوت افزودنی جدید هستند.
مسیرهای سند در کنار فایلی که بخشنامه را در خود دارد حل میشوند. با --into years/2026.bean، --filename receipt.pdf به معنای years/receipt.pdf است، نه فایلی در کنار پوشه کاری پوسته شما.
انواع مقدار سفارشی text، number، amount، account، bool و date هستند. برای مثال، یک بودجه میتواند از --value "text:travel" --value "amount:500 USD" استفاده کند.
ورودی تجمعی JSON
bea add transactions --from transactions.json یک آرایه JSON را میپذیرد:
[
{
"date": "2026-08-04",
"narration": "Groceries",
"postings": [
{ "account": "Expenses:Groceries", "amount": "45.00 USD" },
{ "account": "Assets:Checking" }
],
"meta": { "receipt": "R-43", "reviewed": true }
}
]هر تراکنش به date و postings نیاز دارد. فیلدهای اختیاری flag، payee، narration، tags، links و meta هستند.
یک ثبت از amount یا units استفاده میکند، مانند {"number":"45.00","currency":"USD"}. برای ثبت متعادلکننده هر دو را حذف کنید. فیلدهای ثبت همچنین شامل cost، price، flag و meta هستند. هزینهها شامل number و currency با date و label اختیاری هستند. قیمتها شامل number و currency هستند.
برای اعشار از رشته استفاده کنید. فراداده از رشتههای معمولی و بولیها، یا مقادیر برچسبدار مانند {"kind":"number","value":"1.125"}، {"kind":"date","value":"2026-08-04"} و {"kind":"amount","number":"2.50","currency":"USD"} استفاده میکند. مکان اختیاری source تراکنش هرگز بهعنوان فراداده نوشته نمیشود.
پیشفرض یک دسته اتمی است: هر سطر رد شده دفتر کل را بدون تغییر میگذارد و با کد 1 خارج میشود. --partial یک زیرمجموعه معتبر مینویسد و اگر هر سطری رد شود هنوز با کد 1 خارج میشود. خطاهای JSON نتیجه را در error.result توصیف میکنند؛ شماره سطرها در آنجا از صفر شروع میشوند. شماره سطرهای انسانی از یک شروع میشوند.
افزودن انبوه --into و --allow-errors را میپذیرد. حذف تکراری انجام نمیدهد. برای بازبینی خروجی بانکی از bea import استفاده کنید.
تقسیم دفاتر و ایمنی نوشتن
--file را به ریشه اشاره دهید. --into را برای انتخاب یک فایل شاملشده موجود اضافه کنید:
bea --file ~/my-books/main.bean add transaction --into 2026.bean \
--date 2026-08-02 -n "Groceries" \
-p "Expenses:Groceries 30" -p "Assets:Checking"مقصد نسبت به پوشه ریشه است. باید از قبل شامل شده باشد؛ نامگذاری یک فایل نامرتبط رد میشود. دستورات افزودن، واردکردنها و نوشتنهای تعاملی هوش مصنوعی از این جداسازی پشتیبانی میکنند.
نوشتنها کل دفتر کل نامزد را اعتبارسنجی میکنند، شامل افزونهها و رزرو دسته هزینه. یک تغییر همزمان در ریشه یا گراف شامل آن با کد 4 خارج میشود. یک مقصد فقطخواندنی با کد 3 خارج میشود. افزودنهای موفق فقط خطوط جدید را همتراز میکنند. بایتهای موجود بدون تغییر میمانند. وقتی میخواهید کل فایل را دوباره همتراز کنید، از bea format -i PATH استفاده کنید.
فهرست دستورات
bea list TYPE از یازده نوع پشتیبانی میکند: transaction، open، close، balance، pad، note، event، price، commodity، document و custom.
| گزینه | اعمال به | رفتار |
|---|---|---|
--limit / -l N | همه انواع | حد مثبت؛ پیشفرض 50 |
--from-date، --to-date | همه انواع | محدودههای YYYY-MM-DD شاملشده |
--allow-errors | همه انواع | اجازه دادههای جزئی با وجود خطاهای بارگذار |
--account / -a TEXT | تراکنش، open، close، balance، pad، note، document | زیررشته حساب بدون حساسیت به بزرگی و کوچکی حروف |
--currency / -c SYMBOL | price، commodity | نماد دقیق بدون حساسیت به بزرگی و کوچکی حروف؛ price کالای پایه خود را پالایش میکند |
--sort newest/oldest | تراکنش | پیشفرض جدیدترین؛ پیش از حد اعمال میشود |
--flag CHARACTER | تراکنش | پالایش ورودیهایی مانند ! پیش از حد |
--details | تراکنش | نمایش نحو بیکانت، هر ثبت، فراداده و مکانهای منبع |
انواع دیگر بخشنامه ترتیب زمانی خود را حفظ میکنند. یک جدول تراکنش پالایششده با حساب، ستون مبلغ خود را MATCHING POSTING AMOUNTS برچسب میزند. جزئیات و JSON هنوز همه ثبتهای هر تراکنش انتخابشده را شامل میشوند. جزئیات ورودیهای بارگذاریشده را نمایش میدهد، شامل مبالغ استنتاجشده؛ آنها گزیده منبع خام نیستند.
بررسی، قالببندی و پرسوجو
bea check ریشه و شاملها را اعتبارسنجی میکند. در صورت موفقیت بیصدا با کد 0 و برای خطاهای دفتر کل با کد 1 خارج میشود. گزینه سراسری --json پاکت اعتبارسنجی را برمیگرداند. هیچ گزینه --allow-errors برای check وجود ندارد.
پرسوجوها، فهرستها و گزارشها در یک ترمینال تعاملی هشدار میدهند و نتایج جزئی برمیگردانند. گزینه سراسری --strict، --json، --no-input، CI صحیح، یا stdin غیرترمینالی خواندن را سختگیرانه میکند. گزینه --allow-errors آنها بهصراحت نتایج جزئی را مجاز میکند.
قالببندی فایلها را میپذیرد یا یک پوشه را بهصورت بازگشتی جستوجو میکند. در بسته منتشرشده 0.2.0، یک مسیر الزامی است با وجود پیشفرض stdin که در راهنما نمایش داده شده. گزینه سراسری --file هدف قالببندی را انتخاب نمیکند.
| حالت قالببندی | مینویسد؟ | رفتار خروج |
|---|---|---|
bea format PATH | متن قالببندیشده به stdout؛ منبع بدون تغییر | 0 پس از موفقیت |
bea format -i PATH | منبع را بازنویسی میکند | 0 پس از موفقیت |
bea format PATH -o formatted.bean | فایل خروجی نامگذاریشده را مینویسد | 0 پس از موفقیت |
bea format PATH --dry-run | هیچ تغییر فایلی | 0 حتی وقتی قالببندی لازم است |
bea format PATH --check | هیچ تغییر فایلی | 1 وقتی قالببندی لازم است؛ 0 وقتی پاک است |
قالببندی متن را همتراز میکند؛ نحو دفتر کل یا حسابداری را اعتبارسنجی نمیکند. bea check را جداگانه اجرا کنید. با گزینه سراسری --json، -i، -o FILE، --check یا --dry-run را انتخاب کنید تا stdout بتواند پاکت را حمل کند. stdout را روی فایل ورودی تغییر مسیر ندهید: برای بازنویسی آن از -i استفاده کنید.
bea query "BQL" یک پرسوجوی بیکانت را اجرا میکند. حذف BQL پرسوجوها را از stdin میخواند یا وقتی stdin یک ترمینال است پوسته را باز میکند. برای بستن پوسته از .exit، exit یا quit استفاده کنید. جدول پیشفرض BQL یک سطر در هر ثبت دارد. جداول پرسوجو دقت را حفظ میکنند.
| گزینه پرسوجو | رفتار |
|---|---|
--format / -f csv | صادرات CSV بهجای جدول متنی |
--output / -o FILE | نوشتن نتیجه در یک فایل |
--numberify / -m | تقسیم مقادیر موجودی متنی یا CSV به ستونهای عددی بهازای هر ارز |
--no-errors / -q | پنهانکردن تشخیصهای بارگذار؛ نتایج جزئی را مجاز نمیکند |
--source URI | استفاده از یک URI منبع Beanquery بومی |
دفتر کل را پیش از دستور انتخاب کنید، برای مثال bea --file main.bean query -f csv -o balances.csv "SELECT account, sum(position) GROUP BY account". گزینه سراسری --json از پاکت محصول با data.rows و data.columns استفاده میکند؛ این از رندر CSV متمایز است. در نسخه منتشرشده 0.2.0، از تغییر مسیر پوسته برای ذخیره JSON استفاده کنید، مانند bea --json query "SELECT account, sum(position) GROUP BY account" > result.json: گزینههای -o و -m پرسوجو در آن نسخه برای JSON اعمال نمیشوند.
ابزارهای بومی و ویژگیهای اختیاری
bea doctor context main.bean 42 زمینه تراکنش در خط 42 را نشان میدهد. bea doctor --help دیگر دستورات تشخیصی را فهرست میکند. bea example -o example.bean یک تاریخچه نمونه میسازد. bea treeify accounts.txt نامهای سلسلهمراتبی را از یک فایل متنی نمایش میدهد؛ برای خواندن stdin فایل را حذف کنید. این دستورات آرگومانهای بومی را ارسال میکنند. مثالهای بالا آن آرگومانها را بهصراحت نام میبرند.
ابزارهای اختیاری را یک بار فعال کنید با bea engine enable beanprice برای دریافت نقلقول یا bea engine enable beangulp برای جریانهای کاری واردکننده. فعالسازی به دسترسی شبکه نیاز دارد؛ Beangulp همچنین به کتابخانه سیستمی libmagic نیاز دارد. برای بررسی دسترسپذیری از bea engine status استفاده کنید. bea price --help و bea ingest --help رابطهای خود را توصیف میکنند. bea import --csv و bea add price به هیچکدام از این قابلیتهای اختیاری نیاز ندارند.
شاملهای قیمت مدیریتشده
قیمتهای زنده یک جریان کاری شامل مدیریتشده جداگانه است. دفترهای کل میزبانیشده URLهای قیمت پشتیبانیشده را حل میکنند؛ نسخههای سازگار bea همچنین شاملهای مدیریتشده و صادرات قیمت محلی را پشتیبانی میکنند. اگر نسخه نصبشده شما این دستورات را تشخیص نمیدهد، راهنمای قیمت مدیریتشده مخصوص نسخه را بررسی کنید.
| دستور | هدف |
|---|---|
bea price status | بررسی تازگی، بازنگری، زمان مشاهده و خطاها برای هر منبع |
bea price refresh | حل فیدها اکنون و گزارش اینکه کدام منابع تغییر کردهاند |
bea --offline balance | خواندن قیمتهای مدیریتشده فقط از حافظه نهان محلی |
bea --strict-prices check | رد بارگذاری با قیمتهای مدیریتشده کهنه یا در دسترس نبودن |
bea price export --output audit | صادرات یک دفتر کل خودکفا با فایلهای قیمت محلی برای ابزارهای بالادستی |
CLI URLهای مدیریتشده در فهرست مجاز را بدون ارسال اعتبارنامه حل میکند و تغییر مسیرها را رد میکند. بنابراین فیدی که به یک ورود میزبانیشده تغییر مسیر میدهد برای یک دریافت محلی تازه در دسترس نیست؛ ورود به وبسایت درخواست قیمت CLI را احراز هویت نمیکند. price status را برای خطاهای منبع بررسی کنید. در صورت لزوم از دادههای حافظه نهان، یک فید پشتیبانیشده قابل دسترس، یا قیمتهای محلی تاریخدار استفاده کنید.
price export فایلهای فید را زیر prices/ مینویسد و شاملها را به مسیرهای نسبی محلی بازنویسی میکند. Beancount، Fava و Beanquery بالادستی میتوانند آن نسخه صادرشده را بارگذاری کنند. یک منبع در دسترس نبودن، صادرات را رد میکند مگر اینکه --allow-errors استفاده شود، که میتواند نشانگر منبع آن را بدون قیمت رها کند.
قیمت تاریخدار خود شما برای همان تاریخ و جفت، قیمت مدیریتشده را بازنویسی میکند. ورودیهای فید فقطخواندنی هستند. تازهسازیهای ناموفق یک بازنگری معتبرشده قبلی را حفظ میکنند، که ممکن است کهنه باشد. آرگومانهای دیگر bea price هنوز به Beanprice ارسال میشوند؛ اگر یک فایل کار نقلقول status نام دارد، ./status را ارسال کنید تا آن را از زیردستور تشخیص دهید.
Homebrew هم CLI و هم موتور مدیریتشده آن را نصب میکند. با PyPI، اولین دستور پشتیبانیشده توسط موتور وابستگیهای پینشده را دانلود میکند؛ uv را روی PATH نگه دارید و برای آن اجرای اول دسترسی شبکه را مجاز کنید. دستورات محلی بعدی موتور را بهصورت آفلاین دوباره استفاده میکنند. مشتریان فقط beancount-io را نصب میکنند، بدون بسته Beancount جداگانه یا اسکریپتهای کنسول بومی برای مدیریت.
گزارشهای مالی
| گزارش | خروجی |
|---|---|
bea report overview | داراییها، بدهیها، درآمد، هزینهها، ارزش خالص و سریهای بازهای |
bea report income-statement | درختهای درآمد/هزینه، سود خالص و سطرهای دوره |
bea report balance-sheet | درختهای دارایی/بدهی/سرمایه و تطبیق مشتقشده |
bea report trial-balance | موجودی حسابها |
همه گزارشها --conversion / -x، --time / -t، --account / -a و --allow-errors را میپذیرند. همه بهجز تراز آزمایشی همچنین --interval / -i را میپذیرند: پیشفرض monthly، یا quarterly، yearly، weekly یا daily.
bea balance [ACCOUNT...] زیردرختهای موجودی را برای حسابهای منطبق با زیررشتههای بدون حساسیت به بزرگی و کوچکی حروف چاپ میکند، یا وقتی هیچکدام را نام نبرید کل دفتر کل را. --conversion / -x، --time / -t و --allow-errors را میپذیرد و هیچ گزینه بازه یا حساب نمیگیرد.
فیلترهای زمان شامل یک سال، ماه، تاریخ، فصل، هفته یا محدوده است، مانند 2026، 2026-08، 2026-08-31، 2026-Q3، 2026-W32 یا "2026-01 - 2026-08". دورههای نسبی شامل year، quarter، month، week، day و افستهایی مانند month-1 هستند. فیلترهای حساب هر ثبت یک تراکنش منطبق را حفظ میکنند.
تبدیل بهطور پیشفرض به ارز عملیاتی منحصربهفرد دفتر کل است. در غیر این صورت، پیشفرض units است که کالاها را جدا نگه میدارد. at_cost از هزینههای تحصیل استفاده میکند. at_value از ارزشهای بازار با بازگشت به هزینه استفاده میکند.
یک تبدیل ارز صریح به قیمتها در یا پیش از هر تاریخ ارزشگذاری نیاز دارد، شامل تاریخهای بازه. یک خطای قیمت گمشده شکاف واقعی را نام میبرد، مانند No EUR → USD price on or before 2026-01-31. یک نقلقول بعدی نمیتواند شکاف قبلی را پر کند. یک قیمت مناسب از نظر تاریخی اضافه کنید، از --conversion units استفاده کنید، یا --allow-errors را برای بررسی مقادیر جزئی انتخاب کنید.
گزارشهای جزئی ارزهای منبع را حفظ میکنند و مجموعهای ترکیبی را در دسترس نبودن علامت میزنند. JSON شامل valuation: "partial"، missing_prices و missing_price_dates است. مجموعهای سود خالص/ارزش خالص تأثیرپذیرفته در ارز درخواستی null هستند.
درآمد، بدهیها و سرمایه معمولاً از علائم منفی بیکانت استفاده میکنند. سود خالص -(income + expenses) است، برای سود مثبت. همان قرارداد برای سطرهای دوره صورت درآمد اعمال میشود. تطبیق ترازنامه برای گزارش مشتق میشود؛ هیچ بخشنامهای نمینویسد. equity_reconciled مشخص میکند که آیا تطبیق کامل در دسترس است.
JSON گزارش همچنین دوره، تاریخ پایان انحصاری، تاریخ از-تا، تبدیل، فیلتر حساب و وضعیت اعتبارسنجی دفتر کل را مشخص میکند. پیش از مقایسه مجموعها آن فیلدها را بررسی کنید.
کمک اختیاری هوش مصنوعی
bea ask هم به افزونه ask و هم به اعتبارنامههای Beancount.io از bea cloud login یا BEA_TOKEN نیاز دارد. نصب پیشفرض Homebrew وابستگیهای هوش مصنوعی را حذف میکند. کاربران Homebrew میتوانند اجرا کنند:
bea cloud login
uvx --from 'beancount-io[ask]' bea ask "What did I spend last month?" --printبرای نصب uv، beancount-io[ask] را نصب کنید و bea ask را مستقیماً اجرا کنید. --print / -p یک بار پاسخ میدهد و خارج میشود. در غیر این صورت، یک جلسه ترمینال تعاملی است و یک پرسش اختیاری ورودی آن را پیشپر میکند. استفاده غیرتعاملی به یک پرسش نیاز دارد. حالت JSON پشتیبانی نمیشود.
پرسوجوها بهصورت محلی اجرا میشوند. پرسشها، زمینه مهارت و نتایج ابزار به سرویس هوش مصنوعی میزبانیشده Beancount.io میروند. نوشتنهای تعاملی پیشنمایش، تأیید، اعتبارسنجی و بهصورت اتمی نوشته میشوند. --into را میپذیرند. گزینه سراسری --yes مجوز نوشتن هوش مصنوعی نمیدهد. حالت تکپاسخی نوشتنهای پیشنهادی را اعمال نمیکند.
Ask فایل NAME/SKILL.md را از .agents/skills/ در پوشه کاری و از skills/ در پوشه پیکربندی کاربر میخواند. تعاریف پروژه بر اساس نام برنده میشوند. هر فایل به فیلدهای YAML name و description نیاز دارد. دستورات کامل در صورت نیاز بارگذاری میشوند. برای چیدمان فایل و یک مثال کاربردی، گسترش bea ask با مهارتها را ببینید.
دفاتر حساب میزبانی شده
| دستور | گزینهها و رفتار |
|---|---|
bea cloud login | ورود تعاملی مرورگر/دستگاه |
bea cloud logout | تلاش برای خروج از راه دور و پاککردن اعتبارنامههای ذخیرهشده |
bea cloud status | حساب، منبع اعتبارنامه و انقضا |
bea cloud ledger list | --page پیشفرض 1؛ --limit پیشفرض 50، حداکثر API 100 |
bea cloud ledger show OWNER/NAME | بررسی یک دفتر کل میزبانیشده |
bea cloud ledger create NAME | --description / -d، --private / --public؛ پیشفرض خصوصی |
bea cloud ledger clone OWNER/NAME | کلون SSH؛ --dir PATH اختیاری |
bea cloud ledger delete OWNER/NAME | حذف دائمی؛ تأیید یا --yes سراسری الزامی است |
با گزینه سراسری --json، bea cloud status، bea cloud ledger list، bea cloud ledger show، bea cloud ledger create و bea cloud ledger delete پاکت استاندارد را منتشر میکنند. ورود نیاز به تعامل دارد؛ خروج و کلون موفق یک شیء موفقیت JSON برنمیگردانند.
ایجاد همچنین --clone و --dir را میپذیرد. برای کلون کردن دسترسی Git و SSH الزامی است. اگر کلون پس از ایجاد ناموفق باشد، دفتر کل میزبانیشده هنوز وجود دارد. دستورات محلی دفتر کل شما را بهطور خودکار بارگذاری نمیکنند. هیچ گزینه سراسری --ledger وجود ندارد.
JSON و کدهای خروج
گزینه سراسری --json نتایج موفق را روی stdout میگذارد:
{
"bea": "0.2.0",
"target": { "file": "/home/alice/my-books/main.bean" },
"data": [],
"truncated": false,
"limit": 50
}bea نسخه نصبشده است؛ data به دستور بستگی دارد. اهداف یک فایل، پوشه، سرور یا بدون هدف را مشخص میکنند. نوشتنهای شاملشده همچنین into را مشخص میکنند. مبالغ اعشاری و تاریخها از رشته استفاده میکنند. فهرستهای محدود شامل limit و truncated هستند.
شکستها {"error":{"category":"validation","message":"…","exit_code":1}} را در stderr مینویسند. خطا همچنین میتواند شامل details، result، یک request_id پشتیبان و یک traceback با --debug باشد.
| کد | دسته | معنا |
|---|---|---|
| 0 | — | موفقیت، شامل پیشنمایشها و نادیدهگیریهای عمدی تکراریها |
| 1 | validation | خطای دفتر کل/طرحواره، شکست بررسی قالببندی، یا سایر شکستهای زمان اجرا |
| 2 | usage | آرگومانهای نامعتبر، هدف/ورودی گمشده، یا وابستگیهای اختیاری گمشده |
| 3 | auth | شکست احراز هویت یا مجوز |
| 4 | conflict | ویرایش همزمان، بازبینی واردکردن الزامی، هدف init موجود، یا نتیجه نوشتن راه دور نامشخص |
پیش از تلاش مجدد برای یک جهش، error.result را بررسی کنید. یک دسته جزئی میتواند سطرهای پذیرفتهشده را بنویسد، قالببندی بازگشتی میتواند فایلهای معتبر را تغییر دهد، و ایجاد-و-کلون میتواند یک دفتر کل میزبانیشده را پیش از خروج با کد غیرصفر ایجاد کند. برای اسکریپتی که این پاکت را با jq میخواند و بر اساس این کدها شاخهبندی میکند، خودکارسازی حسابداری با bea را ببینید.
اعلانهای CLI با --no-input، حالت JSON، stdin غیرترمینالی، یا CI صحیح غیرفعال میشوند. حذف ابری هنوز به --yes صریح نیاز دارد. واردکردنها وقتی تطبیقها نیاز به بازبینی دارند به یک تصمیم صریح تکراری نیاز دارند.
استثناهای خروجی: doctor، example، treeify، فراخوانیهای price ارسالی به Beanprice و ingest خروجی و وضعیت خروج بومی را حفظ میکنند، حتی با --json سراسری؛ پاکت و دستههای خروج بالا آن نتایج ارسالی را توصیف نمیکنند. Ask JSON را رد میکند؛ ورود ابری به تعامل نیاز دارد؛ خروج و کلون موفق ابری هیچ شیء موفقیت JSON برنمیگردانند. راهنما، نسخه و تکمیل خروجی متنی را حفظ میکنند. upgrade میتواند خروجی مدیر بسته خود را به stderr استریم کند، حتی در حالت JSON.
تنظیمات، بهروزرسانیها و حالت ذخیرهشده
| متغیر محیطی | هدف |
|---|---|
BEA_FILE | دفتر کل ریشه پیشفرض پس از --file |
BEA_CONFIG_DIR | بازنویسی پوشه پیکربندی کاربر |
XDG_CONFIG_HOME | در غیر این صورت از $XDG_CONFIG_HOME/bea استفاده میکند، با بازگشت به ~/.config/bea |
XDG_DATA_HOME | پایه موتور PyPI مدیریتشده؛ در غیر این صورت ~/.local/share/bea/engine/ |
XDG_CACHE_HOME | پایه پوشه حافظه نهان؛ در غیر این صورت ~/.cache/bea |
BEA_TOKEN | بازنویسی اعتبارنامه میزبانیشده؛ بر اعتبارنامههای ذخیرهشده اولویت دارد و ذخیره نمیشود |
BEA_API_URL | پایه API؛ پیشفرض https://api.v3.beancount.io |
BEA_DASHBOARD_URL | پایه ورود مرورگر؛ پیشفرض https://beancount.io |
BEA_NO_UPDATE_NOTIFIER | غیرفعالکردن اعلانهای بهروزرسانی غیرفعال وقتی صحیح است |
MANAGED_PRICE_ORIGINS | مبدأهای مجاز جدا شده با کاما؛ پیشفرض https://beancount.io؛ خالی شاملهای مدیریتشده را غیرفعال میکند |
MANAGED_PRICE_OFFLINE | صحیح فقط از قیمتهای مدیریتشده حافظه نهان استفاده میکند، مانند --offline |
MANAGED_PRICE_STRICT | صحیح منابع مدیریتشده کهنه یا در دسترس نبودن را رد میکند، مانند --strict-prices |
CI | غیرفعالکردن اعلانهای CLI و اعلانهای بهروزرسانی غیرفعال وقتی صحیح است |
مقادیر صحیح 1، true، yes و on هستند، بدون حساسیت به بزرگی و کوچکی حروف و فاصلههای اطراف. وضعیت پیکربندی شامل اعتبارنامهها، تاریخچه پرسش Ask، مهارتهای کاربر، مسیرهای واردکننده بهخاطرسپردهشده و حافظههای نهان بررسی بهروزرسانی است. قفلهای نوشتن زیر locks/ پوشه حافظه نهان، بیرون از پوشه دفتر کل شما قرار دارند.
bea upgrade --check نسخهها و روش نصب را بدون ارتقا گزارش میدهد. bea upgrade دستور brew upgrade bea، uv tool upgrade beancount-io یا pipx upgrade beancount-io را فراخوانی میکند. نصبهای قابل ویرایش راهنمای بهروزرسانی دستی دریافت میکنند. بررسیهای غیرفعال حداکثر یک بار در روز در نسخههای نصبشده تعاملی اجرا میشوند؛ upgrade --check صریح حتی وقتی اعلاندهنده غیرفعال است همچنان اجرا میشود.
با مدیر منطبق حذف نصب کنید: brew uninstall bea، uv tool uninstall beancount-io یا pipx uninstall beancount-io. فایلهای دفتر کل و پیکربندی کاربر شما باقی میمانند.
اصلاحات معمول
| نشانه | گام بعدی |
|---|---|
| دفتر کل یافت نشد | --file PATH را انتخاب کنید، وارد پوشه دفتر کل شوید، یا برای دفترهای جدید از bea init استفاده کنید |
| یک پرچم سراسری میگوید «No such option» | آن را پیش از دستور قرار دهید، مانند bea --file main.bean check |
| یک حساب ناشناخته است | آن را با bea add open --date YYYY-MM-DD --account ACCOUNT باز کنید |
| یک حساب غیرفعال است | تاریخهای open/close ذکرشده را بخوانید؛ تاریخ تراکنش یا تاریخچه حساب را اصلاح کنید |
| یک pad استفاده نشده است | تأییدیه موجودی بعدی آن را تکمیل کنید؛ برای یک جفت اتمی از add balance --pad-from استفاده کنید |
| تبدیل ارز ناقص است | قیمتهایی که تاریخهای نامبردهشده در خطا را پوشش میدهند اضافه کنید، یا units را بررسی کنید |
| یک سند یافت نمیشود | مسیر آن را در کنار فایل بخشنامه حل کنید، شامل مقصد --into |
| دفتر کل در حین نوشتن تغییر کرد | محتوای جدید را بررسی کنید، سپس از یک پیشنمایش تازه دوباره تلاش کنید |
| تشخیص پوسته ناموفق بود | یک پوسته مشخص کنید، مانند bea --shell zsh --show-completion |
از bea COMMAND --help برای بررسی نسخه نصبشده خود استفاده کنید. مرجع مخزن منبع شامل مثالهای اضافی و تعاریف دقیق مدل بخشنامه است.