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.git

To 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.

  1. Install Ollama: https://ollama.com/download (it installs and runs as a background service).

  2. Pull a model – qwen2.5-coder is recommended and, if present, is boopiter’s default:

    ollama pull qwen2.5-coder
  3. That’s it – when boopiter starts it detects every model ollama list knows about and populates the model dropdown in the top bar, preferring qwen2.5-coder if 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

screenshot

Known Issues / Roadmap

Rough priority order, top = most impactful.