A Streamlit-based Snowflake client that behaves like a lightweight DBeaver-style workbench:
- Saves reusable Snowflake connection profiles
- Connects to Snowflake with a PAT token
- Browses databases, schemas, tables, and views
- Runs multi-statement SQL
- Shows result grids and query history
- Describes objects, previews table data, and fetches DDL
- Exports result sets to CSV
Snowflake's current documentation shows that a programmatic access token is used as the password when connecting with the Python connector. This app follows that model.
-
Create and activate a virtual environment.
-
Install dependencies:
pip install -r requirements.txt -
Start the app:
streamlit run app.py
-
In the sidebar, enter:
- Click
New Snowflake Connection - Save the Snowflake account identifier, user, PAT token, and optional warehouse/role/database/schema/host
- Select the saved connection from the connection dropdown
- Use the database, schema, and table selectors in the explorer
You can prefill the connection form with:
SNOWFLAKE_ACCOUNTSNOWFLAKE_USERSNOWFLAKE_WAREHOUSESNOWFLAKE_ROLESNOWFLAKE_DATABASESNOWFLAKE_SCHEMASNOWFLAKE_HOST
- PAT support depends on Snowflake account-side enablement and token issuance.
- Saved connection profiles are stored locally in
.streamlit/snowflake_connections.json. - The app intentionally keeps the UI focused on query workbench flows rather than cloning every DBeaver feature.
- The PAT input is masked in the modal. Saved profiles include the PAT in the local JSON file so the profile can reconnect without re-entry.