Open Wrangler
Open Wrangler is a visual dataframe editor for VS Code and editors based on it. Open files or live notebook data,
make changes visually, and keep the generated Python or R code.

Inspect missing values and distributions beside the rows you are exploring.
Select a column to see its profile, then click a category or histogram bin to filter the view. Search for columns,
jump to a row with Ctrl+G, find cells with Ctrl+F, combine filters, order sort keys, and copy selections. The dataset summary shows empty
fields, unusual values and repeated records before you decide what to change.
Install
To install a downloaded VSIX, use Views and More Actions > Install from VSIX... in the Extensions view. The
changelog lists the changes in each release.
What you can do
- Clean rows: drop missing rows or duplicates, or flag repeated records with Mark duplicates.
- Fill gaps: use a fixed value, a column or group statistic, a fallback column, forward or backward fill, or
interpolation.
- Organize columns: select, drop, rename, duplicate, and convert column types.
- Clean text and categories: trim spaces, replace text, change case, split, extract with regular expressions, and
encode categories. Press
Ctrl+H to replace Find matches in one cell or across the grid.
- Calculate values: write formulas, rank with ties, scale and round numbers, and format dates.
- Create labels and flags: build Text or Boolean results with Conditional column.
- Reshape and summarize: pivot between long and wide tables, or group rows and aggregate values.
- Combine files: add columns from another CSV, TSV, Parquet or JSON Lines file by matching keys with Look up
columns.
Transform by Example learns a rule from your input and output examples and previews it on other rows. Custom
Code runs your own code in the dataframe's engine. Operations and fill methods vary by engine and column type; see
the operation support guide.

Search or browse cleaning operations, then configure the selected step.
From data to code
- Open a source. Save the four-row sample CSV
in your workspace and choose Open in Open Wrangler from Explorer, an editor tab, or the editor toolbar. TSV,
Parquet, JSONL/NDJSON, and Excel files open the same way.
- Preview a change. Choose Add step, then Drop missing rows on sales, then Preview changes. Paris
disappears from the draft, leaving Milan, Rome, and Berlin. Review the changed values and generated code, then
choose Apply step or Discard.
- Keep the result and code. Copy the code, save it with Open Wrangler: Export Generated Script, or insert it
into the notebook or R document that opened the data. Cleaned data exports to a separate CSV or Parquet file, so
the source is never overwritten.
Parquet and Excel files open in Open Wrangler by default. To use another editor for a file type, choose Reopen Editor
With..., then Configure default editor, or add a workbench.editorAssociations entry such as
"*.parquet": "default".
Files open in Editing unless openWrangler.fileStartMode is set to viewing. The engine picker in the toolbar switches
a file between Pandas, Polars, DuckDB and the R libraries in the same tab and replays your steps. If a step can't run with
the new engine, Open Wrangler asks before leaving it behind.

Preview a new Polars formula column and its generated code before applying it.
Viewing filters and sorts change only what you see. Add a Filter rows or Sort rows step to make them part of
the cleaning plan.
Review and revise your steps
Choose an applied step in Cleaning Steps to inspect its changes, then choose Current view to return. You can
edit or delete earlier steps, or use Undo and Redo. Later steps replay, so the result and code follow the
updated plan.
Open Wrangler: Open Another File with This Plan repeats the confirmed steps on another file with the same columns,
in any order. If a column was renamed, Open Wrangler asks which column replaces it. The new tab stays a preview until
you choose Keep plan, and neither file changes. Plans with Custom Code or an unfinished draft can't be copied.

Inspect an applied step and its code without changing the confirmed data or viewing filters.
Use notebook data
Run the cell that creates your dataframe, choose Open in Open Wrangler from the notebook toolbar, and pick the
variable. Dataframe outputs also show an inline preview with an Open in Open Wrangler button, and the side bar's
Data Sources view lists the Python and R dataframes it finds.

A notebook output previews the dataframe inline and opens it in the full workbench.
Pandas and Polars dataframes support the same viewing and cleaning workflow as files, and the generated code uses the
same library. The code defines a cleaning function: load the next input with the same engine and columns, then call
result = clean_data(next_frame). DuckDB plans with Custom Code also take the input's connection,
clean_data(next_frame, connection=con), and their Custom Code must return a result derived from df.
- DuckDB relations support native cleaning, generated code and export, except Custom Code. Opening one captures
its full result and asks for its connection; keep that connection open, and commit or roll back any open
transaction before cleaning or exporting.
- Polars LazyFrames and lazy Custom Code results are collected in full to keep row identities stable, so they must
fit in memory.
- PySpark DataFrames from an existing local batch session support viewing, filters, sorts and profiles. Open
Wrangler does not install or configure Spark; streaming dataframes and remote clusters are unsupported.
The capture requirements
list the memory and storage cost of each capture.
Work with R
Open Wrangler works in R directly, with no conversion through Python. Base data.frame, tibble and data.table
objects in IRkernel notebooks are supported in desktop VS Code on Linux, macOS and Windows. Preview steps, inspect the
history, and copy, save or insert the generated R.
Choose R · base, R · dplyr, R · data.table or R · collapse for cleaning and generated code, either in
the engine picker or with openWrangler.defaultRLibrary. The package must be installed in the R environment that owns the dataframe. Custom
Code can call any installed package and return a base data.frame, tibble or data.table.

Preview grouped R results alongside the cleaning history and generated R code.
R files (Preview). Choose R in the engine picker, or set openWrangler.defaultBackend to r, to open CSV, TSV,
Parquet, JSONL/NDJSON or Excel files with Rscript alone. Auto also uses R when no compatible Python engine is
available. R loads the whole file into memory. Parquet needs arrow and nanoparquet (and clock for exact
timestamps), and Excel needs readxl. If a package is missing, the file view offers Install required packages.
R shows nanosecond and time-zone-free Parquet timestamps exactly, and displays homogeneous list columns and flat
records. Use Explode List or Extract Struct Fields to turn nested values into exportable columns. The
native R support guide
lists the operations each library supports, including
timestamp limits.
R terminal sessions on Linux and .R, .Rmd and .qmd documents on Linux and macOS are Preview. Cursor support is
experimental.
Supported dataframes
| Dataframe or source |
View |
Cleaning and generated code |
Data export |
| Pandas files and live dataframes |
Yes |
Pandas Python |
CSV / Parquet |
| Polars files and live dataframes |
Yes |
Polars Python |
CSV / Parquet |
| DuckDB CSV / TSV / Parquet / JSONL (experimental) |
Yes |
Supported operations, DuckDB Python |
CSV / Parquet |
| DuckDB database tables and views (experimental) |
Yes |
Unavailable |
Unavailable |
| DuckDB notebook relations |
Yes |
Supported operations, DuckDB Python |
CSV / Parquet |
| Local PySpark Classic / Connect notebooks |
Bounded |
Unavailable |
Unavailable |
| R base data.frame, tibble, data.table |
Yes |
Supported operations, native R |
CSV / Parquet, with limits |
Open Wrangler: Open DuckDB Table browses the tables and views of a local database. A view runs once when opened,
and its viewer shows a fixed copy of the rows. Close the viewers before writing to the database.
In the latest local performance comparison,
Polars had the shortest median times for opening the tested CSV files and showing column profiles. The report also
covers native R and the limits of its six-column synthetic fixtures.
Compatibility and limits
- Use VS Code 1.106 or newer. Opening data, running code and exporting require Workspace Trust, so Open Wrangler stays
inactive in Restricted Mode and Parquet and Excel files open in VS Code's own editor.
- Python workflows need Python 3.10 to 3.14. Open Wrangler names any missing packages before offering to install
them.
- Windows Python notebooks need CPython 3.10.15, 3.11.10, 3.12.4 or a later patch, or any supported 3.13 or 3.14
release, and the default per-user temporary directory.
- Other VS Code-based desktop editors have limited coverage. Browser-hosted editors are unsupported, and Remote SSH is
not yet covered.
See supported environments,
file-reader and export limits,
and notebook runtime recovery.
The reference lists commands, settings, and
operation parameters.
Support and project
Browse the product gallery, the
accessibility and keyboard guide, or the
product roadmap. To contribute, see
CONTRIBUTING.md. Report bugs in
GitHub Issues, and follow
SECURITY.md for vulnerability reports.
Open Wrangler grew out of an appreciation for Microsoft Data Wrangler
and a desire to extend the idea as an open-source project. It was built independently, supports more dataframe
engines natively, and is not affiliated with Microsoft. Licensed under the
MIT License.