Skip to content

Commit bd788af

Browse files
committed
docs: update README and agent skills for the reorganized CLI
Update every `hotdata …` command reference in the README and the bundled agent skills to the new surface: the verb renames, the datasource→`ingest sources` fold, the `search` reshape (indexes/flag-search/embedding-providers → `search …` + `search "<text>" --index`), and the `databases`/`manage` re-parenting. Drop `databases run` references (command removed).
1 parent f90bb8a commit bd788af

10 files changed

Lines changed: 227 additions & 234 deletions

File tree

‎README.md‎

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ brew install hotdata-dev/tap/cli
3232
cargo install --path .
3333
```
3434

35-
Stay current with `hotdata upgrade`, and enable tab completion with
36-
`hotdata completions bash|zsh|fish`.
35+
Stay current with `hotdata manage upgrade`, and enable tab completion with
36+
`hotdata manage completions bash|zsh|fish`.
3737

3838
## Quickstart
3939

@@ -61,7 +61,7 @@ There are two ways to make your data queryable, and they compose:
6161
- **Connect** — a live, synced view of an external source. The data stays
6262
where it is; Hotdata keeps the schema and cache fresh.
6363
- **Import** — copy data *into* a managed database, either from a file you
64-
have or from an external source via `hotdata datasource` + `hotdata ingest`.
64+
have or from an external source via `hotdata ingest sources` + `hotdata ingest`.
6565

6666
### Connect a live database
6767

@@ -71,14 +71,14 @@ hotdata connections new # guided wizard
7171
hotdata connections create --name "prod-replica" --type postgres \
7272
--config '{"host":"db.example.com","port":5432,"user":"reader","database":"app","password":"'"$DB_PASSWORD"'"}'
7373

74-
hotdata tables list # see what's now queryable
74+
hotdata databases tables list # see what's now queryable
7575
```
7676

7777
`hotdata connections create list` shows every supported type, and
7878
`hotdata connections create list <type> -o json` prints the exact config
7979
fields it takes.
8080

81-
### Import from external sources (`datasource` + `ingest`)
81+
### Import from external sources (`ingest sources` + `ingest`)
8282

8383
Three nouns, and each one has a stable id:
8484

@@ -88,30 +88,30 @@ Three nouns, and each one has a stable id:
8888
lands in which managed-database table, once or on a schedule.
8989
- **run** (`run_…`) — one execution attempt, recording the config version,
9090
selector, and destination it used. Addressed under its ingest —
91-
`ingest runs <ing_…>` lists them, `ingest run <run_…>` shows one.
91+
`ingest logs <ing_…>` lists them, `ingest run <run_…>` shows one.
9292

9393
```sh
94-
hotdata datasource types # browse: SQL dialects, ~150 API services,
94+
hotdata ingest sources types # browse: SQL dialects, ~150 API services,
9595
# buckets, iceberg, kafka, api
96-
hotdata datasource fields sql # the fields --config, --credentials and
96+
hotdata ingest sources fields sql # the fields --config, --credentials and
9797
# --selector take for one family, and
9898
# what that family can do (-o json for
9999
# the JSON Schema)
100100

101101
# 1. Check credentials without creating anything — nothing is persisted:
102-
hotdata datasource validate --family sql --config @source.json
102+
hotdata ingest sources test --family sql --config @source.json
103103

104104
# 2. Create the datasource. Loads no data; returns a ds_… id.
105105
# On a terminal, with no --config, it asks: which source type, then that
106106
# family's own fields. The questions come from the service, and secrets are
107107
# never echoed. --no-input, CI and a piped stdin skip the questions.
108-
hotdata datasource create
108+
hotdata ingest sources add
109109

110110
# Non-interactively — keep secrets out of argv with @file.json or @- (stdin):
111-
hotdata datasource create --family sql --config @source.json \
111+
hotdata ingest sources add --family sql --config @source.json \
112112
--display-name "prod postgres"
113-
hotdata datasource create --family filesystem --bucket-url s3://events-prod
114-
hotdata datasource list # ids, families, states
113+
hotdata ingest sources add --family filesystem --bucket-url s3://events-prod
114+
hotdata ingest sources list # ids, families, states
115115

116116
# 3. Ingest — what to load, and where it lands. Once:
117117
hotdata ingest create --source "prod postgres" --table orders --database-id db_123
@@ -138,7 +138,7 @@ hotdata ingest create --datasource-id ds_01J --database-id db_123 \
138138
--table order_totals # runs at the source, in its own dialect
139139

140140
# 4. Watch it. --wait polls; the scheduler decides when a run starts:
141-
hotdata ingest runs ing_01J # every attempt, newest first
141+
hotdata ingest logs ing_01J # every attempt, newest first
142142
hotdata ingest run run_01J --wait # one attempt; exits 0 succeeded /
143143
# 1 failed / 2 in flight
144144

@@ -156,10 +156,10 @@ hotdata query --database db_123 "SELECT count(*) FROM public.orders"
156156
```
157157

158158
Public buckets need no credentials. Config edits and credential rotation are
159-
`hotdata datasource update-config <ds-id>`, which appends an immutable config
159+
`hotdata ingest sources update-config <ds-id>`, which appends an immutable config
160160
version under the same id — runs in flight keep the version they started with.
161161

162-
`hotdata ingest cancel <ing-id>` stops the current run **and** future ones;
162+
`hotdata ingest pause <ing-id>` stops the current run **and** future ones;
163163
`hotdata ingest resume <ing-id>` clears the stop but starts nothing
164164
immediately. To make the next scheduled run happen now:
165165
`hotdata ingest schedule <ing-id> --next now`.
@@ -175,16 +175,16 @@ hotdata databases load --catalog demo --table listings --file ./listings.parquet
175175
## Query and explore
176176

177177
```sh
178-
hotdata tables list # every queryable table, as connection.schema.table
179-
hotdata tables list --connection-id <id> # with column names and types
178+
hotdata databases tables list # every queryable table, as connection.schema.table
179+
hotdata databases tables list --connection-id <id> # with column names and types
180180
hotdata query "<sql>" [-o table|json|csv] # PostgreSQL dialect
181181
```
182182

183183
Long-running queries fall back to async and print a `query_run_id` — poll with
184184
`hotdata query status <id>` (exit codes: `0` done, `1` failed, `2` running).
185185
Every result gets a `result-id`; re-fetch past results with
186-
`hotdata results <result-id>` instead of re-running, and browse history with
187-
`hotdata queries list`.
186+
`hotdata databases results get <result-id>` instead of re-running, and browse history with
187+
`hotdata databases queries list`.
188188

189189
## Join across sources
190190

@@ -209,17 +209,17 @@ setup needed for vector search (the column is auto-embedded, and queries use
209209
the same model automatically):
210210

211211
```sh
212-
hotdata indexes create --catalog demo --schema public --table trips \
213-
--column notes --type bm25
214-
hotdata search "airport surcharge dispute" --table demo.public.trips
212+
hotdata search create trips_notes --type text --from demo.public.trips \
213+
--column notes
214+
hotdata search "airport surcharge dispute" --index trips_notes
215215

216-
hotdata indexes create --catalog demo --schema public --table trips \
217-
--column notes --type vector
218-
hotdata search "rides that mention lost items" --table demo.public.trips --type vector
216+
hotdata search create trips_notes_vec --type vector --from demo.public.trips \
217+
--column notes
218+
hotdata search "rides that mention lost items" --index trips_notes_vec
219219
```
220220

221221
System embedding providers come pre-configured; bring your own with
222-
`hotdata embedding-providers create`.
222+
`hotdata search embeddings add`.
223223

224224
## Use it from scripts and agents
225225

@@ -229,11 +229,9 @@ The CLI is built to be driven programmatically:
229229
script-friendly exit codes (`query status`, `ingest run`).
230230
- Authenticate non-interactively with an API key: `--api-key`, or
231231
`HOTDATA_API_KEY` in the environment or a `.env` file.
232-
- `hotdata databases run <cmd>` launches a child process (an agent, a script)
233-
with credentials scoped to a single database.
234-
- `hotdata skills install` installs bundled agent skills — Markdown playbooks
232+
- `hotdata manage skills install` installs bundled agent skills — Markdown playbooks
235233
that teach AI coding agents (Claude Code and friends) the full CLI surface.
236-
- `hotdata context push|show DATAMODEL` stores your data model as shared,
234+
- `hotdata databases context push|show DATAMODEL` stores your data model as shared,
237235
server-side Markdown so humans and agents query with the same map.
238236

239237
## Commands
@@ -245,20 +243,20 @@ Run `hotdata <command> --help` for full flags on any command.
245243
| `auth` | `login`, `register`, `status`, `logout` |
246244
| `workspaces` | List workspaces, set the active one |
247245
| `connections` | Live external sources: create, list, refresh |
248-
| `databases` | Managed databases: create, load parquet, attach connections, scoped `run` |
249-
| `tables` | List queryable tables and columns |
246+
| `databases` | Managed databases: create, load parquet, attach connections |
247+
| `databases tables` | List queryable tables and columns |
250248
| `query` | Run SQL; `status` polls async runs |
251-
| `queries` / `results` | Query history and stored results |
249+
| `databases queries` / `databases results` | Query history and stored results |
252250
| `search` | BM25 and vector search over indexed columns |
253-
| `indexes` | Create/list/delete `sorted`, `bm25`, `vector` indexes |
254-
| `embedding-providers` | Manage embedding providers for vector indexes |
255-
| `datasource` | External sources: validate, create, list, update-config, delete |
256-
| `ingest` | Saved load definitions: create, list, cancel, resume, schedule, `runs` (list), `run` (show one) |
257-
| `context` | Shared server-side Markdown (`DATAMODEL`, glossaries) |
251+
| `search create`/`list`/`remove` | Create/list/remove `text`, `vector` indexes |
252+
| `search embeddings` | Manage embedding providers for vector indexes |
253+
| `ingest sources` | External sources: test, add, list, update-config, remove |
254+
| `ingest` | Saved load definitions: create, list, pause, resume, schedule, `logs` (list), `run` (show one) |
255+
| `databases context` | Shared server-side Markdown (`DATAMODEL`, glossaries) |
258256
| `jobs` | Background jobs (refreshes, index builds) |
259-
| `skills` | Install/inspect the bundled agent skills |
260-
| `completions` | Shell tab-completion scripts |
261-
| `upgrade` | Upgrade the CLI in place |
257+
| `manage skills` | Install/inspect the bundled agent skills |
258+
| `manage completions` | Shell tab-completion scripts |
259+
| `manage upgrade` | Upgrade the CLI in place |
262260

263261
## Configuration
264262

0 commit comments

Comments
 (0)