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.9

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.9
File Size Uploaded
dlthub_init-0.2.9.tar.gz 369.1 kB Details

Built distribution (wheel)

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

Total release size: 672.8 kB

Release files / dlthub_init-0.2.9.tar.gz

Download URL dlthub_init-0.2.9.tar.gz
Size 369.1 kB
Tags Source
SHA-256 checksum
How to use checksums
6b206c31479e408f2dc09fc47f9a65b19d04c65eed7611669ef82bfc99f83691
BLAKE2b-256 checksum
How to use checksums
32a4097050c3bccbfd832ce344f99eb8e24441ae5bc2ff96a52b485346d41c8e
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.9-py3-none-any.whl

Download URL dlthub_init-0.2.9-py3-none-any.whl
Size 303.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5eb9ba86eb76954c3c334a1e4f49a1eb714c70069e0a107ed62cd2233f4e0d4
BLAKE2b-256 checksum
How to use checksums
00c42af692f7b0f008477db5c8e166c04f0da6dd1d4015b148e6ed2761a3c5e0
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

0.2.10

2 release files

This release

0.2.9 This release

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