v0.1.1
Tycoon v0.1.1
Released: 2026-04-16
Two themes in this release: command cleanup and a real onboarding
wizard for tycoon init.
Headline
tycoon init now has a real wizard
Running tycoon init without --template walks you through the stack one
component at a time — ingestion, warehouse, dbt, Rill, orchestrator — and at
each step tells you exactly what tycoon will do for each option.
If you already have a dbt project at ./dbt_project/, ../myproject-dbt/,
or any of the other common locations, the wizard offers it as an explicit
"use this" option. If you have one in a GitHub repo somewhere, paste the
URL and tycoon will clone it into a sibling directory. If you don't want
dbt at all, "skip" is a first-class option and tycoon doctor will respect
that choice rather than warning about it forever.
Commands flattened
tycoon data db stats→tycoon data schematycoon data db query→tycoon data querytycoon data db clean→tycoon data clean
Same functions, one level shallower. The data db namespace is gone.
tycoon data query knows about per-source databases
Two new flags solve the biggest reported v0.1.0 paper cut
(#1):
--source <name>— queries the right raw DuckDB for a named source,
whether that'sdata/raw.duckdb(single-DB mode) ordata/raw_<name>.duckdb.--db <path>— queries any DuckDB file directly.
tycoon register — attach projects post-init
Changed your mind after tycoon init? Two new subcommands let you attach
an existing dbt or Rill project without re-running the wizard:
tycoon register dbt ../my-team-dbt/
tycoon register dbt https://github.com/acme/analytics-dbt
tycoon register rill ../dashboards/GitHub URLs get cloned into a sibling dir. If you already had something
registered, tycoon prompts before overwriting.
Warehouse alignment
When you point tycoon at an external dbt project — either during
tycoon init or via tycoon register dbt — tycoon now reads the project's
profiles.yml and checks whether its DuckDB path matches tycoon's
warehouse. If they diverge, you get an explicit prompt:
Your dbt project targets
/foo/theirs.duckdb, but tycoon.yml has
warehouse =data/warehouse.duckdb. Update warehouse to
/foo/theirs.duckdb? [Y/n]
No more silent "dbt wrote here, tycoon data query reads there" mystery
mismatches.
What changed
Added
- Per-component init wizard with auto-detection, register-existing (path
or GitHub URL), and explicit "skip" support for every component. tycoon register dbtandtycoon register rill— attach existing
projects to an existingtycoon.ymlwithout re-running init.- Warehouse-alignment check when registering external dbt projects.
TransformationToolenum and newstack.transformationfield in
tycoon.yml— "skip dbt" is now recorded explicitly rather than inferred.tycoon data query --source <name>and--db <path>.tycoon data analyze --rillauto-scaffolds the Rill project dir
instead of silently skipping when it's missing.- Template smoke tests for all four built-in templates
(csv-import,github-analytics,nyc-transit,weather-station). GET /healthendpoint on the internal server.
Changed
tycoon data db <sub>commands flattened (see above).tycoon doctorreports "skipped by choice" for components the user
turned off during init.
Fixed
tycoon doctorno longer promises dbt will appear magically during
tycoon data analyze— it won't. That'stycoon init's job.tycoon data transformfalls back to~/.dbt/profiles.ymlwhen a
registered external dbt project has no co-located profiles file.server/check-updatesqueries the right PyPI package
(database-tycoon) viahttpx.tycoon data analyzeandtycoon data sources runno longer crash with
AttributeErrorwhen invoked without a source argument — the interactive
"pick a source" prompt was using a non-existenttyper.Choicereference.
Upgrade notes
pip install -U database-tycoonBreaking for shell aliases: the old tycoon data db <sub> paths are
gone. Update aliases to the flattened form. No migration needed for
tycoon.yml; the new stack.transformation field defaults to dbt, so
existing configs keep working.
For anyone already using tycoon init: the wizard is different. You'll
see more prompts — five components, one at a time — and each has a visible
"skip" option. If you use --template, that path is unchanged.
Known limitations (carried forward)
- Snowflake and BigQuery: dbt can transform against them, but
tycoon data queryis DuckDB-only for now. - External dlt pipelines can't be run via
tycoon data sources run— only
tycoon-managed dlt sources are. The wizard reflects this: you can't
register an "external dlt" project because we have no way to run arbitrary
dlt scripts yet.
What's next (v0.1.2 candidates)
- Cloud-warehouse alignment: the same check we now do for DuckDB, but for
MotherDuck/Snowflake/BigQuery connection strings. tycoon register warehouse/tycoon register ingestion— extend the
register family to cover the other stack components.- Network-gated end-to-end tests that run a full ingest → build → dashboard
cycle per template in CI.