Polaris Studio is a desktop app for working with data. You build a pipeline by drawing a graph: each step is a node, lines between them show the flow. Load a file, filter rows, join two tables, draw a chart. The app runs the graph and shows you the result in a spreadsheet.
There is also a built-in AI assistant. Tell it what you want in plain English, and it suggests the nodes and connections for you. You approve the plan before anything changes. The AI is optional. Everything else works without it.
Your data stays on your computer. There are no accounts, no telemetry, and no required cloud services. The only network call the app makes is to the AI provider, and only if you turn the AI on and add your own API key.
- Load CSV, Excel, Parquet, and JSON files. Paste from the clipboard.
- Transform data with visual nodes: filter, sort, rename, cast, fill, dedupe, parse dates, sample.
- Reshape with pivot, unpivot, group-by, and rolling windows.
- Join tables with inner, left, right, full, and anti joins.
- Make bar, line, scatter, histogram, box, and heatmap charts. (Experimental, in proress)
- Export the result back to CSV, Excel, Parquet, or JSON.
- Edit results in a live spreadsheet with sorting, frozen rows, and column statistics.
- Ask the AI to build or change the pipeline, then review each change before it runs.
- Save your work as a
.polarisfile and open it again later in the same state.
Install with pip and run:
git clone https://github.com/programmersd21/polaris_studio
cd polaris_studio
pip install -r requirements.txt
python -m polaris_studioIf you prefer an editable install (recommended for development):
pip install -e .
polaris-studioRequirements: Python 3.11 or newer. Windows, macOS, and Linux are all supported.
The first launch on Windows can be slow while Windows Defender scans the bundled Polars and PyArrow native libraries. This only happens once.
When you open Polaris Studio, a short intro plays: the app icon and the name fade in centered on screen, hold for a moment, then settle into the top toolbar. You can turn this intro off in Settings under Appearance if you prefer to start straight at the workspace.
The full documentation is in the docs/ folder.
- Installation covers Windows, macOS, and Linux in detail.
- 10-minute quick tour shows the main features in a few minutes.
- Your first pipeline walks you through loading a file, filtering it, and making a chart.
- Interface tour explains every panel and button.
- Keyboard shortcuts is a complete shortcut reference.
- Core concepts explains nodes, connections, caching, and the difference between data and metadata.
- The graph canvas covers pan, zoom, selection, copying, and layout.
- The panels describes every panel in the app.
- The AI assistant explains how the chat, preview cards, and approvals work.
- The spreadsheet covers the live grid, formula bar, and column stats.
- Charts covers the six chart types and how to export them.
- Command palette covers the keyboard-first launcher (Ctrl+P).
- Saving and preferences covers
.polarisfiles, settings, and AI keys.
- Node reference lists every node type, its parameters, and an example.
- Developer setup covers the repo, dev install, and IDE config.
- Testing covers pytest, mypy, and ruff.
- Adding a new node type is the most common kind of contribution, and walks you through it end to end.
- API reference lists the public classes and methods.
- Architecture overview describes the layers and how data flows through them.
- Graph engine covers the DAG, caching, and dirty propagation.
- AI pipeline covers the schema-validated commands and error recovery.
- State management covers AppState, Workspace, and the undo/redo stack.
- IPC layer covers the multi-process compute and Arrow transport.
- Design system covers typography, palette, and motion.
- Common issues covers fonts, AI keys, and slow startup.
- FAQ is a short list of frequent questions.
| Part | What it is | Why |
|---|---|---|
| Engine | Polars on Apache Arrow | Fast columnar compute, predictable memory |
| Graph editor | PySide6 QGraphicsView |
Hardware-accelerated, custom-rendered |
| Spreadsheet | Qt QAbstractTableModel |
Virtualised rows, smooth scroll past a million rows |
| AI | Google Gemini (via official SDK) | Streaming, structured output, your own key |
| Compute | Multi-process worker | Heavy jobs do not block the UI |
| Transport | Arrow IPC + JSON | Zero-copy DataFrame handoff between processes |
polaris_studio/
βββ src/polaris_studio/
β βββ core/ # Headless engine: DAG, executor, node registry, profiler
β βββ ipc/ # Multi-process compute: protocol + worker
β βββ io/ # File handlers: CSV, Parquet, XLSX, clipboard
β βββ agent/ # AI: schemas, interpreter, chat session, backend
β βββ state/ # AppState, Workspace (multi-tab), HistoryStack
β βββ ui/ # PySide6 widgets, panels, dialogs, graph view
β βββ main.py # CLI entry point
β βββ __main__.py # GUI entry point
βββ assets/theme.qss # Global stylesheet
βββ fonts/ # Bundled Inter, Outfit, Instrument Serif, JetBrains Mono
βββ tests/ # pytest tests
βββ docs/ # The full documentation
pip install -e ".[dev]"
pytest # run the test suite
mypy . # type check
ruff check src/ # lintSee Developer setup for the full guide.
Bug reports, feature requests, and pull requests are welcome. Read CONTRIBUTING.md for the workflow.
MIT. Free to use, modify, and distribute.
