Live deployed build: https://pretzelai.github.io
Pretzel is an open-source, offline browser-based tool for fast and intuitive data exploration and visualization. It can handle large data files, runs locally in your browser, and requires no backend setup. Pretzel makes it easy to manipulate data via visual chained data transform blocks. It's also reactive - changing a transform block in the chain automatically updates all transform blocks, and charts that follow.
- ๐ Blazing-fast performance with WebAssembly-based DuckDB and PRQL
- ๐ Intuitive data exploration with a visual, top-down pipeline of data transformations and visualizations
- ๐ง AI-powered transformation block to help with fast data manipulation
- ๐ Privacy-first design: run Pretzel AI locally or host it yourself for full control over your data
- ๐ Upcoming features: Local LLM support, API calls, in-browser Python support with Pyodide, save and share workflows securely and canvas-based table rendering
- Demo video
- Getting started
- Optional Configuration
- Implemented Transformation Blocks
- Known Bugs
- Contact
Pretzel.mp4
The easiest way to use Pretzel is to visit https://pretzelai.github.io
Since Pretzel doesn't have a backend, you can easily install it as a Chrome app and it will work even without internet (for those long flights!)
-
Visit https://pretzelai.github.io in Chrome
-
Click the install app icon
![pretzel_chrome_install](https://private-user-images.githubusercontent.com/121360087/313066187-c6276699-5109-4e59-8bf5-2858c51cb4c3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ1MzUxNjUsIm5iZiI6MTcyNDUzNDg2NSwicGF0aCI6Ii8xMjEzNjAwODcvMzEzMDY2MTg3LWM2Mjc2Njk5LTUxMDktNGU1OS04YmY1LTI4NThjNTFjYjRjMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODI0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyNFQyMTI3NDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04Njg4YTQwMGU1MDI5NzNlNGE0YjMzMTMzMjJjZjM1YTlmNjcwMjg2YmE5MmZmODI3YThkODIyZTE4YzNmYWE5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.nBXWc12QFMD36MO6x3Mxtj90JkkNn4xYy4wqef3wNDk)
- Now you can launch Pretzel as a standalone app. It will also work offline, though it may error if you try to use some internet feature (like the AI Block). Just close it and open it again to fix it.
![pretzel_app_icon](https://private-user-images.githubusercontent.com/121360087/313066562-cc13e552-d93a-4990-be22-1f6b5d906b15.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ1MzUxNjUsIm5iZiI6MTcyNDUzNDg2NSwicGF0aCI6Ii8xMjEzNjAwODcvMzEzMDY2NTYyLWNjMTNlNTUyLWQ5M2EtNDk5MC1iZTIyLTFmNmI1ZDkwNmIxNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODI0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyNFQyMTI3NDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00NzllMDgyNzcyY2MyN2U1NTFmYzZhNzYxMDU3N2ZmODFiYjgxMGQ5OGUwZGM1NmE1MmM5MjU4ODljOTBiNzU2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.JLBtic4y8JR0Var7P9z7qq6Gr5nT1CCnijyqXNneNHo)
To run Pretzel locally, follow these steps:
-
Clone the repository:
git clone https://github.com/pretzelai/pretzelai.git
-
Install dependencies:
cd pretzelai npm install
-
Start the development server:
npm run start
-
Open your browser and navigate to
http://localhost:3000
To host Pretzel, follow these steps (it's just a static website!):
- Build the app
npm run build
- Upload the contents of the
dist
folder to your hosting. This is what you can find live at https://pretzelai.github.io
- Bug report box: Update
/src/lib/config.ts
with your PostHog config to let users report bugs directly on the website - AI Endpoint: Deploy a cloud function to provide an AI endpoint for users without an OpenAI API key. Check the
cloud
folder for instructions.
- Upload: accepts CSV / Excel (XLSX) files
- Filter: string/number/date filtering including nested filters
- Ask AI: connects to OpenAI to transform user command to SQL
- Pivot: to create a pivot table (you can also go group-by using this - only use the
Rows
andValues
fields) - Sort: sorts ascending or descending on multiple columns
- Chart: supports line (including multi-line) charts, bar charts (grouped and stacked) and scatter plot
- Create column: make a new column with basic math or use PRQL functions
- Remove columns: easily add/remove columns with visual toggles
- Table: add a table in the middle of your workflow to visualize data in a intermediate step
- Download: export your transformed data in CSV
- Dates are sometimes parsed incorrectly - existing GH issue here
- Table panel is slow for large datasets. We're planning on moving to a canvas-based table.
- [Rare] Charts axes can sometimes not be ordered correctly
Please report any bugs you find in GitHub issues.
You can email us at founders [at] withpretzel [dot] com.
We also read all the feedback and bugs you report at the top left of https://pretzelai.github.io