Databox CLI - Your agentic analytics platform in the terminal

by•
Create data sources, load data, build metrics, and automate workflows directly from your terminal. Use 90+ commands yourself, or let AI coding agents like Claude Code, Cursor, and Codex do the work with 10 ready-to-use agent skills.

Add a comment

Replies

Best

congrats on the launch tadej. to your question, i would automate a weekly pull of signup and trial data into one table, so the landing page review doesnt start with opening a bunch of dashboards

 Thanks Agshin! That’s a solid one. Push the weekly signup and trial numbers into a single dataset with dataset ingest, add a metric on top, and the review starts with one view instead of five tabs. Easy to hand to an agent on a weekly schedule too.

dataset ingest on a weekly schedule sounds right -> one view instead of five tabs is exactly the point

I tend to look at CLI tools as something that is going to be used by agents even more than humans. A few small things here matter a lot once an agent is the one calling it:

  • --json on every command, so agents never have to scrape text

  • documented exit codes, so a failed call reads as failed instead of ambiguous

  • --all on list commands so you (or your agent) don't have to write your own paging loop

  • idempotency keys on ingest so a retry can't ever double your data (this one is a real battle scar)

You can point Claude Code at it, have it push a CSV into a dataset, and if it hits a rate limit halfway it can just retry with the same idempotency key without doubling anything.

From a customer side, what matters is that it's safe to hand to an agent. Destructive commands like delete and purge need an explicit confirmation or a --force flag, and errors come back with clear messages. Teams can let an agent manage their setup without worrying it will wipe a dataset by accident.

 Exactly, Emil. One more layer on top of that: the API key acts as the user who created it, so an agent can never do more than that user’s role allows. Want an agent that only reads and loads data? Run it with a key from a user who has a more limited role, and deletes or purges are blocked by the API before anything happens.

Getting a clear added/updated/rejected count back after every push is the part I like. It makes cron jobs much easier to trust. Does it handle schema drift when a script starts sending a new field?

 Thanks Famitha! The schema is set when the dataset is created, or by the first ingest if you skip --schema, and it doesn’t change on its own after that. When records don’t match, the ingestion status shows which ones were rejected and why, so drift shows up in your cron job’s check instead of quietly ending up in your data. To add a new field on purpose, the clean path is updating the dataset setup first, then sending the new shape.

Worth flagging for anyone who tried the earlier version that 1.0 is a big jump. It now runs on the Databox V2 API, covers 91 commands instead of 18, and ships with 10 agent skills instead of 5. If you have scripts on the old version, the changelog lists every renamed command and flag.

The question I get most on calls with technical buyers is 'can we automate this?' Until now the answer was 'yes, through the API, if you write the code.' Now it's one npm install. For teams that live in the terminal or already use AI coding agents, that's a much shorter path from demo to a working setup.

 Well put, Kenneth. That gap between “yes, through the API” and a working setup is exactly what we wanted to close. Now it’s npm install -g databox-cli, add the skills, and an agent can build the first dataset during the call.

I genuinely found this useful! I like how it makes tracking data and getting meaningful insights feel a lot less complicated. Definitely something I can see myself using to make better, more informed decisions. Great find! All the best

Bringing analytics workflows into the terminal with 91 commands and ready-made agent skills is useful. Can Databox CLI automatically detect schema changes in incoming JSON data and update existing datasets without breaking historical metrics?