All docs
API Reference
lsdtools API reference
The complete lsdtools v1 public API, grouped by task — authoring, data, runtime, views, packaging, meta. Import only lsdtools; API version 2.1.
lsdtools is the small, stable public API you author LSD tools against. It has about three dozen
names and one rule: import only lsdtools. Everything under lsd.* is private engine internals
that may change between releases.
Usage#
Python
from lsdtools import Tool, Table, Engine, API_VERSION
API_VERSION
# → "2.1"
Everything you author with lives in that one namespace. This page routes you to a reference for each public class; for the narrative versions, start at What is LSD?.
The public surface#
from lsdtools import ...:
- Authoring —
Tool·Context·StepContext - Views (params + actions + data) —
View·action·param·validators·views - Domain —
EntityAction·EntityTemplate·FileRole·columnmap_param·parse_column_map·resolve_column_map·apply_column_map·parse_source·autoselect_largecsv_source·Events - Data —
Table·Source - Runtime / interop —
Entity·Engine·RunResult·Runtime·find_runtime·API_VERSION - Errors —
ValidationError·SchemaError - Meta —
describe_api·advanced·generate_step
Reach past this line — into lsd.* — only through lsdtools.advanced, and
only for the few things it documents.
Authoring#
- Tool — the one object per package; its
@tool.*decorators turn functions into nodes, commands, and views. - Context —
StepContext(progress, cancel, outputs) andContext(host, engine, project, UI) that LSD injects into your functions. - Source — the input a load step reads: files, folders, or a SQL query.
Data#
- Table — the immutable, zero-copy Arrow wrapper that flows between steps, plus
its
Columnexpressions and itsTable(...)constructor.
Runtime#
- Engine — run pipelines in Python; returns a
RunResult. - Runtime — locate the installed LSD product;
find_runtime()andAPI_VERSION.
Views#
- View — the one presentable surface:
param()fields +@action+ optional data, with thewatchverb that links it to an entity's output. - ViewerPayload — what a viewer-delivering
@tool.deliverreturns (LayerPayload/ChartPayload/LegendPayload); the framework routes it to whatever view watches the entity. See Rendering & payloads. - UI overview — the one
Viewmodel (params +@action+ optional data), and how it shows: a window with the desktop, console text when headless. - A View of params and actions —
@tool.viewreturns aViewwith no kind:param()fields plus@actionbuttons.location=(sidebar / overlay / editor) only sets where it shows. - Data views —
@tool.viewreturns a dataView: atable,chart, orflowchartfromlsdtools.views, or a customViewsubclass. - Custom views — a hand-written
Viewwhose GTK shell registers throughlsdtools.views.
Packaging#
- PackageManager — the desktop-side API behind the Package Manager.
- lsd_package.json — the manifest that makes a folder a package.
- CLI commands —
lsd package,lsd <tool> <cmd>,lsd api.
Meta#
- Errors —
ValidationErrorandSchemaErrorand when each is raised. - describe_api — machine-readable JSON of every registered step.
- lsdtools.advanced — the escape hatch to
lsdinternals.
Related#
Learn — What is LSD? · The Tool object · Params vs ports
Examples — Your first tool
By LSD Team · Last updated Jul 18, 2026
Ask on Discord
View as Markdown