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, and the .dlt/ configuration — 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, and .dlt/secrets.toml 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dlthub_init-0.2.1.tar.gz (247.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dlthub_init-0.2.1-py3-none-any.whl (203.4 kB view details)

Uploaded Python 3

File details

Details for the file dlthub_init-0.2.1.tar.gz.

File metadata

  • Download URL: dlthub_init-0.2.1.tar.gz
  • Upload date:
  • Size: 247.0 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for dlthub_init-0.2.1.tar.gz
Algorithm Hash digest
SHA256 61dd30a6bcd3ace566f93343e1138b74867256bf1a30cbaac84d26df7ce24ed5
MD5 978c1837b9a43ffa6a6853a386a54c79
BLAKE2b-256 3217971eadf1d0b186d1e6d05d3610f3832c39b645af18d8518f441707af81b7

See more details on using hashes here.

File details

Details for the file dlthub_init-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: dlthub_init-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 203.4 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for dlthub_init-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 78d9d662ff07b0ec50e9b781edc899780a7c5711f5ef1f9795775f8b7cd1cc49
MD5 80bc86235a5cfed9fef319abb8fedf7f
BLAKE2b-256 f293573c10b311b8d9374f860ef44925e4b924d9dc6d554fbea9b17309cc5a65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page