Gebruik deze referentie om bea-commando's en hun gedrag op te zoeken. Voor uw eerste boekhouding volgt u de CLI-snelstart. Voor bankbestanden gebruikt u de importwalkthrough.
Commando's in één oogopslag
| Commando | Doel |
|---|---|
bea init [DIRECTORY] | Een boekhouding met gangbare rekeningen aanmaken |
bea add TYPE | Een gedateerde richtlijn toevoegen |
bea add transactions --from FILE.json | Een batch transacties toevoegen |
bea import SOURCE | Een export bekijken; voeg --apply toe om te schrijven |
bea list TYPE | Richtlijnen weergeven en filteren |
bea check | De volledige boekhouding valideren |
bea format [PATH] | Een bestand uitlijnen of een map recursief formatteren |
bea query [BQL] | Een query uitvoeren of de interactieve queryshell openen |
bea report TYPE | Financiële rapporten produceren |
bea ask [QUESTION] | Optionele gehoste AI-assistentie gebruiken met een lokale boekhouding |
bea cloud … | Inloggen en gehoste boekhoudingen beheren |
bea upgrade [--check] | Upgraden met de bijbehorende packagemanager, of controleren op een update |
Globale opties en paden
Globale opties komen vóór het commando:
bea --file ~/my-books/main.bean check
bea --json list transaction --limit 100| Optie | Gedrag |
|---|---|
--file / -f PATH | Selecteer de hoofdboekhouding; overschrijft BEA_FILE en ./main.bean |
--json | Gestructureerde uitvoer; schakelt ook CLI-prompts uit |
--no-input | Prompts uitschakelen; ontbrekende vereiste invoer eindigt met code 2 |
--yes / -y | Operaties bevestigen zoals cloudverwijdering; verleent geen AI-schrijfrechten |
--debug | Uitzondering-tracebacks opnemen |
--version | De geïnstalleerde versie tonen zonder netwerkverzoek |
--help / -h | Help tonen; ook beschikbaar op subcommando's |
--show-completion | Shell-completion afdrukken |
--install-completion | Shell-completion installeren |
--shell NAME | bash, zsh, fish, powershell of pwsh selecteren in plaats van shell detecteren |
init maakt zijn eigen map/bestandsdoel en negeert BEA_FILE. Het accepteert het globale --file in plaats van het mappargument. format gebruikt zijn eigen positionele doel, standaard de werkmap. Het globale --file kiest niet het formatteerdoel.
Een boekhouding aanmaken
bea init [DIRECTORY] gebruikt standaard de huidige map. Een map maakt main.bean; een .bean- of .beancount-pad benoemt direct het nieuwe bestand.
| Optie | Gedrag |
|---|---|
--currency / -c SYMBOL | Functionele valuta; vereist onbemand, interactieve standaard USD |
--date YYYY-MM-DD | Vroegste historie/openingsdatum; anders een prompt of vandaag |
--opening-balance "ACCOUNT NUMBER" | Herhaal voor sjabloonactiva-/passivarekeningen; bedragen gebruiken de functionele valuta |
Het sjabloon opent Assets:Checking, Assets:Savings, Assets:Cash, Liabilities:CreditCard, Income:Salary, Income:Interest, Expenses:Groceries, Expenses:Dining, Expenses:Rent, Expenses:Transport, Expenses:Utilities, Expenses:Fees en Equity:OpeningBalances.
Openingssaldi worden gecompenseerd tegen Equity:OpeningBalances. Schuld is negatief. Valutainvoer wordt in hoofdletters gezet. Aangepaste symbolen zijn toegestaan; een symbool dat niet uit drie hoofdletters bestaat, activeert een typfoutwaarschuwing. Dit is geen ISO-valutaregistercontrole.
Bestaande bestanden worden nooit overschreven. Nieuwe bestanden gebruiken alleen-eigenaar-rechten, modus 0600 op POSIX. Latere toevoeg-, import- en formatteerschrijfbewerkingen behouden rechten en respecteren alleen-lezen doelen.
Transacties toevoegen
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'| Optie | Gedrag |
|---|---|
--posting / -p POSTING | Vereist; herhaal voor elke boeking |
--date YYYY-MM-DD | Standaard vandaag |
--flag CHARACTER | Standaard *; gebruik ! om een transactie te markeren voor controle |
--payee TEXT | Optionele wederpartij |
--narration / -n TEXT | Optioneel doel; weggelaten tekst wordt vermeld als (no narration) |
--tag TAG, --link LINK | Herhaalbaar; optioneel leidend # of ^ wordt geaccepteerd |
--meta KEY:VALUE | Herhaalbare transactiemetadata |
--into FILE | Een opgenomen bestand schrijven terwijl de hoofdmap wordt gevalideerd |
--allow-errors | Semantische validatiefouten expliciet toestaan; syntaxis moet nog steeds parsen |
Eén boeking mag het bedrag weglaten. Genummerde boekingen mogen de valuta weglaten wanneer een rekening één toegestane valuta heeft of de boekhouding één compatibele functionele valuta heeft. Anders levert u het symbool.
Native boekingssyntaxis ondersteunt rekenkunde zoals 84/2 EUR, kosten zoals {100 USD}, totale kosten {{1000 USD}} en prijzen @ of @@. Gebruik decimale bedragen zoals 1000, niet exponentnotatie zoals 1e3.
Een valuta-uitwisseling heeft de werkelijke transactiekoers nodig. Boek bijvoorbeeld 100 EUR @ 1.08 USD naar een rekening die in EUR is geopend en -108 USD naar de betaalrekening. Een beleggingsaankoop kan 2 AAPL {100 USD} boeken naar een rekening die in AAPL is geopend en -200 USD naar de betaalrekening. Voeg gedateerde price-noteringen toe wanneer rapporten marktwaardering nodig hebben.
Metadata accepteert kale tekenreeksen zoals --meta 'receipt:IMG_42.jpg'. Native getallen, booleans, datums en bedragen behouden hun type. Voorbeelden zijn --meta 'reviewed:TRUE', --meta 'received:2026-08-03' en --meta 'fee:2.50 USD'. Binnenste aanhalingstekens dwingen een tekenreeks af: --meta 'code:"1234"'. Sleutels moeten verschillend zijn; filename en lineno zijn gereserveerd.
Enkele toevoegingen, bulksgewijze toevoegingen en imports vervangen regeleinden in begunstigden, omschrijvingen en tekenreeksmetadata door spaties. Aanhalingstekens en backslashes behouden hun inhoud.
Andere richtlijnen toevoegen
Al deze commando's vereisen --date YYYY-MM-DD. Ze accepteren ook --into FILE en --allow-errors.
| Type | Vereiste velden | Extra opties |
|---|---|---|
open | --account / -a | Herhaal --currency / -c om valuta's te beperken |
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" | Valutanaam benoemt het geprijsde goed |
commodity | --currency / --commodity / -c | — |
document | --account / -a, --filename / --path | Herhaalde --tag en --link |
custom | --type / -t | Herhaalde --value / -v KIND:VALUE |
Rekeningnamen hebben een met hoofdletter geschreven wortel en door dubbele punten gescheiden segmenten. Elk subaccount begint met een hoofdletter of cijfer. Beancount ondersteunt Unicode-letters en geconfigureerde wortelnamen.
Een balans controleert de rekening aan het begin van zijn datum. Tolerantiesyntaxis wordt ondersteund, zoals --amount "1538 ~ 1 EUR". De tolerantie moet niet-negatief zijn.
Gebruik add balance --pad-from Equity:OpeningBalances om samen een pad en een balansassertie te schrijven. Het pad gebruikt standaard de vorige dag; --pad-date kan een andere eerdere dag selecteren. Beide rekeningen moeten actief zijn. Een zelfstandig pad heeft een latere balans nodig om het te consumeren. --allow-errors kan die tussenliggende staat opvoeren, maar kan geen ongeldige padrekening omzeilen.
add price slaat een exacte datum/goed/prijs-duplicatie over in de hoofdmap en zijn includes. Het eindigt met code 0 en identificeert de bestaande locatie. Verschillende datums of prijzen zijn nieuwe toevoegingen.
Documentpaden worden opgelost naast het bestand dat de richtlijn bevat. Met --into years/2026.bean betekent --filename receipt.pdf years/receipt.pdf, niet een bestand naast de werkmap van uw shell.
Aangepaste waardesoorten zijn text, number, amount, account, bool en date. Een budget kan bijvoorbeeld --value "text:travel" --value "amount:500 USD" gebruiken.
Bulksgewijze JSON-invoer
bea add transactions --from transactions.json accepteert een JSON-array:
[
{
"date": "2026-08-04",
"narration": "Groceries",
"postings": [
{ "account": "Expenses:Groceries", "amount": "45.00 USD" },
{ "account": "Assets:Checking" }
],
"meta": { "receipt": "R-43", "reviewed": true }
}
]Elke transactie vereist date en postings. Optionele velden zijn flag, payee, narration, tags, links en meta.
Een boeking gebruikt amount of units, zoals {"number":"45.00","currency":"USD"}. Laat beide weg voor de salderingsboeking. Boekingsvelden omvatten ook cost, price, flag en meta. Kosten bevatten number en currency, met optionele date en label. Prijzen bevatten number en currency.
Gebruik tekenreeksen voor decimalen. Metadata gebruikt gewone tekenreeksen en booleans, of getagde waarden zoals {"kind":"number","value":"1.125"}, {"kind":"date","value":"2026-08-04"} en {"kind":"amount","number":"2.50","currency":"USD"}. De optionele transactie-source-locatie wordt nooit als metadata geschreven.
De standaard is een atomaire batch: elke afgewezen rij laat de boekhouding ongewijzigd en eindigt met code 1. --partial schrijft een geldige subset en eindigt nog steeds met code 1 als rijen worden afgewezen. JSON-fouten beschrijven de uitkomst in error.result; rij-indexen daar zijn nul-gebaseerd. Menselijke rijnummers zijn één-gebaseerd.
Bulksgewijze toevoeging accepteert --into en --allow-errors. Het de-dupliceert niet. Gebruik bea import voor beoordeling van bankexporten.
Gesplitste boekhoudingen en schrijfveiligheid
Houd --file gericht op de hoofdmap. Voeg --into toe om een bestaand opgenomen bestand te selecteren:
bea --file ~/my-books/main.bean add transaction --into 2026.bean \
--date 2026-08-02 -n "Groceries" \
-p "Expenses:Groceries 30" -p "Assets:Checking"Het doel is relatief ten opzichte van de hoofdmap. Het moet al zijn opgenomen; het benoemen van een niet-gerelateerd bestand wordt geweigerd. Toevoegcommando's, imports en interactieve AI-schrijfbewerkingen ondersteunen deze scheiding.
Schrijfbewerkingen valideren de volledige kandidaatboekhouding, inclusief plug-ins en kostlotboeking. Een gelijktijdige wijziging aan de hoofdmap of zijn opnamegrafiek eindigt met code 4. Een alleen-lezen doel eindigt met code 3. Succesvolle toevoegingen gebruiken dezelfde uitlijning als bea format, die bestaande kolommen in dat doel opnieuw kan uitlijnen.
Richtlijnen weergeven
bea list TYPE ondersteunt de elf typen: transaction, open, close, balance, pad, note, event, price, commodity, document en custom.
| Optie | Van toepassing op | Gedrag |
|---|---|---|
--limit / -l N | Alle typen | Positieve limiet; standaard 50 |
--from-date, --to-date | Alle typen | Inclusieve YYYY-MM-DD-grenzen |
--allow-errors | Alle typen | Gedeeltelijke gegevens toestaan ondanks loaderfouten |
--account / -a TEXT | Transactie, open, close, balans, pad, notitie, document | Hoofdletterongevoelige rekening-subtekenreeks |
--currency / -c SYMBOL | Prijs, goed | Hoofdletterongevoelig exact symbool; prijs filtert zijn basisgoed |
--sort newest/oldest | Transactie | Standaard nieuwste; toegepast vóór de limiet |
--flag CHARACTER | Transactie | Vermeldingen filteren zoals ! vóór de limiet |
--details | Transactie | Beancount-syntaxis weergeven, elke boeking, metadata en bronlocaties |
Andere richtlijntypen behouden chronologische volgorde. Een transactietabel met accountfilter labelt de bedragkolom MATCHING POSTING AMOUNTS. Details en JSON bevatten nog steeds alle boekingen van elke geselecteerde transactie. Details weergeven geladen vermeldingen, inclusief afgeleide bedragen; ze zijn geen ruwe bronexcerpten.
Controleren, formatteren en query's
bea check valideert de hoofdmap en includes. Het eindigt met code 1 voor boekhoudfouten en heeft geen --allow-errors-optie. Query's, lijsten en rapporten verwerpen ook loaderfouten tenzij u expliciet hun --allow-errors-optie doorgeeft.
Formatteren neemt een .bean/.beancount-bestand of een map. Een map wordt recursief doorzocht.
| Formatteermodus | Schrijft? | Exitgedrag |
|---|---|---|
bea format PATH | Ja | 0 na succes |
bea format PATH --dry-run | Nee | 0, zelfs wanneer bestanden zouden veranderen |
bea format PATH --check | Nee | 1 wanneer formatteren nodig is; 0 wanneer schoon |
Elke modus rapporteert syntaxisfouten per bestand en regel, slaat die bestanden over en eindigt met code 1. Een recursieve normale run kan de geldige bestanden nog steeds formatteren. JSON rapporteert scanned, formatted, skipped, dry_run en check, onder error.result bij mislukking.
bea query "BQL" voert een Beancount-query uit. Het weglaten van BQL opent een interactieve shell; exit of quit sluit deze. Een queryargument is vereist onbemand. De standaardtabel in BQL heeft één rij per boeking. Querytabellen behouden precisie. Lege resultaten printen (no rows) naar stderr; JSON retourneert een lege data.rows en kolommetadata in data.columns.
Financiële rapporten
| Rapport | Uitvoer |
|---|---|
bea report overview | Activa, passiva, inkomsten, uitgaven, vermogen en intervalreeksen |
bea report income-statement | Inkomsten-/uitgavenbomen, nettowinst en perioderijen |
bea report balance-sheet | Activa-/passiva-/eigen vermogen-bomen en afgeleide reconciliatie |
bea report trial-balance | Rekeningsaldi |
Alle rapporten accepteren --conversion / -x, --time / -t, --account / -a en --allow-errors. Alle behalve proefbalans accepteren ook --interval / -i: standaard monthly, of quarterly, yearly, weekly of daily.
Tijdfilters omvatten een jaar, maand, datum, kwartaal, week of bereik, zoals 2026, 2026-08, 2026-08-31, 2026-Q3, 2026-W32 of "2026-01 - 2026-08". Relatieve perioden omvatten year, quarter, month, week, day en verschuivingen zoals month-1. Accountfilters behouden elke boeking van een overeenkomende transactie.
Conversie gebruikt standaard de enige functionele valuta van de boekhouding. Anders gebruikt het standaard units, waarbij goederen gescheiden blijven. at_cost gebruikt aanschafkosten. at_value gebruikt marktwaarden met een kostenfallback.
Een expliciete valutaconversie vereist prijzen op of vóór elke waarderingsdatum, inclusief intervaldatums. Een fout met ontbrekende prijs benoemt de werkelijke hiaat, zoals No EUR → USD price on or before 2026-01-31. Een latere notering kan een eerder hiaat niet opvullen. Voeg een historisch geschikte prijs toe, gebruik --conversion units of kies --allow-errors om gedeeltelijke waarden te inspecteren.
Gedeeltelijke rapporten behouden bronvaluta's en markeren gecombineerde totalen als niet beschikbaar. JSON omvat valuation: "partial", missing_prices en missing_price_dates. Getroffen nettowinst-/vermogenstotalen zijn null in de gevraagde valuta.
Inkomsten, passiva en eigen vermogen gebruiken normaal negatieve Beancount-tekens. Nettowinst is -(income + expenses), positief voor een winst. Dezelfde conventie geldt voor perioderijen in de resultatenrekening. Balansreconciliatie wordt afgeleid voor het rapport; het schrijft geen richtlijnen. equity_reconciled identificeert of een complete reconciliatie beschikbaar is.
Rapport-JSON identificeert ook de periode, exclusieve einddatum, peildatum, conversie, accountfilter en validatiestatus van de boekhouding. Controleer die velden voordat u totalen vergelijkt.
Optionele AI-assistentie
bea ask vereist zowel het ask-extra als Beancount.io-referenties van bea cloud login of BEA_TOKEN. De standaard Homebrew-installatie laat AI-afhankelijkheden weg. Homebrew-gebruikers kunnen uitvoeren:
bea cloud login
uvx --from 'beancount-io[ask]' bea ask "What did I spend last month?" --printVoor een uv-installatie installeert u beancount-io[ask] en voert u bea ask direct uit. --print / -p beantwoordt eenmalig en eindigt. Anders is een terminalsessie interactief, en een optionele vraag vult de invoer vooraf. Niet-interactief gebruik vereist een vraag. JSON-modus wordt niet ondersteund.
Query's worden lokaal uitgevoerd. Vragen, vaardigheidscontext en toolresultaten gaan naar de gehoste Beancount.io-AI-service. Interactieve schrijfbewerkingen worden voorvertoond, bevestigd, gevalideerd en atomair geschreven. Ze accepteren --into. Het globale --yes verleent geen AI-schrijfrechten. Eén-antwoordmodus past geen voorgestelde schrijfbewerkingen toe.
Ask leest NAME/SKILL.md uit .agents/skills/ in de werkmap en uit skills/ in de gebruikersconfiguratiemap. Projectdefinities winnen per naam. Elk bestand heeft YAML-velden name en description nodig. Volledige instructies worden op aanvraag geladen.
Gehoste boekhoudingen
| Commando | Opties en gedrag |
|---|---|
bea cloud login | Interactieve browser/apparaat-aanmelding |
bea cloud logout | Probeert externe afmelding en wist opgeslagen referenties |
bea cloud status | Account, referentiebron en vervaldatum |
bea cloud ledger list | --page standaard 1; --limit standaard 50, API-maximum 100 |
bea cloud ledger show OWNER/NAME | Een gehoste boekhouding inspecteren |
bea cloud ledger create NAME | --description / -d, --private / --public; standaard privé |
bea cloud ledger clone OWNER/NAME | SSH-kloon; optioneel --dir PATH |
bea cloud ledger delete OWNER/NAME | Permanente verwijdering; bevestiging of globaal --yes vereist |
Creatie accepteert ook --clone en --dir. Git- en SSH-toegang zijn vereist om te klonen. Als het klonen na creatie mislukt, bestaat de gehoste boekhouding nog steeds. Lokale commando's uploaden uw boekhouding niet automatisch. Er is geen globale --ledger-optie.
JSON en exitcodes
Global --json plaatst succesvolle resultaten op stdout:
{
"bea": "0.1.0",
"target": { "file": "/home/alice/my-books/main.bean" },
"data": [],
"truncated": false,
"limit": 50
}bea is de geïnstalleerde versie; data hangt af van het commando. Doelen identificeren een bestand, map, server of geen doel. Opgenomen schrijfbewerkingen identificeren ook into. Decimale bedragen en datums gebruiken tekenreeksen. Beperkte lijsten omvatten limit en truncated.
Mislukkingen schrijven {"error":{"category":"validation","message":"…","exit_code":1}} naar stderr. De fout kan ook details, result, een backend-request_id en een traceback met --debug bevatten.
| Code | Categorie | Betekenis |
|---|---|---|
| 0 | — | Succes, inclusief voorvertoningen en opzettelijke duplicaatoverslagen |
| 1 | validation | Boekhoud/schemafout, formatteercontrolefout of andere runtimefout |
| 2 | usage | Ongeldige argumenten, ontbrekend doel/invoer of ontbrekende optionele afhankelijkheden |
| 3 | auth | Authenticatie- of machtigingsfout |
| 4 | conflict | Gelijktijdige bewerking, importbeoordeling vereist, bestaand init-doel of onzekere externe schrijfuitkomst |
Controleer error.result voordat u een mutatie opnieuw probeert. Een gedeeltelijke batch kan geaccepteerde rijen schrijven, recursief formatteren kan geldige bestanden wijzigen, en create-and-clone kan een gehoste boekhouding maken vóór het beëindigen met een code ongelijk aan nul.
CLI-prompts worden uitgeschakeld door --no-input, JSON-modus, niet-terminal-stdin of truthy CI. Cloudverwijdering vereist nog steeds expliciet --yes. Imports vereisen een expliciete duplicaatbeslissing wanneer matches beoordeling nodig hebben.
Uitvoeruitzonderingen: Ask verwerpt JSON; cloudaanmelding vereist interactie; succesvolle cloudafmelding en kloon retourneren geen JSON-succesobject. Help, versie en completion behouden tekstuitvoer. upgrade kan de uitvoer van de packagemanager naar stderr streamen, ook in JSON-modus.
Instellingen, updates en opgeslagen status
| Omgevingsvariabele | Doel |
|---|---|
BEA_FILE | Standaardhoofdboekhouding na --file |
BEA_CONFIG_DIR | Overschrijf de gebruikersconfiguratiemap |
XDG_CONFIG_HOME | Gebruik anders $XDG_CONFIG_HOME/bea, met fallback op ~/.config/bea |
XDG_CACHE_HOME | Cache-mapbasis; anders ~/.cache/bea |
BEA_TOKEN | Gehoste referentie-overschrijving; heeft voorrang op opgeslagen referenties en wordt niet opgeslagen |
BEA_API_URL | API-basis; standaard https://api.v3.beancount.io |
BEA_DASHBOARD_URL | Browser-aanmeldingsbasis; standaard https://beancount.io |
BEA_NO_UPDATE_NOTIFIER | Passieve updatemeldingen uitschakelen wanneer truthy |
CI | CLI-prompts en passieve updatemeldingen uitschakelen wanneer truthy |
Truthy-waarden zijn 1, true, yes en on, ongeacht hoofdletters en omringende witruimte. Configuratiestatus omvat referenties, Ask-promptgeschiedenis, gebruikersvaardigheden, onthouden importer-paden en updatecontrol-caches. Schrijflockers bevinden zich onder locks/ van de cachemap, buiten uw boekhoudmap.
bea upgrade --check rapporteert versies en de installatiemethode zonder te upgraden. bea upgrade roept brew upgrade bea, uv tool upgrade beancount-io of pipx upgrade beancount-io aan. Bewerkbare installaties ontvangen handmatige updatebegeleiding. Passieve controles worden maximaal één keer per dag uitgevoerd in interactieve geïnstalleerde exemplaren; expliciet upgrade --check wordt nog steeds uitgevoerd wanneer de passieve melder is uitgeschakeld.
Verwijder met de bijbehorende manager: brew uninstall bea, uv tool uninstall beancount-io of pipx uninstall beancount-io. Uw boekhoudbestanden en gebruikersconfiguratie blijven behouden.
Veelvoorkomende oplossingen
| Symptoom | Volgende stap |
|---|---|
| Geen boekhouding gevonden | Selecteer --file PATH, ga naar de boekhoudmap of gebruik bea init voor nieuwe boeken |
| Een globale vlag zegt “Onbekende optie” | Verplaats hem vóór het commando, zoals bea --file main.bean check |
| Een rekening is onbekend | Open hem met bea add open --date YYYY-MM-DD --account ACCOUNT |
| Een rekening is inactief | Lees de aangehaalde open-/sluitdatums; corrigeer de transactiedatum of rekeninggeschiedenis |
| Een pad is ongebruikt | Voltooi de latere balansassertie; gebruik add balance --pad-from voor een atomair paar |
| Valutaconversie is onvolledig | Voeg prijzen toe die de datums in de fout dekken, of inspecteer units |
| Een document kan niet worden gevonden | Los het pad op naast het bestand van de richtlijn, inclusief een --into-doel |
| Een boekhouding veranderde tijdens een schrijfbewerking | Inspecteer de nieuwe inhoud en probeer opnieuw vanaf een verse voorvertoning |
| Shell-detectie mislukt | Specificeer een shell, zoals bea --shell zsh --show-completion |
Gebruik bea COMMAND --help om uw geïnstalleerde versie te inspecteren. De bronrepository-referentie bevat aanvullende voorbeelden en de exacte richtlijnmodeldefinities.