Type English, get pandas: a Jupyter extension that writes your boilerplate
A proof-of-concept nbextension that turns plain-English queries into Python code snippets inside Jupyter Notebook.

What it does
jupyter-text2code adds a terminal-style panel to Jupyter Notebook where you type requests like “get followers count from twitter” and it injects matching Python code into your cell. It covers common pandas operations and pulls ready-made snippets from the awesome-notebooks collection for popular integrations (Twitter, Instagram, etc.). Under the hood it uses sentence-transformer embeddings (paraphrase-MiniLM-L6-v2) for intent matching and a small NER pipeline to fill in variables.
The interesting bit
The project is deliberately not a GPT wrapper. Instead it uses a staged pipeline — intent detection, named-entity recognition, then template filling — which keeps inference local and deterministic. The authors evaluated several models before settling on the MiniLM sentence encoder, and the whole thing runs CPU-only if you set the right environment variable.
Key highlights
- Supports Ubuntu and macOS; Windows is explicitly not supported yet
- CPU and GPU Docker images published (1.51 GB and 2.56 GB respectively)
- Extensible template system: add intents by editing
ner_templates, retraining, and reinstalling - Ships with a sample notebook (
notebooks/ctds.ipynb) for testing - TODO list includes Ollama/local-LLM support and speech-to-code
Caveats
- Still a proof-of-concept; the README warns you to type “help” to see the limited set of currently supported commands
- Adding new intents requires manual code changes in the server extension, not just new templates
- No Windows support; installation involves
nbextensionplumbing that feels increasingly legacy as JupyterLab takes over
Verdict
Worth a look if you maintain a data-science team that lives in classic Jupyter Notebook and repeats the same pandas incantations. Skip it if you already use JupyterLab, Copilot, or any modern LLM chat interface — this predates them and shows its age.