Code Contextualizer — point it at any repo (no upload) and get a narrated architecture walkthrough, a handbook, and hover-to-explain in your editor. Runs locally on your own key.
Project description
oneport-context
Code Contextualizer — NotebookLM for your codebase, that never leaves your machine.
Point it at any repo (however large — no upload) and it builds a hierarchical understanding locally, then turns it into a narrated architecture walkthrough, a narrated MP4 video, a PDF handbook, a chat that knows your code, and hover-to-explain in your editor. Runs on your own model key (Google Gemini free tier) or fully local — your code never leaves the machine.
Try it in 60 seconds (no setup)
pip install oneport-context
oneport-context demo
Opens a narrated, animated walkthrough of a bundled sample repo in your browser — no API key needed.
Use it on your own repo
export GEMINI_API_KEY=… # free key at aistudio.google.com/apikey
oneport-context index ./my-repo # build the understanding (cached in .context/)
oneport-context show ./my-repo # narrated walkthrough in the browser
oneport-context video ./my-repo # narrated MP4 (>= 8 min) -> needs [video]
oneport-context pdf ./my-repo # PDF handbook, opens in browser -> needs [pdf]
oneport-context chat ./my-repo # ask questions in the terminal
oneport-context lsp ./my-repo # editor hover-to-explain -> needs [lsp]
Without a key it still works in heuristic mode (structure + docstrings) — free and offline, just less prose.
Commands
| Command | What it does | Extra |
|---|---|---|
demo |
Zero-config narrated walkthrough of a bundled repo | — |
index ./repo |
Build the hierarchical understanding (cached) | — |
show ./repo |
Localhost narrated architecture walkthrough | — |
video ./repo |
Narrated MP4 (--minutes, --voice) |
[video] |
pdf ./repo |
Styled PDF handbook, served in the browser | [pdf] |
chat ./repo |
Terminal Q&A grounded in your code | — |
lsp ./repo |
Hover-to-explain Language Server (VS Code / Neovim / JetBrains) | [lsp] |
Install with the features you want
pip install 'oneport-context[video,pdf,lsp]'
[video]— pillow, moviepy (ffmpeg), gTTS voice[pdf]— reportlab[lsp]— pygls
Why CLI, not upload
Big repos don't fit an upload box. The CLI walks the tree locally and builds a
file -> module -> repo summary (module summaries are batched, so a large repo
costs only a handful of model calls). Everything is cached in .context/; your code
never leaves the machine.
Notes
video/pdf/chatproduce their best output withGEMINI_API_KEYset; heuristic mode works without it.- Prefer local/air-gapped? Set
ONEPORT_MODE=localand run against Ollama. - Have an Anthropic key? Set
ANTHROPIC_API_KEYand it takes priority automatically.
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oneport_context-0.1.0.tar.gz.
File metadata
- Download URL: oneport_context-0.1.0.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4772d10a236da449badefac8044a7cbde44ae10adaba642af336f9bbdeb8305
|
|
| MD5 |
0afd87d4e9a241f38704e511e5dda0dc
|
|
| BLAKE2b-256 |
1466e89c808953b61295c022cd6fd015bf8c979e30d62b53b3bfd695903ca4f8
|
File details
Details for the file oneport_context-0.1.0-py3-none-any.whl.
File metadata
- Download URL: oneport_context-0.1.0-py3-none-any.whl
- Upload date:
- Size: 49.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d737c08de502c82602ad3a247c6bb05a5fdb0bcdee9434bd8140cd6e65d844b
|
|
| MD5 |
444be7857813a56e62f4b006740c57e1
|
|
| BLAKE2b-256 |
4ed8cf2f71985a7e3cc12f8eecc577e033387b4ca20b9406ec6af49421aaa8dd
|