Skip to main content

dlthub-init (beta)

Scaffold a dltHub workspace into a new or existing directory.

dlthub-init lays down the files of a minimal dltHub workspace — pyproject.toml, a locked uv.lock, the .dlt/ configuration, and a .mcp.json registering the dlt workspace MCP server — and optionally creates the virtual environment. That is all it does: it does not log in, run a pipeline, or install agent toolkits.

Unlike dlthub-start, it is safe to run inside an existing repository. It is non-destructive by default: it never overwrites your files, and it stops before writing anything if a generated path would collide with something already there.

Usage

uvx dlthub-init             # initialize the current directory
uvx dlthub-init my-workspace  # initialize ./my-workspace

After scaffolding, dlthub-init offers to create a virtual environment and install dependencies with uv.

Options

Flag Effect
--no-sync Scaffold files only; do not create a venv or install dependencies.
--force Overwrite existing generated files (never secrets).
--merge Append missing entries to an existing .gitignore instead of skipping it.
--no-pyproject Skip pyproject.toml.
--no-gitignore Skip .gitignore.
--no-telemetry Disable usage telemetry for this run.
--verbose, -v Stream output from uv.

Collision behavior

dlthub-init is safe to run in an existing directory:

  • Missing files are created.
  • The run stops only if .dlt/.workspace already exists — the directory is already a dltHub workspace (override with --force).
  • Otherwise existing files are left alone and reported as skipped: your pyproject.toml, .dlt/config.toml, .dlt/secrets.toml, and .mcp.json are never overwritten, and .gitignore is skipped (or merged with --merge).
  • uv.lock is written only when pyproject.toml is created, so the lockfile always matches the workspace's dependencies.
  • --force overwrites the generated files (never secrets).

Telemetry

dlthub-init sends anonymous usage events so we can improve the scaffolding experience.

No personal data is collected, and no workspace contents are ever sent.

Telemetry is controlled by the following, in order of precedence:

  1. the --no-telemetry flag,
  2. DLTHUB_INIT_TELEMETRY=0 (or false/off),
  3. DO_NOT_TRACK=1,
  4. an existing dlt opt-out (~/.dlt/config.toml [runtime] dlthub_telemetry = false, or RUNTIME__DLTHUB_TELEMETRY=false).

Development

make dev      # install dev dependencies
make lint     # ruff + mypy
make test     # unit tests
make ci       # full local CI

The bundled workspace lives in src/dlthub_init/scaffolds/minimal_workspace. After editing its pyproject.toml, run make scaffold-lock-upgrade to refresh the committed uv.lock.

Metadata

Release files for dlthub-init 0.2.11

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

Source distribution (sdist)

Source distribution for dlthub-init 0.2.11
File Size Uploaded
dlthub_init-0.2.11.tar.gz 404.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dlthub-init 0.2.11
File Interpreter ABI Platform
dlthub_init-0.2.11-py3-none-any.whl Python 3 none any Details

Total release size: 742.9 kB

Release files / dlthub_init-0.2.11.tar.gz

Download URL dlthub_init-0.2.11.tar.gz
Size 404.4 kB
Tags Source
SHA-256 checksum
How to use checksums
71b404096a99746aceeae551f848a2bbf5a6a005d5b60c099f4d9cbe93e0bd97
BLAKE2b-256 checksum
How to use checksums
746b6f1d43d208152b99c0a5aaede1c7623cbc2f57b3d26b973584cb248e6772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / dlthub_init-0.2.11-py3-none-any.whl

Download URL dlthub_init-0.2.11-py3-none-any.whl
Size 338.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a07aa085b0535a9d7fbe0a0fb9b009cd1c427a57ebc3494abe0a21e881b5f046
BLAKE2b-256 checksum
How to use checksums
4f9f682a4bbc5e441b49bc97661663c8227c654500fbe55cc1d011a9d5507879
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.11 This release

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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