Skip to main content

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+
  • beancount 3.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

  1. Pick your main journal file (the one that includes the rest). Call it /path/to/main.bean.
  2. Configure your LSP client to start the server via stdio:
    • Command: beancount-lsp
    • Initialization options (required):
      {
          "root_file": "/path/to/main.bean"
      }
      
  3. 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 open directives in the loaded files.
  • Hover: shows notes attached to the account under the cursor (note ACCOUNT "...").
  • Go to definition: jumps to the open directive for the account under the cursor, searching across included files.
  • Semantic tokens: tree-sitter-based semantic highlighting for Beancount syntax.
  • Include expansion: include directives (and glob patterns) are loaded transitively from the root_file so 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_file exists and that the process can import beancount in 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)

Source distribution for beancount-lsp 0.0.17
File Size Uploaded
beancount_lsp-0.0.17.tar.gz 60.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for beancount-lsp 0.0.17
File
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}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page