Skip to main content

arkitekt-lsp

The Arkitekt language server. It shows what arkitekt check finds in your app, underlined in the BSX of the blok it is about, in any editor that speaks LSP.

uv add --dev arkitekt-lsp   # in the app's project: the server imports the app with its environment

The editor starts arkitekt-lsp (stdio) from that environment. Then:

  • on save of a Python file it runs arkitekt check --json-out for the app the file belongs to, in a child process, and publishes every finding at its blok's string literal: the node's tag, or the line and column of a parse error. Findings follow their blok as the code moves; a blok edited since the check drops them until the next save, and is checked as you type;
  • as you type what its BSX says, against what the last check said the blok declares: its deps.*, args.* and locals. A blok no check has seen yet is judged by the language alone, and a query's value always waits for the next save.

All of this is local: the server talks to nothing.

Who would satisfy your dependencies (--connect)

arkitekt-lsp --connect                     # or the setting arkitekt.server.connect
arkitekt-lsp --server https://my.hub       # or arkitekt.server.url; the default is https://go.arkitekt.live

A flag overrides what the editor configures.

With the flag, the server also logs in, as an app of its own, with a token that can only read (rekuest_read). It registers no agent. For each dependency protocol your app declares it asks who would satisfy it, nothing registered, so a protocol you just wrote is asked about on save:

  • above the protocol, a count: 3 agents · 2 connected, and the slots nobody offers;
  • a warning (information, for an optional one) when too few do. Never an error: what is missing may simply not be running yet;
  • on hover of the protocol, or of deps.<key> in a blok, the agents and the count per slot.

A login nobody approves or a server that is gone leaves the server local, and says so.

Which app: the saved file when it declares one (App(), else the arkitekt.target setting, else the project's default (ARKITEKT_APP, or app.py). A project is the nearest directory with a pyproject.toml.

Settings (initialization options, or workspace/didChangeConfiguration under arkitekt): check.onSave (default true), check.timeout (seconds, default 120), target.

Besides the standard protocol it answers bsx/regions ({textDocument: {uri}} → {regions: [{start, end, value, root, context, kind, exact}]}), the blok literals of a document, which the VS Code extension uses to complete BSX inside Python strings. It notifies arkitekt/status ({state: checking|ok|failed, app, errors?, warnings?, message?}) and takes the notification arkitekt/check ({textDocument: {uri}}) to check now.

Metadata

Release files for arkitekt-lsp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arkitekt-lsp 1.0.0
File Size Uploaded Provenance Actions
arkitekt_lsp-1.0.0.tar.gz 23.2 kB Without provenance Details for arkitekt_lsp-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for arkitekt-lsp 1.0.0
File Interpreter ABI Platform Actions
arkitekt_lsp-1.0.0-py3-none-any.whl Python 3 none any Details for arkitekt_lsp-1.0.0-py3-none-any.whl

Total release size: 49.9 kB

Release files / arkitekt_lsp-1.0.0.tar.gz

Download URL arkitekt_lsp-1.0.0.tar.gz
Size 23.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fac9f3af1387fc44f6b6a470e8000ce661bc1dde24a600e0b533c2f13371d7d4
BLAKE2b-256 checksum
How to use checksums
dcc72a673fcd24acd88e0f98aca5d1885414984049fef748984256b970f5a793
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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 / arkitekt_lsp-1.0.0-py3-none-any.whl

Download URL arkitekt_lsp-1.0.0-py3-none-any.whl
Size 26.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6af12e15555a68cc9bf8b0b273a243ebb495ac66a8d4bc4a688016fa6334d80c
BLAKE2b-256 checksum
How to use checksums
5871a1bd77f48259e244e3d841c6dd24f5723aab97d65cd74b2ca5d38749c2f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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}

Security for arkitekt-lsp 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

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