ATARS in your terminal
pip install atarsRead this first. The terminal edition is deliberately smaller than the ATARS desktop app. It shares the same analysis engine, so the numbers agree — but it has no AI analyst, no Advanced Statistics, 17 chart types instead of 19, and no Word, PowerPoint or notebook exports. If you are on Windows and just want to analyse data, install the desktop app instead. This page is for people working in a terminal, on a server, over SSH — or on macOS and Linux, where the desktop build is not ready yet.
On this page
1 · Install 2 · Three ways to run it 3 · The terminal window 4 · Charts 5 · What it tells you about a file 6 · Reports 7 · Command reference 8 · Recipes & reproducible pipelines 9 · From Python 10 · What it does not have 11 · Privacy & licence1 · Install
One command. No compiler, no account, nothing to configure:
pip install atarsPython 3.11 or newer. It pulls pandas, NumPy, scikit-learn, statsmodels, DuckDB, PyArrow, Matplotlib, ReportLab and Textual — all wheels, so there is nothing to build. Upgrade later with pip install --upgrade atars.
Prefer an isolated install? pipx install atars works too, and keeps the command on your PATH without touching your system Python.
2 · Three ways to run it
The same engine, reached three ways, depending on what you are doing.
- A full-screen window — type
atarswith no arguments and you get a terminal UI with clickable tabs, charts and buttons. - A line-based shell —
atars shellopens a prompt that keeps one file loaded across commands, with tab completion for commands and column names, and history on the arrow keys. - One-shot commands —
atars quality sales.csvand friends, for scripts, pipes and CI.
atars -f sales.csv starts with that file already loaded, skipping the picker. Because the shell opens a file once, the engine's result cache stays warm for the whole session — the second command on a dataset is a lookup, not a recompute.
3 · The terminal window
19 tabs in five groups, in the same left-to-right order the desktop app uses — so if you know the app, you know the window:
- Understand — Overview · Data · Quality · Metrics
- Prepare — Clean · Prep · Combine · Features · SQL
- Explore — Charts · Stats · Pivot · Trends · Business
- Model — Models · Explain · Drift · Forecast · Discover
- Report — Report
Opening a file gives you three routes, because a terminal cannot receive a dropped file: your operating system's own file dialog, a folder tree filtered to readable files, or your recent files. A workbook with more than one sheet asks which sheet, rather than silently analysing whichever tab happened to be first.
Prep Studio builds a transform recipe step by step from 22 operations — add steps, undo, apply, save the result, or print the pandas that reproduces it without ATARS installed. Combine joins a second file, and Use as data makes the joined table the one every other tab works on.
Every result table has a Save table button directly underneath it, writing a CSV next to the file you opened. Click a column heading to sort. A table stops at 500 rows and says so on its last line, rather than letting you read a cut as the whole file. Every pane scrolls, so a small terminal clips nothing. Analysis runs on a worker thread, so the window keeps responding while AutoML works.
Single-key controls: o open · e export CSV · f5 refresh · q quit · 1–5 jump to a group. A focused text box takes its own typing first, so q in the SQL box is a q.
4 · Charts
17 chart types drawn in the terminal, grouped by what they are for:
- Distribution — histogram, ECDF, box, strip
- Relationship — line, area, scatter, density heatmap, correlation
- Comparison — bar, horizontal bar, grouped, stacked, share, funnel, waterfall, pivot heatmap, count
Each chart declares what it needs, so the pickers it does not use are hidden rather than silently ignored. Every chart that groups by a category also takes an aggregation (sum, mean, count, median, min, max), a top-N cut, a sort order and optional value labels — and it says how many categories the cut left out instead of dropping them quietly.
Treemap, sunburst, violin, bubble and density contour are not here. A terminal cell has no sub-cell density and no size channel, so those cannot be drawn honestly; the desktop app draws them properly.
5 · What it tells you about a file
Opening a file runs fourteen checks over the table and ranks what comes back, most consequential first: missing values, duplicates, constant and identifier columns, numbers stored as text, skew, outliers, correlations, concentration, gaps between groups, trend over time, change points, what drives the main measure, how predictable it is, and relationships that reverse inside groups.
Every finding carries the number it is about and the evidence it came from, and no single check can crowd out the rest. Nothing calls a model. Every sentence is arithmetic over the table, which is exactly why each claim can be checked.
6 · Reports
Reports export as Markdown, HTML and PDF, carrying the data's own findings plus whatever you chose to keep. What reaches the document goes through the same two doors the desktop app uses:
- A fixed answer for this data files itself — cleaning, dataset understanding, features, moving averages, decomposition, change points, cohorts, growth, concentration, segments, drift. There is nothing to choose between, so nothing is asked.
- A value you went hunting for waits for Add to report — statistical tests, models, explanations, pivots, SQL and forecasts. You run those ten times to find the one worth stating; the other nine are not findings.
Everything arrives as a table, not as a sentence about a table. The document also prints the column profile, descriptive statistics, the strongest correlations, the category breakdown, missing values and outliers — so every figure it states can be checked inside the document itself, without the app. A chart cannot be drawn in Markdown, so each kept chart carries the numbers it was drawn from, with a line or two saying what they show. Where a long table is cut, the report says how many rows there really were.
7 · Command reference
Every command works on its own, and every one takes --json.
atars profile FILE | shape, types, summary statistics |
atars quality FILE | score, missing values, outliers |
atars clean FILE -o out.csv | cleaning studio; reports every change |
atars sql FILE -q "SELECT …" | DuckDB over the file, as table data |
atars stats FILE | correlation, hypothesis tests, A/B |
atars automl FILE --target T | ranked models, with --importance |
atars forecast FILE --date D --value V | project a series forward |
atars drift FILE --reference R | compare against a baseline file |
atars cluster FILE | k-means; picks k when you don't say |
atars anomaly FILE | isolation forest |
atars business FILE --kind pareto | growth, pareto or segment |
atars insights FILE | rule-based findings |
atars chart FILE --y COL -o c.png | line, bar, scatter or histogram |
atars report FILE --format pdf | a full report: markdown, html or pdf |
atars merge A B --on KEY | join two files |
atars recipe run R.json FILE | a saved, repeatable transform |
Exit codes mean something — 0 fine, 2 you asked for something impossible, 3 that feature is in the desktop app — so these compose in a shell script:
atars quality sales.csv --json | jq .scoreatars --help returns in about 9 ms: no command imports pandas until it actually runs. Thread limits are applied before NumPy loads, and n_jobs comes from the real core count, never -1.
8 · Recipes & reproducible pipelines
A recipe is a JSON list of transform steps that runs the same way every time.
atars recipe opsatars recipe run clean.json sales.csv -o out.csvatars recipe code clean.jsonrecipe code prints runnable pandas with no ATARS import at all, so a pipeline you build here keeps working for a colleague who does not have this installed.
9 · From Python
The command line is a printer over a small Python API, so anything one can do, the other can do too.
import atars
ds = atars.load("sales.csv")
ds.quality_report()
frame, audit = ds.clean()
ds.automl(target="revenue")
ds.forecast("month", "revenue", 6)
ds.pareto("product", "revenue")
ds.merge("february.csv", on="product")
ds.report(fmt="pdf", out_dir="reports")
10 · What it does not have
Stated plainly, because a limited edition that hides its limits wastes your afternoon:
- No AI analyst. Aryabhata, natural-language questions and narrated reports are desktop-app features. The wheel ships a stub where the AI package would be, and a test fails the build if a provider import or a credential read ever reaches the published artifact.
- No Advanced Statistics module.
- 17 chart types, not 19 — treemap, sunburst, violin, bubble and density contour need sub-cell rendering a terminal does not have.
- No Word, PowerPoint, Excel or Jupyter-notebook export. Markdown, HTML, PDF and CSV only.
- No lagged correlation or seasonality strength, no Benford tests, no group-distribution tests, no row-level anomaly explanations, no batch folders.
- No database or warehouse connections. Files only — CSV, Excel, JSON, Parquet, Feather, TSV. The desktop app connects to SQLite, MySQL, PostgreSQL, Redshift, Snowflake and BigQuery.
Everything that is here has an equivalent in the desktop app, on purpose: the free edition should never be ahead of the paid product at finding something.
11 · Privacy & licence
It runs entirely on your machine. There is no account, no telemetry and no upload — with no AI package in the wheel, there is no credential to read and nowhere for a request to go. See the Privacy Policy and the Licence.
View atars on PyPI ⬇ Get the full desktop app 🛍️ Microsoft Store