Collect, store, and query every data point in your life. Sensor readings, media libraries, finances, health metrics — all in one beautifully simple CLI.
GitHub Stars
Records Ingested Daily
Config Required
Local-First
Features
pond is a single binary with zero dependencies. Ships with built-in connectors, a query engine, and a pipeline orchestrator.
Stream millions of records per second. Automatic schema detection, compression, and partitioning — zero configuration needed.
Home Assistant, Grafana, Prometheus, Tesla API, Withings, Oura, Fitbit, Stripe, Plaid, YouTube, Plex, and more. Just point and ingest.
Your data never leaves your machine unless you want it to. AES-256 encryption at rest, with optional cloud sync to any S3-compatible backend.
Full SQL support with window functions, CTEs, and vector search. Query years of data in milliseconds. Export to CSV, JSON, or Parquet.
Define ingest → transform → alert pipelines in YAML. Schedule with cron syntax. Get Slack/Discord notifications on anomalies.
Auto-generated sparklines, histograms, and summary stats. Because staring at raw numbers shouldn't be the only option.
How it Works
From zero to queried in under 60 seconds. No servers, no config files, no yak shaving.
Run pond init and point it at your data sources. pond auto-discovers schemas and sets up a columnar store optimized for time-series analytics.
Use pond ingest to pull data on a schedule or stream it in real-time. Backfills historical data automatically with deduplication.
Write SQL against your entire life's data. Build dashboards, set alerts, or pipe results into your own apps via the REST API.
Pipeline Example
Set up automated ingestion, transformation, and alerting with a simple config file. pond handles scheduling, retries, and notifications.
# ~/.pond/pipelines/energy.yaml source: type: hass url: http://homeassistant:8123 entities: - sensor.grid_consumption - sensor.solar_production transform: sql: > SELECT time_bucket('1h', ts) as hour, sum(solar_production) - sum(grid_consumption) as net_energy FROM raw GROUP BY 1 alert: channel: slack condition: net_energy < -5.0 message: "High energy deficit!" schedule: "0 */6 * * *"
Join thousands of home operators who are finally making sense of their data.