Broker eXchange Parser (BXP)¶
A converter for tabular export files (CSV, XLSX, JSON) into whatever shape another tool expects, driven by declarative JSON5 templates. Everything runs locally; your data never leaves the machine.
The name says Broker eXchange Parser, and that is where BXP started — but nothing in the engine knows what a broker is. It is a general-purpose ETL tool, and the examples convert weather stations, transit feeds, hospital messages and taxi trips alongside brokerage statements.
The vocabulary follows from that, and it is worth getting straight before anything else:
| config | Your bxp-cli.json. Holds one or more templates, plus any shared maps. |
| template | One conversion: where the input files are, how to read them, how to reshape each row, and what the output looks like. A template may describe a broker's export — many shipped ones do — but just as easily a public dataset or another system's export. |
| target | Whatever consumes the result. Wealthfolio and brycht.app are the two with shipping templates today; any other is reachable by writing an output_schema for it — no code changes. |
What ships¶
BXP comes in two distributions that share one conversion engine:
- BXP Desktop — a Flutter GUI with a graphical template editor and a dry-run debugger, so you can edit templates and preview their behaviour against your real input files without leaving the app.
- BXP Console — the command-line engine and the MCP server, for scripting, CI, and AI-assisted authoring.
Three binaries do the work (the desktop bundle ships all three; the console bundle ships the first two):
bxp-cli— the conversion engine. Produces the actual.csvxfiles from your input files and the JSON5 templates. The GUI runs it (proxied through the bundled bridge library); you can also run it directly from a terminal.bxp-mcp— an MCP server (JSON-RPC over stdio) that exposes bxp's stateless surface to an AI agent — validate a config or expression, evaluate, list templates, read the docs — and runs a full conversion end-to-end via itsbxp_simulatetool. Lets an assistant author and self-test a template without driving the GUI.bxp-gui— the desktop application itself.
Architecture in one paragraph¶
bxp-cli is a two-pass declarative data pipeline. Pass one (optional
pre_pass) scans all rows and builds a lookup table for cross-row
joins. Pass two iterates rows, evaluates input_schema expressions
into per-row $variables, then routes each row through the ordered
row_rules list — the first matching rule decides the row's activity
type and whether it produces 0, 1, or N output rows. output_schema
then projects the final $variables into CSV columns in a fixed order.
Input may be CSV, XLSX, or JSON; output is RFC 4180–compliant CSV or
JSON.
Where to go next¶
- New to BXP? Start with Install then Your first conversion.
- Writing a template? Read the Guide — it covers the template layout, the expression language, dates, and the target specs.
- Looking up a function or flag? Jump to the Reference.
- Using an AI assistant? The AI workflows section covers authoring a template with an AI, the live GUI MCP, and agent handoff.
Contributing¶
The project is open-source. For the newest built-in templates,
community contributions, and issue tracking see the BXP GitHub
repository: https://github.com/zaxified/bxp. Apache-2.0 licensed; see
LICENSE.md in the source tree.
