Beancount LSP packaged for Python environments
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beancount_lsp-0.0.13a5.tar.gz.
File metadata
- Download URL: beancount_lsp-0.0.13a5.tar.gz
- Upload date:
- Size: 60.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbf099b4cce4eea3905d144d3ddef3f9a89991e41ade20aa849c3ee2d42b04ed
|
|
| MD5 |
b77537b05b51cb21fca10d453b367a1f
|
|
| BLAKE2b-256 |
198e654f482576816d3a8b299e33ca0f82e7362789d64f5c66ad60164bf6ed90
|
File details
Details for the file beancount_lsp-0.0.13a5-cp310-abi3-win_arm64.whl.
File metadata
- Download URL: beancount_lsp-0.0.13a5-cp310-abi3-win_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.10+, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8bc0c7cc6c0dee4f0b90e604ca933c3fbd90d90e5d759b8db0ac2ac5fb85a3f
|
|
| MD5 |
3a7ef50dc04b9ec58828f491e8aea3fe
|
|
| BLAKE2b-256 |
2293de5f6acb609c75b75e6326bbfdec0107c9c714a5b15e18387e9624f8f6bd
|
File details
Details for the file beancount_lsp-0.0.13a5-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: beancount_lsp-0.0.13a5-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
241ea29b3e20306404a18ed73bccc3dbe9c132bd28c9b9bf8a2875d0b432d569
|
|
| MD5 |
686fc2cd1a2ab4cbded5336cd7b576a5
|
|
| BLAKE2b-256 |
3df191e026e068fc8afa37395dd33218c532f99cb3b65290f430fbcb3b6f5a57
|
File details
Details for the file beancount_lsp-0.0.13a5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: beancount_lsp-0.0.13a5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ef92894057c70ce2b4f072e8a1e770a74ab5c7b8f96f45e527b0bb8be2c9331
|
|
| MD5 |
a57afd4c5ffe3b84239b3dc5644aa56d
|
|
| BLAKE2b-256 |
28f26363b5a94fdd04f998ac6c2affc179c3675e10b225fe51241319c4a58b7a
|
File details
Details for the file beancount_lsp-0.0.13a5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: beancount_lsp-0.0.13a5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a367950e3b2dff170900091209d3d9ff456780265d7d42a28226a6a74ebacfd4
|
|
| MD5 |
10ad75f04a7d8f4bdd2ed9364283234a
|
|
| BLAKE2b-256 |
497522a36e6cbb4124d5bf3d9bddb7bcd0f4192e7722aa7e592887843a23a8e1
|
File details
Details for the file beancount_lsp-0.0.13a5-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: beancount_lsp-0.0.13a5-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a05a632c99e5371ef6df0d8f0fd45ca325a01d3c9e132e5057a2402bb08c67cf
|
|
| MD5 |
50f4c85010c7fb0d2b3ec1bcd66846a2
|
|
| BLAKE2b-256 |
6e22d07ac23656ee85576754ef51cccea43de77d98883915feb9db958bda8329
|
File details
Details for the file beancount_lsp-0.0.13a5-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: beancount_lsp-0.0.13a5-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dee6052164d17c2e845b290efecae1e72bf504289cfd3ff4c9eb4245e63a5064
|
|
| MD5 |
8a95b05fe8c85987cd94c420cb1ad54b
|
|
| BLAKE2b-256 |
fae648f00c9b0011db759d597d81e8e6a7ce38fddc5b618ceb9e1c4ba3ddea15
|