Beancount LSP
Cross-platform Language Server for Beancount, distributed as the beancount-lsp Python package.
The server is implemented in Rust and shipped as a PyO3 extension,
so you get native performance with a familiar Python installation and CLI.
Requirements
- Python 3.10+
beancount3.x (installed automatically as a dependency)- An editor that can speak the Language Server Protocol over stdio
Install
pip install beancount-lsp
# or
uv pip install beancount-lsp
The package installs two console scripts: beancount-lsp (preferred) and beancount-langauge-server (compat alias).
Quick start
- Pick your main journal file (the one that includes the rest). Call it
/path/to/main.bean. - Configure your LSP client to start the server via stdio:
- Command:
beancount-lsp - Initialization options (required):
{ "root_file": "/path/to/main.bean" }
- Command:
- Open any included Beancount file; the server will parse the full include graph starting from
root_file.
VS Code
Install the Marketplace extension: Beancount LSP. See vscode/README.md for extension configuration details (root file setting, commands, and troubleshooting).
Capabilities
- Diagnostics: runs the Beancount loader on the root file (and imports) to report parser errors and other validation issues. Diagnostics are published per file with line/column data when available.
- Account completion: offers account names gathered from all
opendirectives in the loaded files. - Hover: shows notes attached to the account under the cursor (
note ACCOUNT "..."). - Go to definition: jumps to the
opendirective for the account under the cursor, searching across included files. - Semantic tokens: tree-sitter-based semantic highlighting for Beancount syntax.
- Include expansion:
includedirectives (and glob patterns) are loaded transitively from theroot_fileso completion/hover/definitions work across your whole journal.
Logging and troubleshooting
- Increase verbosity:
beancount-lsp --log-level debug - Write logs to a file:
beancount-lsp --log-file beancount-lsp.log - If the server exits immediately, verify that
root_fileexists and that the process can importbeancountin the same Python environment. - The server requires full-document sync; incremental sync clients are not supported.
Updating
To upgrade to the latest release:
pip install --upgrade beancount-lsp
Metadata
Release files for beancount-lsp 0.0.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| beancount_lsp-0.0.17.tar.gz | 60.4 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| beancount_lsp-0.0.17-cp310-abi3-win_arm64.whl | CPython 3.10 | abi3 | Windows ARM64 | Details |
| beancount_lsp-0.0.17-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| beancount_lsp-0.0.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| beancount_lsp-0.0.17-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| beancount_lsp-0.0.17-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| beancount_lsp-0.0.17-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 12.5 MB
Release files / beancount_lsp-0.0.17.tar.gz
| Download URL | beancount_lsp-0.0.17.tar.gz |
|---|---|
| Size | 60.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bec022d946d3123f43282d3877f851c150e8ac7b88af393bc756094c8abc3922
|
|
BLAKE2b-256 checksum How to use checksums |
484c7f3ab84b73e90698487e7d8807484adfaa4737f63f64ef8c036543a21215
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beancount_lsp-0.0.17-cp310-abi3-win_arm64.whl
| Download URL | beancount_lsp-0.0.17-cp310-abi3-win_arm64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.10 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
89b4db1d5eff843a4cd5ed58bc0f7543d2d001146c2b4f83245b647aed6a06e1
|
|
BLAKE2b-256 checksum How to use checksums |
7fa070c7fcfa85c7db517adc71bdcda6cfdf16089974db6d4bf65160d023ac3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beancount_lsp-0.0.17-cp310-abi3-win_amd64.whl
| Download URL | beancount_lsp-0.0.17-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
38d26933a46e1c195f904b42ca1adf7d29785a50fb6cefdca9e1d5b76b777636
|
|
BLAKE2b-256 checksum How to use checksums |
ae659550056459710129615acadbc70c215cfbbc69b1b1d2487f725848284ce5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beancount_lsp-0.0.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | beancount_lsp-0.0.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5d0808be2a7599a6ea9ef6f2dc945ca05523ad129d7a13b0b2a8a6039c17ead5
|
|
BLAKE2b-256 checksum How to use checksums |
c22ef0e0c839bda07b04754554b1950bfa5c1eaa4f36466b64d299997cff9af6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beancount_lsp-0.0.17-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | beancount_lsp-0.0.17-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
f8053cc33d9861cd4e1d6ee2468bf055c143a3cbb5270e7bf9c82aafb38d25f8
|
|
BLAKE2b-256 checksum How to use checksums |
2b2af1f9726c7151289350578d12f62f7ceb711f465e4299ce3902f2dc1115b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beancount_lsp-0.0.17-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | beancount_lsp-0.0.17-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c3f6da704b4230da010b996884f8ac9bec028f147b86c7f886c6a4f840482c79
|
|
BLAKE2b-256 checksum How to use checksums |
71c0242e1abd52ac98ca51680d03f21f23ce0f8405f3f541bfba4dac844391d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / beancount_lsp-0.0.17-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | beancount_lsp-0.0.17-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
cff120375f60b354d6cfae2d8c1e575cce51f325ab8de4914b78343109fdb840
|
|
BLAKE2b-256 checksum How to use checksums |
dfdc2ce068650828c3c07c8bf1f26952238884845b2280655b191cf9370c2361
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|