slmn

Slammin’ Language Model Nest – a personal toolkit of LLM-workflow tools (notebook editing, PDF reading, CI checks, GPU checks, and more), usable three ways: import the functions directly, drive them from the slmn CLI, or expose them over an optional MCP server (slmn-mcp) for any MCP-speaking client.

What’s inside

slmn is a small collection of independent tools, each in its own notebook/module:

module what it does
nbtools read, grep, and edit Jupyter notebook cells by id – no hand-rolled JSON surgery
misc read a PDF’s text; check whether a local GPU is free
remote launch and monitor background jobs on a remote host over ssh; fetch a URL; check a repo’s GitHub CI
[publish](https://drscotthawley.github.io/slmn/publish.html#publish) automate the nbdev edit->ship loop: clean/export, a reviewed commit, push, wait for CI, and (on a feature branch) merge a PR to main
dead_drop file-based async IPC – one side drops a message file, another picks it up (with a streaming variant)
cli the slmn <tool> [args...] dispatcher that exposes all of the above from the shell
mcp an optional server exposing the same tools to any MCP client (slmn-mcp)

Every tool is a plain, type-hinted function. That single definition is what the CLI turns into command-line flags and what the MCP server turns into a tool schema – so the three ways to call a tool (below) never drift apart.

Installation

slmn isn’t on PyPI or conda yet, so install it from GitHub. The default install is “lite” – just the tools and the slmn CLI:

pip install git+https://github.com/drscotthawley/slmn.git

The MCP server is optional; add the mcp extra if you want it (it pulls in fastmcp and friends):

pip install "slmn[mcp] @ git+https://github.com/drscotthawley/slmn.git"

How to use

The same tools are reachable three ways.

Import them directly:

from slmn.nbtools import grep_nb
print(grep_nb('nbs/01_nbtools.ipynb', 'def read_nb'))

From the shell, via the slmn dispatcher (run slmn with no arguments for the tool list):

slmn grep_nb nbs/01_nbtools.ipynb 'def read_nb'
slmn gpu_free

Over MCP (with the mcp extra installed), registered with any MCP-speaking client:

claude mcp add slmn -- slmn-mcp

Documentation

Full documentation is hosted on the project’s GitHub pages; the source for each page is the correspondingly-named notebook under nbs/.

For developers

slmn is built with nbdev: the notebooks under nbs/ are the source of truth, and the slmn/ package is generated from them. To hack on it, install in editable mode:

git clone https://github.com/drscotthawley/slmn.git
cd slmn
pip install -e ".[mcp]"

Edit the notebooks, then regenerate the package, run the tests, and ship – all via slmn’s own publish tool (nbdev-clean/export -> reviewed commit -> push -> wait for CI -> merge a PR to main):

slmn publish "your commit message"
from slmn.misc import gpu_free
gpu_free()
2