Skip to main content
Vibe Widget

Vibe Widget

Make analysis interactive.

Python Version License Provider PyPI - Version PyPI - Downloads

Vibe Widget generates interactive notebook interfaces from plain English. Explore data with sliders, linked views, filters, and custom controls without building a front end.

Checkout the docs!

What you can do

  • Create widgets from a prompt
    Describe the interface you want and get a working widget immediately.

  • Iterate safely
    Revise in plain language, use built-in audits, and (optionally) require approval before any generated code runs.

  • Share reusable widgets
    Commit generated widgets to git, or save them as .vw bundles and load them elsewhere. Loading requires approval by default.

  • Run where your data lives
    Works in Jupyter/JupyterLab, Colab, VS Code notebooks, marimo, and more (via AnyWidget + React).

Quickstart

pip install vibe-widget

Put any one of these in a .env file next to your notebook:

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
OPENROUTER_API_KEY=sk-or-...
import pandas as pd
import vibe_widget as vw

df = pd.read_csv("sales.csv")

widget = vw.create("scatter plot with brush selection and a linked histogram", df)
widget()

That is the whole setup. Vibe Widget finds the .env file, picks the provider that matches the key you supplied, and chooses a default model for it. Exporting the variable in your shell works the same way and takes precedence over the file.

Any OpenAI-compatible endpoint

The key you set decides the endpoint. Point base_url somewhere else to override it, including at a local server.

vw.config(base_url="http://localhost:11434/v1", model="qwen2.5-coder")
vw.config(model="claude-sonnet-5")   # keeps the provider your key selected

VIBE_API_KEY with VIBE_BASE_URL covers any endpoint that has no dedicated variable, such as vLLM or Azure OpenAI. vw.config() prints the provider, host, model and where the key came from, never the key itself.

Data privacy

Prompts include a summary of the data you pass in: shape, column names, dtypes, null counts, cardinality, and numeric ranges. By default the summary also carries the first 3 rows so the model can see the shape of real values.

vw.config(data_privacy="schema")   # send no cell values at all
vw.config(sample_rows=1)           # or send fewer rows

Share widgets with git

Generated widgets are written to .vibewidget/widgets/ as one .js file plus a .json sidecar holding the prompt, model, and input signature. Filenames are deterministic, so regenerating the same widget rewrites the same file instead of piling up copies. Both files are meant to be committed. A .vibewidget/.gitignore is created for you and excludes the derived caches (bundles/, packages/, sandbox/, audits/).

A teammate who clones the repo gets the widget without spending a model call:

widget = vw.load(".vibewidget/widgets/sales_chart__a1b2c3d4e5.js")

For sharing outside a repo, widget.save("sales_chart.vw") writes a single portable bundle, and widget.save(path, include_inputs=True) embeds the current input values with it.

Acknowledgements

This repo was originally created at the Sundai Weird Data Hack. We thank Angela for her feedback and suggestions on early versions!

Special thanks to Trevor Manz and the Anywidget project for providing the specification and foundation that made this project possible. Be sure to check out and star AnyWidget!

Release files for vibe-widget 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vibe-widget 0.3.0
File Size Uploaded
vibe_widget-0.3.0.tar.gz 14.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for vibe-widget 0.3.0
File Interpreter ABI Platform
vibe_widget-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.8 MB

Release files / vibe_widget-0.3.0.tar.gz

Download URL vibe_widget-0.3.0.tar.gz
Size 14.7 MB
Tags Source
SHA-256 checksum
How to use checksums
ba590ef79b4f61177ad79ab8f907038eef3e7c61ad436cb58731eeda569b2b1b
BLAKE2b-256 checksum
How to use checksums
2f5c94b5e4a39a309dda911d3e00506d358d1f85ffc84b95cae22c477a790ddd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / vibe_widget-0.3.0-py3-none-any.whl

Download URL vibe_widget-0.3.0-py3-none-any.whl
Size 1.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
2ee8b5bc0c4a6fce2f327d0becd060502661dd49629914d735c36ee2de5c32f8
BLAKE2b-256 checksum
How to use checksums
8435e4013d8db2768f80c9f124d2942f0d2a2d65b848ea51b60a5cc8d0fa012a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page