CLI¶
Every lhp command and its options, generated directly from the command-line
interface. Run lhp <command> --help for the same information in your terminal.
Note
The dependency-analysis command is lhp dag. The former name lhp deps
still works as a hidden, deprecated alias that prints a migration notice — use
lhp dag. Only current commands appear below.
lhp¶
LakehousePlumber — generate Lakeflow pipelines from YAML configs.
Usage
lhp [OPTIONS] COMMAND [ARGS]...
Options
- --version¶
Show the LHP version and exit.
- -v, --verbose¶
Increase console log verbosity (repeatable). Does not affect output.
- --log-file¶
Write a detailed DEBUG log to .lhp/logs/lhp.log (off by default).
- --no-progress¶
Disable live progress displays for commands that show one.
dag¶
Analyze pipeline dependencies and write dependency outputs.
Usage
lhp dag [OPTIONS]
Options
- --max-workers <max_workers>¶
Max worker processes (default ~80%% of CPUs; 1 = sequential).
- --no-cache¶
Disable the persistent parse cache for this run.
- --format <output_format>¶
- -o, --output <output_dir>¶
- -b, --bundle-output¶
- -j, --job-name <job_name>¶
- -jc, --job-config <job_config>¶
- --trust-depends-on¶
Treat a non-empty depends_on as the action’s authoritative source set: skip SQL/Python body extraction for it (fast path for fully-declared projects).
- --blueprint <blueprint>¶
- -p, --pipeline <pipeline>¶
Restrict the analysis to one pipeline.
diff¶
Show what lhp generate --env ENV would change on disk.
Plans every flowgroup (writing nothing), compares the planned files to the
on-disk generated/<ENV> tree, and prints one ~ / + / - line
per changed path. With --exit-code a non-empty diff exits 1.
Usage
lhp diff [OPTIONS]
Options
- -e, --env <env>¶
Environment to diff.
- Default:
'dev'
- -s, --show-details¶
Show a unified diff per file.
- --no-progress¶
Disable the live progress display.
- --include-tests¶
Include generated test hooks.
- -p, --pipeline <pipeline>¶
Diff only this pipeline.
- --exit-code¶
Exit non-zero on a non-empty diff.
generate¶
Generate Databricks pipeline code for ENV from the project’s flowgroups.
Usage
lhp generate [OPTIONS]
Options
- -e, --env <env>¶
Required Target environment.
- -s, --show-details¶
Show the per-pipeline completion trail and expand failures to panels.
- --strict¶
Treat warnings as failures.
- --no-progress¶
Disable the live display.
- --no-bundle¶
Skip Asset Bundle sync.
- --include-tests¶
Include test actions.
- --no-format¶
Skip code formatting.
- -p, --pipeline <pipeline>¶
Only the named pipeline.
- --sandbox¶
Developer sandbox mode: generate only the pipelines in your .lhp/profile.yaml scope, renaming the tables they produce into your namespace (reads of shared tables outside your scope are untouched).
- -o, --output <output>¶
Output dir override.
- -pc, --pipeline-config <pipeline_config>¶
pipeline_config.yaml.
- --max-workers <max_workers>¶
Max parallel workers.
- --no-cache¶
Disable the persistent parse cache.
init¶
Initialize a new LakehousePlumber project in the current directory.
NAME is baked into template substitutions (bundle name, lhp.yaml). All files are created in the current working directory.
Usage
lhp init [OPTIONS] NAME
Options
- --no-bundle¶
Skip Databricks Asset Bundle setup (bundle is enabled by default).
- --sample¶
Scaffold the TPC-H sample quickstart project — a ready-to-run Lakeflow Spark Declarative Pipelines demo. Requires bundle support (incompatible with –no-bundle).
- --no-git¶
Skip git repository initialization (applies to –sample only).
Arguments
- NAME¶
Required argument
inspect-wheel¶
Inspect (or extract from) a built pipeline wheel given by SELECTOR.
SELECTOR is either a wheel path (*.whl / a path with a separator) or a
pipeline name; a pipeline name requires -e/--env. With --extract the
wheel’s .py modules are written to disk; otherwise they are listed.
Usage
lhp inspect-wheel [OPTIONS] SELECTOR
Options
- -e, --env <env>¶
Environment whose built wheel to inspect (required in pipeline-mode).
- --extract <extract_dir>¶
Extract the wheel’s .py modules into this directory instead of listing.
Arguments
- SELECTOR¶
Required argument
list¶
List project presets, templates, and blueprints.
Usage
lhp list [OPTIONS] COMMAND [ARGS]...
blueprints¶
List blueprints; with --instances show per-instance pipelines.
Usage
lhp list blueprints [OPTIONS]
Options
- --instances¶
Show each blueprint’s instances and the pipelines they produce.
presets¶
List presets declared under the project’s presets/ directory.
Usage
lhp list presets [OPTIONS]
templates¶
List templates declared under the project’s templates/ directory.
Usage
lhp list templates [OPTIONS]
skill¶
Manage the LHP Claude Code skill.
Usage
lhp skill [OPTIONS] COMMAND [ARGS]...
install¶
Install the skill into the Claude config.
Usage
lhp skill install [OPTIONS]
Options
- --user¶
Target ~/.claude/ not cwd.
- --force¶
Overwrite an existing install.
status¶
Report the install state of the skill.
Usage
lhp skill status [OPTIONS]
Options
- --user¶
Target ~/.claude/ not cwd.
uninstall¶
Remove the skill install.
Usage
lhp skill uninstall [OPTIONS]
Options
- --user¶
Target ~/.claude/ not cwd.
- --force¶
Skip the confirmation prompt.
update¶
Refresh an install to the current LHP version.
Usage
lhp skill update [OPTIONS]
Options
- --user¶
Target ~/.claude/ not cwd.
- --yes¶
Skip the downgrade prompt.
substitutions¶
Show the resolved substitution tokens for ENV.
Lists every ${token} mapping (with nested maps rendered as trees),
the observed ${secret:scope/key} references, and the default secret
scope. A missing substitutions/<env>.yaml is not an error — an empty
context is reported instead.
Usage
lhp substitutions [OPTIONS]
Options
- -e, --env <env>¶
Environment whose substitution tokens to resolve.
- Default:
'dev'
validate¶
Validate pipeline configurations for ENV.
Usage
lhp validate [OPTIONS]
Options
- -e, --env <env>¶
Target environment.
- Default:
'dev'
- -s, --show-details¶
Show the per-pipeline completion trail and expand failures into panels.
- --strict¶
Treat warnings as failures.
- --no-progress¶
Disable the live progress display.
- --no-bundle¶
Disable bundle support.
- --include-tests¶
Include test actions in validation.
- -p, --pipeline <pipeline>¶
Validate a single pipeline only.
- --sandbox¶
Developer sandbox mode: validate only the pipelines in your .lhp/profile.yaml scope, renaming the tables they produce into your namespace (reads of shared tables outside your scope are untouched).
- -pc, --pipeline-config <pipeline_config>¶
Custom pipeline config path.
- --max-workers <max_workers>¶
Max worker processes (default ~80%% of CPUs; 1 = sequential).
- --no-cache¶
Disable the persistent parse cache.
web¶
Launch the Lakehouse Plumber local web IDE for the current project.
Starts a FastAPI backend (served via uvicorn) bound to 127.0.0.1 — the
IDE is loopback-only and never exposed beyond this machine. Access is
protected by a per-session token embedded in the URL fragment. Requires the
optional webapp extra: pip install lakehouse-plumber[webapp].
Configuration is passed to the server through LHP_WEBAPP_* environment
variables, so --reload works across uvicorn’s worker reloads.
With --allow-empty the IDE also starts outside an initialized project
and serves the in-app init wizard instead of the project view.
Usage
lhp web [OPTIONS]
Options
- --port <port>¶
Port to bind the local web IDE on (host is pinned to 127.0.0.1).
- Default:
8000
- --no-open¶
Do not open a browser window automatically on startup.
- --reload¶
Reload the server on code changes (development convenience).
- --allow-empty¶
Launch even when the current directory is not an initialized LHP project (enables the in-app init wizard).