v1.0.0 · stable release

PulseQL

the data lifecycle, in one app

Connect your sources, land them as a real lakehouse, transform with agentic help, ask in plain English. Ship without a platform team.

scroll

> capabilities

> STACK

Six tools. One binary.

The modern data stack fragments ingestion, storage, transformation, semantics, BI, and governance into six separate purchases — each with its own auth model and ops surface. PulseQL collapses that into one opinionated desktop app. Connect any source, land it as Iceberg or Delta in your own object store, promote Bronze → Silver → Gold with agent-suggested transforms, model semantics in YAML, query in plain English, and publish a dashboard or API — without leaving the app.

> ASK

Intent → plan → SQL → answer.

PulseQL's query layer runs a two-stage planner: first it decomposes your question into a readable plan — which tables, which joins, which filters — then generates a SQL draft you can inspect and edit before anything executes. Every answer carries an evidence pack: citations back to the contracts, datasets, and lineage events it depends on. LLM outputs are JSON-schema-validated before they touch your database. No hallucinations in production paths.

> CONTROL

Your cloud. Your bytes.

Bytes live in your object store as Iceberg or Delta. PulseQL keeps only metadata, plans, and lightweight artifacts on-disk — a local SQLite catalog, lineage events, agent run history, DQ results. There is no hosted data plane. Sensitive columns are PII-routed to local inference and never reach external APIs. Every mutating action — pipeline change, DQ gate, dashboard publish — is queued as a proposal and requires human approval before execution.

> interface

pulseql › sales.transactions⌘KSCHEMApublictransactionscustomersproductsstaginganalyticsPROFILEQUERYSELECTcustomer_id, sum(amount)FROMtransactionsWHEREcreated_at > now() - 30dGROUP BYcustomer_id-- intent: top customers, last 30dRUN ⏎EVAL · 2.3M rows · 142mscust_412$842cust_423$769cust_434$696cust_445$623cust_456$550

query editor · schema explorer · profiler · results

> built with

Rust

Memory-safe backend, zero GC pauses in the query path, single binary output.

Tauri

~150 MB installer. Native OS file system and credential access without Electron overhead.

React 19

Streaming-first UI. Concurrent rendering for large result sets and live agent output.

DataFusion

In-process query engine — no separate server. SQL over Parquet, CSV, and JSON.

DuckDB

Local OLAP. Multi-GB files on a laptop. Columnar execution without infrastructure.

Iceberg

Open table format. Snapshot isolation and time-travel without vendor lock-in.

SQLite

Local-first metadata — catalog, lineage events, DQ history, and agent run logs on disk.

> quick start

terminal

# macOS — right-click → Open if Gatekeeper prompts on first launch

$ curl -LO https://pub-08fea510099447418d6efca50e163284.r2.dev/pulseql-release/v1.0.0/pulseDesktop_1.0.0_universal.dmg

$ open pulseDesktop_1.0.0_universal.dmg

# Linux (Debian / Ubuntu)

$ curl -LO https://pub-08fea510099447418d6efca50e163284.r2.dev/pulseql-release/v1.0.0/pulseDesktop_1.0.0_amd64.deb

$ sudo apt install ./pulseDesktop_1.0.0_amd64.deb

# Linux (portable AppImage)

$ curl -LO https://pub-08fea510099447418d6efca50e163284.r2.dev/pulseql-release/v1.0.0/pulseDesktop_1.0.0_amd64.AppImage

$ chmod +x pulseDesktop_1.0.0_amd64.AppImage && ./pulseDesktop_1.0.0_amd64.AppImage

# Windows — run .exe or .msi → "More info" → "Run anyway" on SmartScreen

> init

Single binary. No assembly required.

Built for the operator, not the platform team.

view releases on github →