Используйте этот справочник, чтобы найти команды 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. Последующие записи add и import сохраняют права и уважают назначения только для чтения. Форматирование на месте использует нативный форматтер и сообщает о собственных файловых ошибках.
Добавить транзакции
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 |
Имена счетов имеют корень с заглавной буквы и сегменты, разделённые двоеточиями. Каждый субсчёт начинается с заглавной буквы или цифры. Beancount поддерживает буквы Unicode и настроенные имена корней.
Директива balance проверяет счёт на начало своей даты. Поддерживается синтаксис допуска, например --amount "1538 ~ 1 EUR". Допуск должен быть неотрицательным.
Используйте add balance --pad-from Equity:OpeningBalances, чтобы записать pad и его проверку баланса вместе. Pad по умолчанию относится к предыдущему дню; --pad-date может выбрать другой более ранний день. Оба счёта должны быть активны. Отдельный pad требует более поздней проверки баланса, чтобы быть использованным. --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 | Transaction, open, close, balance, pad, note, document | Подстрока счёта без учёта регистра |
--currency / -c SYMBOL | Price, commodity | Точный символ без учёта регистра; price фильтрует свою базовую валюту |
--sort newest/oldest | Transaction | По умолчанию newest; применяется до лимита |
--flag CHARACTER | Transaction | Фильтровать записи, например !, до лимита |
--details | Transaction | Показать синтаксис Beancount, каждую проводку, метаданные и расположения источников |
Другие типы директив сохраняют хронологический порядок. Таблица транзакций с фильтром по счёту помечает столбец суммы как MATCHING POSTING AMOUNTS. Детали и JSON всё равно включают все проводки каждой выбранной транзакции. Детали отображают загруженные записи, включая выведенные суммы; это не необработанные фрагменты источника.
Проверка, форматирование и запросы
bea check проверяет корень и включения. Он завершается с кодом 0 без вывода при успехе и с кодом 1 при ошибках реестра. Глобальный --json возвращает конверт валидации. Для check нет параметра --allow-errors.
Запросы, списки и отчёты предупреждают и возвращают частичные результаты в интерактивном терминале. Глобальный --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" выполняет запрос Beancount. Если 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 не нуждаются ни в одной из опциональных функций.
Управляемые включения цен
Live Prices — это отдельный рабочий процесс управляемых включений. Облачные реестры разрешают поддерживаемые 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. Все, кроме trial balance, также принимают --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 в запрошенной валюте.
Доходы, обязательства и капитал обычно используют отрицательные знаки Beancount. Чистая прибыль — это -(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 |
| Счёт неактивен | Прочитайте указанные даты открытия/закрытия; исправьте дату транзакции или историю счёта |
| Pad не использован | Завершите его более поздней проверкой баланса; используйте add balance --pad-from для атомарной пары |
| Конвертация валюты неполна | Добавьте цены, покрывающие даты, указанные в ошибке, или изучите units |
| Документ не найден | Разрешите его путь рядом с файлом директивы, включая назначение --into |
| Реестр изменился во время записи | Изучите новое содержимое, затем повторите с свежего предпросмотра |
| Определение оболочки не удалось | Укажите оболочку, например bea --shell zsh --show-completion |
Используйте bea COMMAND --help, чтобы изучить вашу установленную версию. Справочник по исходному репозиторию содержит дополнительные примеры и точные определения модели директив.