Ask a question of every row.
rowlab labels, extracts and rewrites tabular data with AI. Add a CSV, JSON or Parquet file, write the question, try it on twenty rows, then run it on a million. Open source, runs on your laptop, or hosted when you'd rather not run it.
uvx rowlabOne process, one SQLite file, one data folder. Open localhost:8000, add a file, and bring your own OpenRouter key.
Try before you pay
See the rows, calls and cost before a run. Run two models on the same rows and compare them, against your own labels if you have any. Cheap decision models for yes/no questions, LLMs for the rest.
Nothing changes in place
Every run makes a new dataset with the answers added, named after where it came from. Keep the tree, export any branch as CSV, JSONL or Parquet, to a file or S3.
Built for people and agents alike
A fast web app, a plain API, and an MCP server with skills that teach agents to label well. The same work, whichever way you do it.
What a run looks like
Pick the rows with SQL, write the question from the row's own columns, choose the answer type, and a model.
SELECT * FROM data WHERE stars <= 2 LIMIT 20
Is this review about delivery?
Review of a kitchen product: {{review}}
yes / no · typesafe/jev-1.14 · 20 calls · $0.00Read the answers next to the rows. Fix the prompt. Then take the LIMIT off.
Who it's for
- Analysts with a column to fill in.
- Teams making training data.
- Researchers coding open-ended answers.
- Ops triaging tickets and reviews.
Answer types
Classify
Yes/no, pick one, pick any, or a score on a scale. Any model, each answer with its probability.
Extract
Typed fields pulled out of the row: text, numbers, dates, lists. Empty when the text doesn't say.
Write
New text from the row: a summary, a translation, a rewrite.