boopiter
boop-iter notebook LLM workflow. cells are boops, iter-atively keeping the human in the loop
This is a semi-vibe-coded clone of, and homage to, the amazing solveit system. boopiter is intended primarily for education purposes: learning the basic operations so that I can easily work with local execution and develop my own extensions and features as my research work expands.
What’s inside
boopiter is organized as a handful of small nbdev modules, each in its own notebook:
| module | what it does |
|---|---|
| core | server startup – launch/relaunch the app on a port, precompile Tailwind |
| notebook | the in-memory notebook data model: a typed Cell, the Notebook, and the running nb |
| kernel | the code-execution engine – run a cell’s source and stream its output |
| serialize | the .ipynb file boundary – save the live notebook and load one back |
| llms | talking to a local LLM via Ollama: tool selection, model listing, streaming replies |
| cells | rendering + HTTP routes + app orchestration – the FastHTML UI that ties it together |
| plugins | the top-bar plugin protocol, plus a system-monitor plugin |
Installation
boopiter isn’t on PyPI or conda; install it from GitHub:
pip install git+https://github.com/drscotthawley/boopiter.gitTo hack on it, clone and install in editable mode – it’s an nbdev project, so the notebooks under nbs/ are the source and the boopiter/ package is generated from them:
git clone https://github.com/drscotthawley/boopiter.git
cd boopiter
pip install -e .How to use
Local LLM (Ollama)
Prompt cells are answered by a local model via Ollama.
Install Ollama: https://ollama.com/download (it installs and runs as a background service).
Pull a model –
qwen2.5-coderis recommended and, if present, is boopiter’s default:ollama pull qwen2.5-coderThat’s it – when boopiter starts it detects every model
ollama listknows about and populates the model dropdown in the top bar, preferringqwen2.5-coderif it’s installed.
Launching boopiter
Launch the server:
boopiter [--port 8000]If any other boopiter server is running, it will be killed in favor of the new one.
Point your browser at that URL.
You can also aunch and pre-load a notebook:
boopiter nbs/00_core.ipynb
Screenshot

Known Issues / Roadmap
Rough priority order, top = most impactful.