You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Skardi lets you define SQL queries in YAML files and instantly serve them as parameterized HTTP APIs. Connect to multiple data sources, run federated queries across them, and expose the results as REST endpoints — all without writing application code.
19
+
Skardi lets AI agents and applications query files, databases, data lakes, and vector stores with SQL — no application code required.
20
+
21
+
-**`skardi-cli`** — Run SQL queries locally against files, object stores, databases, and datalake formats. Ideal for local agents like [OpenClaw](https://github.com/openclaw/openclaw) that need structured data access without a running server.
22
+
-**`skardi-server`** — Define SQL queries in YAML and serve them as parameterized HTTP APIs. Connect to multiple data sources, run federated queries, and expose results as REST endpoints.
20
23
21
24
> **Warning:** This software is in BETA. It may still contain bugs and unexpected behavior. Use caution with production data and ensure you have backups. Feel free to contact us if you want to have a POC for the product.
22
25
23
26
## Key Features
24
27
28
+
-**CLI for local agents & queries** — Run SQL against local files, remote object stores (S3, GCS, Azure), databases, and datalake formats — ideal for local AI agents like [OpenClaw](https://github.com/openclaw/openclaw)
25
29
-**Declarative pipelines** — Define SQL queries in YAML, get REST APIs automatically
26
30
-**Automatic parameter inference** — Request parameters, types, and response schemas are inferred from your SQL
27
31
-**Multi-source federation** — JOIN across CSV, Parquet, PostgreSQL, MySQL, MongoDB, Iceberg, and Lance in a single query
@@ -30,12 +34,12 @@ Skardi lets you define SQL queries in YAML files and instantly serve them as par
30
34
-**S3 support** — Read CSV, Parquet, and Lance files directly from S3
31
35
-**Docker ready** — Ship as a container with your config files mounted at runtime
32
36
-**ONNX inference** — Run ONNX model predictions inline in SQL via the `onnx_predict` UDF
33
-
-**CLI for local & remote queries** — Run SQL against local files, remote object stores (S3, GCS, Azure), databases, and datalake formats without starting a server
34
37
35
38
## Table of Contents
36
39
37
40
-[Quick Start](#quick-start)
38
41
-[Architecture](#architecture)
42
+
-[Skardi CLI](#skardi-cli)
39
43
-[Skardi Server](#skardi-server)
40
44
-[Running the Server](#running-the-server)
41
45
-[API Endpoints](#api-endpoints)
@@ -44,7 +48,6 @@ Skardi lets you define SQL queries in YAML files and instantly serve them as par
-[Supported Data Sources](#supported-data-sources)
49
52
-[CSV](#csv)
50
53
-[Parquet](#parquet)
@@ -65,6 +68,14 @@ Skardi lets you define SQL queries in YAML files and instantly serve them as par
65
68
# Build
66
69
cargo build --release
67
70
71
+
# --- Skardi CLI ---
72
+
# Query local files directly
73
+
skardi query --sql "SELECT * FROM './data/products.csv' LIMIT 10"
74
+
75
+
# Query remote files
76
+
skardi query --sql "SELECT * FROM 's3://mybucket/events.parquet' LIMIT 10"
77
+
78
+
# --- Skardi Server ---
68
79
# Start the server with a context and pipeline
69
80
cargo run --bin skardi-server -- \
70
81
--ctx demo/ctx.yaml \
@@ -81,11 +92,53 @@ curl -X POST http://localhost:8080/product-search-demo/execute \
81
92
82
93
Skardi has two main components:
83
94
95
+
-**`skardi-cli`** (`skardi`) — A command-line tool for running SQL queries against local files, remote object stores, databases, and datalake formats without starting a server. Perfect for powering local AI agents like [OpenClaw](https://github.com/openclaw/openclaw) with structured data access.
84
96
-**`skardi-server`** — An HTTP server that loads data sources from a **context file**, registers SQL pipelines, and serves them as REST endpoints.
85
-
-**`skardi-cli`** (`skardi`) — A command-line tool for running SQL queries against local files, remote object stores, databases, and datalake formats without starting a server.
86
97
87
98
Both components use [Apache DataFusion](https://datafusion.apache.org/) as the query engine, which enables federated queries across heterogeneous data sources.
88
99
100
+
## Skardi CLI
101
+
102
+
The CLI lets you run SQL queries against local files, remote object stores, databases, and datalake formats — no server required. It's a great fit for local AI agents like [OpenClaw](https://github.com/openclaw/openclaw) that need to query structured data on the fly.
103
+
104
+
### Install
105
+
106
+
```bash
107
+
cargo install --path crates/cli
108
+
```
109
+
110
+
### Usage
111
+
112
+
```bash
113
+
# Query files directly by path (no context file needed)
114
+
skardi query --sql "SELECT * FROM './data/products.csv' LIMIT 10"
115
+
skardi query --sql "SELECT * FROM 's3://mybucket/events.parquet' LIMIT 10"
116
+
skardi query --sql "SELECT * FROM './embeddings.lance' LIMIT 5"
117
+
118
+
# Query with a context file (for databases, named tables, etc.)
**Context file resolution** (when `--ctx` is omitted): checks `SKARDICONFIG` env var, then `~/.skardi/config/ctx.yaml`. If no context file is found, the query runs without pre-registered tables (you can still query files directly by path).
139
+
140
+
For full details, see [crates/cli/README.md](crates/cli/README.md).
141
+
89
142
## Skardi Server
90
143
91
144
### Running the Server
@@ -262,48 +315,6 @@ curl -X POST http://localhost:8080/register_pipeline \
262
315
}
263
316
```
264
317
265
-
## Skardi CLI
266
-
267
-
The CLI lets you run SQL queries against local files, remote object stores, databases, and datalake formats — no server required.
268
-
269
-
### Install
270
-
271
-
```bash
272
-
cargo install --path crates/cli
273
-
```
274
-
275
-
### Usage
276
-
277
-
```bash
278
-
# Query files directly by path (no context file needed)
279
-
skardi query --sql "SELECT * FROM './data/products.csv' LIMIT 10"
280
-
skardi query --sql "SELECT * FROM 's3://mybucket/events.parquet' LIMIT 10"
281
-
skardi query --sql "SELECT * FROM './embeddings.lance' LIMIT 5"
282
-
283
-
# Query with a context file (for databases, named tables, etc.)
**Context file resolution** (when `--ctx` is omitted): checks `SKARDICONFIG` env var, then `~/.skardi/config/ctx.yaml`. If no context file is found, the query runs without pre-registered tables (you can still query files directly by path).
304
-
305
-
For full details, see [crates/cli/README.md](crates/cli/README.md).
306
-
307
318
## Supported Data Sources
308
319
309
320
### CSV
@@ -577,14 +588,14 @@ docker run --rm -p 8080:8080 skardi
0 commit comments