Getting Started¶
This guide walks you through installing the CLI, creating a project, and deploying it to a Fabric Lakehouse.
Prerequisites¶
- Python 3.11+
- Azure CLI (
az) — required for deploy and status commands
Installation¶
Verify the installation:
Create a Project¶
Scaffold a new project with example files:
This creates a directory named my-project.weevr/ with the following structure:
my-project.weevr/
├── .weevr/
│ └── cli.yaml # CLI configuration
├── staging/
│ └── stg_customers.thread # Example thread
├── staging.weave # Example weave (references the thread)
└── daily.loom # Example loom (references the weave)
The example files form a self-consistent pipeline: the loom references the weave, and the weave references the thread. File extensions (.thread, .weave, .loom) identify the file type — no .yaml suffix is used.
Note
The .weevr suffix on the project directory is required. The weevr engine uses it to detect project roots. The CLI adds it automatically if you omit it.
Move into the project:
Explore the Project¶
View the project structure:
See dependency relationships in table format:
Generate Files¶
Create new files from templates:
weevr new thread orders
weevr new weave customer_dim
weevr new loom daily_load
weevr new warp customer_schema
Each command generates a file with the standard schema fields pre-filled. Files use type-specific extensions (.thread, .weave, .loom, .warp).
Validate¶
Check schema conformance and cross-file reference integrity:
Use --strict to treat warnings as errors:
Parameterized templates
Files that use variable references like ${param.pk_columns} or ${env.DB_NAME} pass validation even when the referenced field expects a non-string type (e.g. an array). The validator skips static type checks on bare ${...} values since they are resolved at runtime by the weevr engine.
Exclude Files From the Project¶
If you have scratch folders, drafts, or experiments you don't want the CLI to
treat as part of the project, create a .weevr/ignore file with gitignore-style
patterns:
# .weevr/ignore
# Scratch folder for in-progress work
scratch/
# Drafts
*.draft.thread
*.draft.weave
The patterns apply to every command that walks the project tree — validate,
list, deploy, and status — so ignored files never show up as orphans,
never fail validation, and never upload to Fabric. You can use either
.weevr/ignore or a .weevrignore at the project root (the familiar
gitignore-style location), or both. See
Configuration › Ignore files for the
full reference, including how explicit target paths bypass the filter.
Configure a Deploy Target¶
Edit .weevr/cli.yaml with your Fabric workspace GUID and lakehouse identifier. Use lakehouse_id (a GUID) by default; use lakehouse_name only if your tenant supports friendly-name lookup. The two are mutually exclusive — provide exactly one per target.
targets:
dev:
workspace_id: "your-workspace-guid"
lakehouse_id: "your-lakehouse-guid"
path_prefix: "weevr"
default_target: dev
The path_prefix is optional — it adds a namespace before the project folder on the Lakehouse. With this config, files deploy to Files/weevr/my-project.weevr/.... The project folder name is always included automatically.
See Configuration › Targets for the lakehouse_name alternative and the full field reference.
You can define multiple targets (e.g., dev, staging, prod) and switch between them with --target.
Authenticate¶
Log in with the Azure CLI:
The CLI uses Azure DefaultAzureCredential, which picks up credentials from az login, environment variables, managed identities, or the VS Code Azure extension.
Deploy¶
Deploy your project to the Lakehouse:
Preview what would change without deploying:
Tip
Your first deploy works against an empty Lakehouse — you don't need to pre-create the project folder under Files/ or run any setup on the OneLake side. The CLI prints a path=... banner showing exactly where your files will land under Files/.
Check Status¶
See what differs between local files and the deployed state:
Next Steps¶
- CLI Reference — every command and flag in detail
- Configuration — full reference for
.weevr/cli.yamland ignore files - Reference Syntax — how refs in weaves and looms resolve
- Warp Files — declare target table schema contracts
- Deploy Workflows — smart sync, full overwrite, clean, and CI/CD patterns
- Plugin Authoring — extend the CLI with custom commands