Releases: dlt-hub/dlthub-start
Releases · dlt-hub/dlthub-start
v0.8.1
v0.8.1 - 2026-06-17
Fixed
- Workspaces created with 0.8.0 shipped the AI workbench with only the base
inittoolkit — theone-shottoolkit (its pipeline skills and rules) was missing entirely. 0.8.1 restores it, so new workspaces again come with the one-shot pipeline workflow.
Internal
- Added regression tests for the bundled toolkit configuration.
v0.8.0
v0.8.0 - 2026-06-17
Added
make scaffold-lock-upgradere-resolves the bundled workspace'suv.lockto the newest dependency versions itspyproject.tomlallows (PKG=<name>to bump a single package), with a companionmake scaffold-lock-checkdrift guard. Matchingmake lock-upgrade/make lock-checktargets do the same for the rootuv.lock; both checks run in CI and are included inmake ci.
Changed
- Bundled AI toolkits are now
one-shotanddata-exploration(previouslyone-shot-pipelineanddlthub-platform). The one-shot toolkit is reshaped aroundcreate-minimal-pipelineanddeploy-minimal-pipeline; the platform deployment toolkit (deploy-workspace,prepare-deployment,setup-runtime,debug-deployment, …) is dropped in favor ofdata-exploration(explore-data,build-notebook). - Bumped
WORKBENCH_REFtoa6a4b08eand refreshed the bundled AI workbench scaffolds across all agents (claude/codex/cursor). - Widened the startup banner logo so it no longer renders compressed, and added a blank line above it for spacing.
- The minimal workspace now loads into the managed, zero-config
playgrounddelta destination instead of localwarehouse(duckdb), so data persists across ephemeral job runs. Bumps thedltfloor to[hub,deltalake]>=1.27.2(drops the unusedfilesystemextra, addsdeltalakewhich pullsdeltalake/pyarrow;1.28.0inuv.lock) and drops the orphaned[destination.warehouse]block. - After the first pipeline run, the CLI no longer streams the run's logs live or opens the workspace overview. It now submits the run without
--followand then surfaces it withdlthub job runs show pipeline.load_sample_shop, so the user sees the run and its logs instead of an overview page. - The starter prompt handed to the coding agent is now a concrete example — "Load the 50 most recent GitHub issues from https://github.com/dlt-hub/dlt and show me the data on the dltHub query editor" — instead of the fill-in-the-blanks "Build a dlt pipeline for the [API name] API and load [endpoint/data] into DuckDB."
v0.7.0
v0.7.0 - 2026-06-12
Changed
- The coding-agent prompt now comes at the end of setup — after your first pipeline run — and the agent's AI workbench files are laid down as the final step, so you see the pipeline work before picking your editor. Passing
--agentstill skips the prompt. (Internally, the two-phase plan/execute split was collapsed into a single linear flow.) - A non-empty target no longer stops with a "Directory not empty" error. Instead
dlthub-startscaffolds into a free directory and tells you where it landed: with no argument it initializes in the current directory when empty, otherwise into aplaygroundsubdirectory (playground-1,playground-2, … if that's taken too); an explicit name that's occupied falls back to<name>-1,<name>-2, …. The original directory's contents are never touched. (TheWorkspaceDirectoryNotEmptyError/ exit-code-2path remains only as a defensive guard against races.) - A directory that holds only benign cruft — editor/OS files (
.idea,.vscode,.DS_Store,Thumbs.db), tool caches (__pycache__,.ruff_cache,.mypy_cache,.pytest_cache), and a bare.git— now counts as empty, so a freshlygit init'd or IDE-touched directory still initializes in place instead of falling back. Anything the scaffold itself ships (e.g..gitignore,.dlt) still counts as content, so the user's copy is never clobbered. - The first pipeline run now streams its
--followlogs live instead of hiding them behind a spinner. The step flags a "streaming live logs" note, then prints the run's output line by line — recolored uniformly (dim cyan) so it reads as nested, live output. A spinner and streamed output can't share the terminal (Rich's live spinner fights the child for the cursor), so the spinner is dropped for this step; the run always streams regardless of--verbose. --yes/-yand--skip-uv-syncare now hidden, non-interactive shortcuts for tests/CI only — both are removed from--helpand print a stderr notice when used, because they cut the guided setup short (--yesskips the prompts and the first run;--skip-uv-syncalso skips dependency sync), leaving the workspace scaffolded but never run. The interactive flow (no flag) is now the only documented path. The flags still work when explicitly passed, so nothing breaks for automated callers.- Bumped
dlthub-clientfrom0.27.6to0.27.7in the minimal workspace'suv.lock. - The post-setup panel is trimmed to the hand-off: after the first run it shows the prompt to give your agent (with a "copied to your clipboard" confirmation) and a link to the docs — nothing else. The "Created" file tree now prints during scaffolding (right under
Created <dir>) instead of in the final panel. The bundled workspaceREADME.mdis now a few lines so it doesn't compete with the guided flow. - The agent picker labels
codexascodex (or other agents, e.g. Copilot)since its.agents/layout is a cross-agent convention. - Improved the styling and wording of the guided setup output to make the flow clearer.
- Hardened error handling: unexpected failures now print a one-line message (full traceback only with
--verbose) instead of a raw stack trace; filesystem problems while creating the workspace reportCouldn't read/write <path>; and best-effort steps degrade gracefully — a failed first pipeline run, an agent with no terminal launcher, or a clipboard miss now warn and continue instead of aborting setup. (Known gap: a remote run that fails but exits 0 still reports success — tracked for a follow-up.)
Added
- After laying down its workbench files,
dlthub-startnow launches your chosen coding agent right in the workspace — seeded with the starter promptBuild a dlt pipeline for the [API name] API and load [endpoint/data] into DuckDB.— so you land in a session with the skills and MCP server already in scope. Claude and Codex launch via their CLIs (claude/codex); an agent with no terminal launcher (e.g. the Cursor app) falls back to printing that prompt and copying it to your clipboard. Skipped under--yes, since the launch is interactive. - The minimal workspace now ships a committed
uv.lock, souv syncinstalls from pinned versions instead of resolving against the PyPI index on every workspace creation — faster, reproducible, and resilient to intermittentpypi.org/simple/outages. Renaming a generated workspace rewrites the root package name inuv.lockin lock-step withpyproject.toml, so the two never diverge — otherwise uv would treat the bundled lock as out of date and fall back to a full re-resolution againstpypi.org/simple/, defeating the purpose of shipping the lock.
v0.6.0
v0.6.0 - 2026-06-10
Added
- After setup,
dlthub-startautomatically runs your first pipeline on dltHub: it logs in, binds the project to aplaygroundworkspace (creating it only if it doesn't already exist), runsload_sample_shopwith--follow(waiting for the run to finish), and opens the workspace overview withdlthub show. The post-run next-steps panel then shows a ready-to-paste prompt addressed to your chosen coding agent (claude/cursor/codex) for building a pipeline against your own source — and copies it to your clipboard so it's one paste away. Skipped under--yes, since the login is interactive.
Changed
uv syncand the first pipeline run now happen automatically instead of being prompted.--skip-uv-syncstill opts out of dependency sync (and, with it, the first run).dlthub-startnow initializes a workspace in place — the current directory by default (the workspace-name prompt is gone). An explicit positional argument still targets a named subdirectory. Either way the target must be empty; a non-empty target stops with a dedicated "Directory not empty" message and exit code2instead of a generic error. Next-steps guidance adapts: thecdstep is omitted when initializing in place, and a note reminds AI agents to run from the workspace root when a subdirectory is used.- Bundled AI toolkits are now
one-shot-pipelineanddlthub-platform(previouslydata-exploration,dlthub-platform, andrest-api-pipeline). - The minimal workspace now also depends on
pyarrowandibis-framework[duckdb]for local data access. - Bumped
WORKBENCH_REFto21b9bba4and refreshed the bundled AI workbench scaffolds. make check-aiis clearer: it confirms when the bundled scaffolds are up to date, lists exactly which files differ (including untracked additions) when they're not, and hides the noisygenerate-aioutput unless it fails.
Removed
- Removed the
starter_workspacescaffold along with the--scaffoldflag and the interactive scaffold picker.minimal_workspaceis now the only bundled scaffold. - The minimal workspace no longer ships
report_notebook.py. On dltHub Platform the notebook had to re-run the whole pipeline to repopulate the worker-local DuckDB before charting, which made it slow and undercut the first-run experience. It's removed temporarily until shared workspace storage lands and the notebook speed issue is fixed; agents can still build notebooks on demand via thedata-explorationtoolkit.
Fixed
python -m create_dlthub_workspacenow propagates the CLI exit code (it previously always exited0because__main__ignoredmain()'s return value).
v0.5.3
Added
make update-ai(scripts/update_ai.py): bumpsWORKBENCH_REFto the latest workbench commit (orREF=<sha>) and regenerates all scaffolds in one step.
Changed
- Bumped
WORKBENCH_REFto34b410d0and refreshed the bundled AI workbench scaffolds. - Documented
make update-aiin CONTRIBUTING.md and fixed README's stale multi-select--agentwording to reflect single-agent selection.
v0.5.2
Added
make publish(andmake clean-dist) target to build and publishdlthub-startto PyPI, with accompanying README and CONTRIBUTING docs.
Changed
- Agent selection is now single-select: you choose exactly one coding agent (claude, cursor, or codex) instead of several.
--agenttakes a single value and--yesuses the recommendedclaude. AI files are vendored per-agent under_agents/<agent>/(each with its own.dlt/.toolkits), and only the selected agent's files are written to the new workspace — fixing the bug where one selection still shipped the other agents' toolkits (notably codex's.agents/).generate_ai.pynow generates each agent in isolation. - The minimal workspace is now a complete, runnable "Hello World" example:
pipeline.pyingests a public sample online-shop REST API (sample_shop), a newreport_notebook.py(Marimo) charts the loaded data, and a newREADME.mdwalks through the ingest → load → visualise → deploy loop. Next-steps copy and the "Created" panel updated accordingly;pyproject.tomlgainsmarimoandaltair. - The recommended default scaffold is now
minimal_workspace:--yesand the interactive picker default to the minimal single-pipeline workspace, which is also listed first in the scaffold options. - Bumped
WORKBENCH_REFtoc4250057and refreshed the bundled AI workbench scaffold. - Polished the Hello World onboarding: the minimal scaffold's picker label is now "Hello World", the agent-selection prompt reads "Choose your coding agents", and the post-setup "next steps" show a relative
cdpath. - Renamed the minimal workspace's sample job
load_data→load_sample_shopand dropped itsexposedisplay name (so the dltHub UI shows a single, clear job name). - The minimal workspace now depends on
dlt[hub,filesystem].
Removed
- Dropped the
data-qualityandtransformationstoolkits from the bundled scaffolds (removing the related skills, including ontology/CDM modeling). - Dropped the
sql-database-pipelineandfilesystem-pipelinetoolkits from the bundled scaffolds, leavingdata-exploration,dlthub-platform, andrest-api-pipeline.
v0.4.0
Added
- Per-tool AI skills now ship in scaffolds: full
SKILL.md(and reference) trees under.claude/skills/and.cursor/skills/for bothstarter_workspaceandminimal_workspace, exposing toolkit workflows (e.g.rest-api-pipeline-workflow,data-quality-workflow,dlthub-platform-workflow,transformations-workflow) and per-step skills (create-*,add-*,adjust-*,debug-*,deploy-*,explore-data,build-notebook,init-dlthub-workspace, ...) directly to Claude Code and Cursor.scripts/generate_ai.pywas extended to materialize them. - CI
lock-checkjob that runsuv lock --checkto fail PRs whenuv.lockdrifts frompyproject.toml.
Changed
- Refreshed onboarding guidance for
dlt show runand MotherDuck credentials.
Fixed
- MotherDuck credentials handling in scaffolded workspaces.
v0.3.0
Added
- Starter
prodenvironment now defaults to MotherDuck:.dlt/prod.secrets.tomltemplate,motherduckextra inpyproject.toml, and a "paste your MotherDuck token" step in the next-steps panel. - Bundled toolkits expanded with
data-quality,dlthub-platform,filesystem-pipeline, andsql-database-pipeline; regenerated AI workbench files reflect the new set. CONTRIBUTING.mdnotes thegit add -fworkaround for scaffold templates that match the shipped.gitignore.
Changed
- Bumped
WORKBENCH_REFto42ddb99and refreshed the bundled AI workbench scaffold. starter_transformations.pynow reads upstream data viadlt.attach(...)instead of importingstarter_pipe, avoiding pipeline re-instantiation as an import side effect.
Removed
.dlt/access.config.tomlfrom the starter scaffold (notebooks share theprodenv).- Dead
[destination.warehouse]block in.dlt/config.toml(per-env configs set their own destination).
v0.2.1
Added
- Interactive project name prompt with default
my-workspace, plus tests.
Changed
- Centralized user-facing strings into
strings.py; refreshed onboarding and next-steps copy. - Onboarding guidance now always recommends
dlthub-start@latest.
Removed
- Stripped
uv.lockfrom the bundled scaffold.
Fixed
- MCP dependency error in scaffolds.
v0.2.0
Added
- Beta classifier on the package.
- MCP dependencies.
- AI integration via
generate-ai/check-aisubcommands (replacing directaiinvocation),--overwriteflag, and default agents set to "all". - Unit, integration, and cross-platform e2e tests; CI updated for cross-platform runs;
.codexignorefiles. - File-tree printing with a sync test.
- Company LICENSE.
lint/formatMake targets and dependencies.- Prompts to install
uvand runuv sync. - Scaffolds:
starterpack,minimal_workspace, plus.gitignoreforstarter-workspace. - Selection output, recommendations, and explicit
.venvmention in toolkit display. - Make target for test-workspace handling.
Changed
- Package renamed
create-dlthub-workspace→dlthub-start(CLI entrypoint andpyproject.toml). - Default destination for
start_workspaceswitched from MotherDuck to DuckDB; stray scaffold removed. - CLI usage renamed
dlt→dlthub. - Bumped
dlt[hub]version in scaffolds. - Workbench pinned to a specific commit; Windows encoding issue fixed.
- Next-steps copy aligned with scaffolds;
cdmoved to step 1. - Source switched from
github_apito a public no-auth API; API limit handling adjusted. - Plan and execute phases split.
- Stdout/stderr from subprocesses suppressed.
- License pointer updated.
- Lint/format conformed to runtime repo.
- Notebook refactored and moved to
notebooks/dir;starter_reportremoved. make compileno longer recurses into bundled scaffolds / generated.venv.
Fixed
- Windows test string issue.
dlthub toolkit installCLI command order.