Skip to content

CLI Reference

Complete reference for all jinflow commands, flags, and arguments.

This is the exhaustive reference. For a quick overview, see the Cheatsheet.


AliasCommand
jinjinflow
mmake
lls
uus
sstatus
eextract
vevolve
f, x, flowexplore
snapsnapshot

Show or set jinflow configuration. Settings persist in ~/.jinflow/config.yml.

FlagRequiredTypeDefaultDescription
target (positional)NostringSet current tenant (pack-qualified: millesime.domaine_zufferey). Also accepts --tenant for backwards compatibility.
--live-rootNostringSet the live root directory
--api-keyNostringSet Anthropic API key (stored in ~/.jinflow/secrets.yml)
--modelNostringSet AI model for evolve (e.g. claude-sonnet-4-6)
--dlzNostringSet DLZ root directory (data landing zone)
--pack-rootNostringSet pack root directory (domain pack repos)
--r2-account-idNostringSet Cloudflare R2 account ID (stored in ~/.jinflow/secrets.yml)
--r2-keyNostringSet R2 access key ID (stored in ~/.jinflow/secrets.yml)
--r2-secretNostringSet R2 secret access key (stored in ~/.jinflow/secrets.yml)
--r2-bucketNostringSet R2 bucket name (stored in ~/.jinflow/secrets.yml)

Without arguments, shows current config with provenance (where each value comes from).

Examples:

Terminal window
jinflow us # show current config
jinflow us millesime.domaine_zufferey # set active tenant
jinflow us --live-root ~/my-live # set live root
jinflow us --api-key sk-ant-... # set AI credentials
jinflow us --r2-account-id ACCT --r2-key KEY --r2-secret SECRET

List packs and tenants in the live root. Shows tenant name, KLS size, snapshot count, source system, and CSV count. The current tenant is marked with *.

FlagRequiredTypeDefaultDescription
--snapshotsNostring (optional)List KLS snapshots. Pass a tenant ID or omit for current tenant.

Examples:

Terminal window
jinflow ls
jinflow ls --snapshots
jinflow ls --snapshots millesime.domaine_zufferey

Interactive tenant picker — list all tenants, pick one by number. The selected tenant becomes the default (same as jinflow us pack.tenant).

No flags.


Show KLS data statistics and run health checks for a tenant. Queries gold layer counts, analytics pyramid (signals, theses, verdicts), SMEbits, and taxonomies. Checks for anomalies: empty tables, orphaned memberships, low validity, missing metadata.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack-qualified). Also accepts --tenant for backwards compatibility.

Show script resolution for a tenant — which file wins at each layer. Resolution order: tenant AFS, then pack, then engine.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack-qualified: millesime.domaine_zufferey). Also accepts --tenant for backwards compatibility.

Three-party drift detection across AFS (tenant instance), DPH (domain pack), and the jinflow engine. Shows git status, uncommitted changes, ahead/behind commits, and pack-to-tenant content drift with conflicts.

Without a target: environment summary and live instance listing. With a target: full three-party drift report.

FlagRequiredTypeDefaultDescription
target (positional)NostringTenant for three-party drift (pack.tenant). Also accepts --tenant for backwards compatibility.
--afsNostringcurrent repoPath to AFS

Create a tenant AFS instance from a domain pack (starter kit), or join an existing tenant via --clone.

FlagRequiredTypeDefaultDescription
target (positional)NostringPack-qualified tenant to create (e.g. millesime.domaine_new)
--cloneNostringGit URL to clone an existing tenant AFS (join a team)
--dlzrootNostringDLZ repo root (resolves: dlzroot/pack/tenant/system/csv)
--dlztenantNostringDLZ tenant dir (resolves: dlztenant/system/csv; derives dlzroot)
--source-systemNostringauto-discoverSource system override (default: auto-discover from DLZ)
--display-nameNostringHuman-readable tenant name

Examples:

Terminal window
jinflow init millesime.domaine_new
jinflow init millesime.domaine_new --dlzroot ~/jinflow-dlz
jinflow init --clone https://github.com/org/afs-millesime-domaine_zufferey.git

Copy an existing tenant AFS instance. The clone name becomes a postfix: domaine_zufferey + audit becomes domaine_zufferey_audit. By default, the clone shares DLZ data with the source tenant.

FlagRequiredTypeDefaultDescription
source (positional)YesstringSource tenant (e.g. millesime.domaine_zufferey). Also accepts --source for backwards compatibility.
--nameYesstringClone postfix (e.g. audit becomes domaine_zufferey_audit)
--display-nameNostringHuman-readable name for the clone
--no-share-dlzNoflagfalseDon’t share DLZ data with source (independent clone)

Examples:

Terminal window
jinflow clone millesime.domaine_zufferey --name audit
jinflow clone millesime.domaine_zufferey --name q1review
jinflow clone millesime.domaine_zufferey --name sandbox --no-share-dlz

Sync a live tenant AFS with the latest domain pack content using three-way merge. Dry run by default.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant to update. Also accepts --tenant for backwards compatibility.
--allNoflagfalseUpdate all tenants across all packs
--do-itNoflagfalseActually apply changes (default: dry run)
--packNoflagfalseWrite tenant-specific artifacts back to the pack (requires --do-it)
--forceNoflagfalseForce-overwrite conflicts (pack wins)

Examples:

Terminal window
jinflow afs update # dry run, active tenant
jinflow afs update szo --do-it # apply three-way merge
jinflow afs update --all # dry run, all tenants
jinflow afs update --do-it --force # pack wins on conflicts
jinflow afs update szo --do-it --pack # apply + write back to pack

Hard-reset a tenant AFS to match the pack exactly. Removes tenant-specific files in managed directories that don’t exist in the pack. Preserves tenant/ and jinflow.yml. Dry run by default.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant to reset. Also accepts --tenant for backwards compatibility.
--do-itNoflagfalseActually apply changes (default: dry run)

Show or set the git remote URL for a tenant AFS.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack-qualified or bare). Also accepts --tenant for backwards compatibility.
url (positional)NostringGit remote URL to set (omit to show current)

Show AFS repo status, tags, and recent commits.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack-qualified or bare). Also accepts --tenant for backwards compatibility.

Show build logbook / commit history.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack-qualified or bare). Also accepts --tenant for backwards compatibility.
-n, --numberNoint20Number of commits to show

Pull latest AFS state from remote.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack-qualified or bare). Also accepts --tenant for backwards compatibility.

Commit changes and push to remote.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack-qualified or bare). Also accepts --tenant for backwards compatibility.
-m, --messageNostringauto-generatedCommit message

Pull then push (sync with remote). Equivalent to jinflow afs pull followed by jinflow afs push.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant
-m, --messageNostringauto-generatedCommit message

Show changes between local AFS and remote (incoming and outgoing commits, grouped by artifact type).

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant

List, create, or delete AFS branches.

FlagRequiredTypeDefaultDescription
name (positional)NostringBranch name to create (omit to list)
-dNoflagfalseDelete the named branch

Switch AFS to a different branch.

FlagRequiredTypeDefaultDescription
branch (positional)YesstringBranch to switch to

Merge a branch into the current branch.

FlagRequiredTypeDefaultDescription
branch (positional)YesstringBranch to merge

Deterministic build pipeline: enrich, compile, dbt build, metadata, reports. Produces a KLS (DuckDB) file in the live root.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack.tenant) or pack name (millesime or millesime.* for all tenants in pack). Also accepts --tenant for backwards compatibility.
--afsNostringcurrent repoPath to AFS
--allNoflagfalseBuild all tenants across all packs
--cleanNoflagfalseClean rebuild — clear intermediaries, run all phases
--snapshotNostring (optional)Create immutable snapshot. Auto-tag (YYYYMMDD-HHMM) if no name given.
--extractNoflagfalseRun XLSX-to-CSV extraction before building (implies --sync)
--syncNoflagfalseSync CSVs from DLZ to raw/ before building
--pruneNoflagfalseRemove files from raw/ no longer in DLZ (use with --sync)
--skip-enrichNoflagfalseSkip CSV enrichment
--skip-validateNoflagfalseSkip CSV schema validation
--metadata-onlyNoflagfalseOnly rebake metadata (logo, branding, about) — skip all build phases
--no-depsNoflagfalseSkip dbt deps even if dbt_packages/ is missing
--skip-extractNoflagfalseSkip extraction phase (Phase 0)
--extract-onlyNoflagfalseRun extraction only, skip build
--pullNoflagfalsePull AFS before building
--purgeNoflagfalsePurge orphaned build artifacts
--branchNostringBuild on a specific AFS branch
-m, --messageNostringAFS commit message
--continue-on-errorNoflagfalseDon’t fail-fast; collect all errors
--quietNoflagfalseSuppress subprocess output

Examples:

Terminal window
jinflow make # full build, active tenant
jinflow make millesime.domaine_zufferey # build specific tenant
jinflow make millesime --clean # clean rebuild, all tenants in pack
jinflow make --extract # extract XLSX + build
jinflow make --sync # sync CSVs from DLZ + build
jinflow make --snapshot # build + freeze (auto-tag)
jinflow make --snapshot post-audit # build + freeze (named tag)
jinflow make --skip-enrich --skip-validate # recompile + rebuild only
jinflow make --quiet --continue-on-error # CI mode

Inspection command — shows the extraction surface declared in pipeline.yml. Does NOT run extraction. Use jinflow make --extract to extract.

FlagRequiredTypeDefaultDescription
entry_id (positional)NostringFilter to one specific entry by ID
--afsNostringcurrent repoPath to AFS
--tenantNostringactive tenantTenant
--checkNoflagfalseVerify structure contracts (exit 1 on violation)
--contractNoflagfalseShow delivery specification (config only)
--verboseNoflagfalseFull detail: hashes, sizes, mtimes

Generate synthetic data into the DLZ. Runs the generate script configured in pipeline.yml. Extra arguments after -- are forwarded to the script.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack.tenant). Also accepts --tenant for backwards compatibility.
--afsNostringcurrent repoPath to AFS
--continue-on-errorNoflagfalseDon’t fail-fast; collect all errors
--quietNoflagfalseSuppress subprocess output

Freeze the current working KLS into an immutable, stamped snapshot. No build is triggered — just copy and stamp.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack.tenant). Also accepts --tenant for backwards compatibility.
tagNostringauto YYYYMMDD-HHMMSnapshot tag (second positional, or via --tag)
--afsNostringcurrent repoPath to AFS

Launch the Explorer web app on a KLS.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant to explore (e.g. millesime.domaine_zufferey). Also accepts --tenant for backwards compatibility.
--afsNostringcurrent repoPath to AFS
--dbNostringauto-discoverPath to KLS DuckDB (overrides auto-discovery)
--snapshotNostringOpen a specific KLS snapshot by tag name
--portNoint4000Server port
--dockerNoflagfalseRun Explorer in Docker (image must be pre-built)
--cloudNoflagfalseUse R2 cloud KLS store (requires R2 credentials)
--no-openNoflagfalseDon’t open browser automatically
--smoke-testNoflagfalseStart server, hit all pages, report results, shut down

Examples:

Terminal window
jinflow explore # active tenant, port 4000
jinflow explore millesime.domaine_zufferey # specific tenant
jinflow explore --db /path/to/kls.duckdb # explicit KLS
jinflow explore --snapshot post-audit # open a snapshot
jinflow explore --port 8080 --no-open # custom port, no browser
jinflow explore --docker # run in Docker
jinflow explore --cloud # serve from R2

AI-assisted research and improvement REPL. Opens an interactive shell connected to the KLS and AFS, combining local SQL queries with Claude AI analysis.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantDefault tenant for queries. Also accepts --tenant for backwards compatibility.
--afsNostringcurrent repoPath to AFS
--dbNostringauto-discoverExplicit KLS path (overrides auto-discovery)
--modelNostringclaude-sonnet-4-6Claude model
--no-aiNoflagfalseLocal mode only (no Claude API)

Export a notebook from the KLS as a PDF document.

FlagRequiredTypeDefaultDescription
notebook_id (positional)YesstringNotebook ID
target (positional)Nostringactive tenantTenant (pack-qualified). Also accepts --tenant for backwards compatibility.
--langNoen/de/frenLanguage for content
-o, --outputNostring{notebook_id}.pdfOutput file path

List packs with artifact counts and tenant sync status.

FlagRequiredTypeDefaultDescription
--syncNoflagfalseRun full three-way diff per tenant (slower)

Clone a domain pack from GitHub. Clones from the configured GitHub org (default: jinflow-io) with repo prefix jinflow-pack-.

FlagRequiredTypeDefaultDescription
pack_name (positional)YesstringPack name (e.g. millesime)
--httpsNoflagfalseUse HTTPS instead of SSH for git clone

Build, sync to R2, and refresh cloud instances in one command. Dry run by default.

FlagRequiredTypeDefaultDescription
target (positional)Nostringactive tenantTenant (pack.tenant) or pack name (millesime for all tenants in pack). Also accepts --tenant for backwards compatibility.
--allNoflagfalseBuild and ship all tenants across all packs
--do-itNoflagfalseActually execute (default: dry run)
--cleanNoflagfalseClean rebuild before syncing

Examples:

Terminal window
jinflow ship # dry run: see what would happen
jinflow ship --do-it # current tenant → build → sync → refresh
jinflow ship --all --do-it # all tenants → build → sync → refresh
jinflow ship --all --do-it --clean # clean build all → sync → refresh
jinflow ship millesime --do-it # one pack only

List KLS files and their R2 sync status.

FlagRequiredTypeDefaultDescription
--local-onlyNoflagfalseSkip R2 status check (just list local files)

Manage the R2 sync blacklist. Without arguments, shows the current blacklist.

FlagRequiredTypeDefaultDescription
tenant (positional)NostringTenant to add/remove (e.g. millesime.domaine_zufferey)
--removeNoflagfalseRemove tenant from blacklist

Sync KLS files to Cloudflare R2. Dry run by default.

FlagRequiredTypeDefaultDescription
--do-itNoflagfalseActually upload (default: dry run)
--pruneNoflagfalseRemove R2 objects not present locally (or blacklisted)

Manage deployed cloud instances (registration, refresh).

SubcommandDescription
jinflow instance lsList registered instances
jinflow instance add <name> <url>Register an instance
jinflow instance remove <name>Remove an instance
jinflow instance refresh <name>Tell instance to re-download from R2
jinflow instance refresh --allRefresh all instances
FlagRequiredTypeDefaultDescription
--allNoflagfalseRefresh all registered instances
--scopeNostringRefresh scope (pack)
--packNostringPack name (with --scope pack)

Examples:

Terminal window
jinflow instance ls
jinflow instance add demo https://this-is.jinflow.io
jinflow instance remove demo
jinflow instance refresh demo
jinflow instance refresh --all
jinflow instance refresh demo --scope pack --pack millesime

Show version and release notes.

FlagRequiredTypeDefaultDescription
--changelogNoflagfalseShow changes across all releases (from git tags)
--lastNoint0 (all)Show only the last N releases (with --changelog)
--daysNoint0 (all)Show only releases from the last N days (with --changelog)

Show detailed help for a command.

FlagRequiredTypeDefaultDescription
topic (positional)NostringCommand to get help for

Generate RELEASE_NOTES.md from git commits.

No flags.

jazzisnow jinflow is a jazzisnow product
v0.45.1 · built 2026-04-17 08:14 UTC