Command-line interface

Install dlake in one command

dlake is a single self-contained binary for Windows, macOS and Linux. Install it with npm, or download it directly from GitHub and verify the checksum. No .NET runtime to install.

npm install -g @commercient/dlake
  • Latest: v0.5.40
  • Released 19 Sept 2026
  • 5 platforms
How installing dlake worksOne npm command downloads the binary that matches your operating system, verifies its SHA-256 digest against the publisher's checksum file, and exposes it as the dlake command. Builds exist for Windows x64, macOS on Apple Silicon and Intel, and Linux x64 and arm64.npm install -g@commercient/dlakeVerified binarySHA-256 checkedWindows x64macOS arm64 · x64Linux x64 · arm64One self-contained file. No .NET runtime to install.

How do I install dlake?

In plain wordsIf you have Node.js, one command installs everything. If not, download the file for your computer and put it somewhere on your PATH.

npm (recommended)

The @commercient/dlake package downloads the platform-matched binary during install, verifies its SHA-256 digest against the publisher's SHA256SUMS, and exposes it as the dlake command. The alias package datalake installs the same CLI.

npm install -g @commercient/dlake
dlake --version

Air-gapped or mirrored installs can pin DLAKE_VERSION and DLAKE_SHA256; see environment variables.

Direct download

Grab the binary for your platform from the latest GitHub Release, verify it against SHA256SUMS, make it executable, and put it on your PATH.

PlatformAssetSize
Linux arm64dlake-linux-arm6435.5 MB
Linux x64dlake-linux-x6437.2 MB
macOS Apple Silicondlake-osx-arm6435.0 MB
macOS Inteldlake-osx-x6436.9 MB
Windows x64dlake-win-x64.exe35.6 MB
ChecksumsSHA256SUMS412 B

Assets from v0.5.40 on GitHub. Older versions are on the releases page; downloads below 0.5.10 have been retired.

Verify your download

Check the checksum

Every release ships a SHA256SUMS file. The npm install verifies automatically. For a direct download, check it yourself.

$ sha256sum -c SHA256SUMS --ignore-missing
dlake-linux-x64: OK
$ dlake --version

The npm integrity chain never follows a mirror: even when DLAKE_DOWNLOAD_BASE points at a private mirror, SHA256SUMS is still fetched from the canonical Commercient host.

macOS: clear quarantine

If a downloaded macOS binary refuses to start, clear the quarantine flag and ad-hoc sign it once. This also applies to the binary npm downloads.

$ xattr -dr com.apple.quarantine ./dlake
$ codesign --force --sign - ./dlake
$ chmod +x ./dlake

Only needed for a direct download on macOS; Windows and Linux binaries run as downloaded once they are executable.

Quickstart: from nothing to a queryable backend

In plain wordsCreate an account, click one link in your email, and you have your own Data Lake with a working key. Then ask it questions.

  1. Create your Data Lake (or sign in)

    New here? Registration is a human step: the three affirmation flags confirm you have made your own backups of your CRM and ERP data and consent to phone contact, and the portal password is prompted hidden (or use --generate-password). Have a tenant already? Skip to dlake login.

    $ dlake register start --email you@acme.com --company "Acme Inc" --phone +15551234567 \
      --consent-crm-backup --consent-erp-backup --consent-phone
    # click the verification link in your email, then:
    $ dlake register status --watch
    emailVerified > provisioned > dataLakeSeeded
    Once-only 7-day owner-admin key saved to a profile. Copy it now.
    
  2. Authenticate once per tenant

    Profiles keep several tenants apart. Since 0.5.7 you name the tenant on every command with --profile (or set DLAKE_PROFILE once per shell session).

    $ DLAKE_API_KEY=dlk_... dlake login --domain acme --profile acme
    $ dlake status --profile acme
    tenant acme   key: ok   auth api: up   ddl api: up   data api: up
    
  3. Ask your data a question, then export it

    Queries are read-only SELECTs, qualified with your active schema (usually DLO). Exports write CSV or Parquet files.

    $ dlake query "SELECT TOP 10 * FROM DLO.account" --profile acme
    $ dlake export account --format parquet -o ./account.parquet --profile acme
    $ dlake entities list --profile acme
    
  4. See what your key can do

    Two planes: admin is the control plane (schema, exposure, keys, DAB restarts), tool is the data plane (records, queries, exports). Every tool documents its own arguments.

    $ dlake admin list --profile acme
    $ dlake tool list --profile acme
    $ dlake admin create_table --help
    

Install and upgrade questions

Which operating systems does dlake run on?

Windows x64, Linux x64, Linux arm64, macOS on Apple Silicon and macOS on Intel. Each release ships a self-contained single-file binary per platform, so no .NET runtime install is needed.

What is the recommended way to install dlake?

Run npm install -g @commercient/dlake. The npm package downloads the binary that matches your platform, verifies its SHA-256 checksum and exposes it as the dlake command. You can also download a binary directly from the GitHub Releases page and verify it against SHA256SUMS.

Do I need an account before installing?

No. Install first, then run dlake register start to create your own Data Lake from the terminal. You confirm one emailed verification link and the platform provisions and seeds your Data Lake automatically. If you already have a tenant, sign in with dlake login --domain <tenant> and an API key.

How do I upgrade?

Run npm install -g @commercient/dlake again, then dlake skills install to refresh the bundled AI-agent skills. Releases ship often, so the release notes on this site list what changed in each version.

Can I use dlake in scripts and CI?

Yes. Every command accepts --json for machine-readable output, exit codes are stable (0 ok, 1 error, 2 usage, 3 permission or auth denied), and array or object arguments can be read from files with @file.json.

Why does my new table or scoped key return an error?

The Data API only serves entities that have been exposed and then published with dlake admin restart_dab --confirm true. Likewise, a scoped API key only works after a DAB restart, because the running API learns the key's role on regeneration. Unscoped keys and raw SQL reads are unaffected.