Skip to main content

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

onp account login <op_live_...>    # 0-BYOK: managed models, metered to your account
                                   # token: https://www.oneport.co.in/console

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 login it still works in heuristic mode (structure + docstrings) — free and offline, just less prose.

Keeping the index fresh

The index is cached in .context/ so show/video/pdf/chat are instant — but a cached index is a snapshot, and a stale snapshot drives a wrong tour. oneport-context checks the cache against your repo as it is now and tells you when it has drifted:

oneport-context index ./my-repo --check   # "index is stale — 3 added, 1 modified"; exit 1 if stale
oneport-context show  ./my-repo --fresh   # rebuild before showing (any command takes --fresh)

show/video/pdf/chat print a clear warning when they're driven by a stale index, rather than presenting it as current. index --check exits non-zero when stale, so you can wire it into a pre-commit hook or CI.

Tuning the scan

By default the walker skips the usual noise (node_modules, .venv, build output), respects your repo's .gitignore, and caps at 4000 files. Override any of that in an optional .oneport-context.yml at the repo root:

scan:
  ignore: ["generated/**", "*.pb.go"]   # extra glob patterns to skip
  languages: {".astro": "Astro"}        # index extra extensions as a language
  max_files: 12000                      # raise the cap for a big monorepo
  respect_gitignore: true               # (default) honor .gitignore

If the file cap truncates the scan, that's surfaced — a partial index is never presented as a complete one.

Commands

Command What it does Extra
demo Zero-config narrated walkthrough of a bundled repo —
index ./repo Build the hierarchical understanding (cached); --check reports staleness —
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/chat produce their best output when logged in (oneport-account login); heuristic mode works without it.
  • Only structure travels to the model — file paths, symbol names, docstrings and the README, never raw file contents. Your code stays on your machine.

License

Apache-2.0

Metadata

Release files for oneport-context 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oneport-context 0.3.0
File Size Uploaded Provenance Actions
oneport_context-0.3.0.tar.gz 59.5 kB Without provenance Details for oneport_context-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for oneport-context 0.3.0
File Interpreter ABI Platform Actions
oneport_context-0.3.0-py3-none-any.whl Python 3 none any Details for oneport_context-0.3.0-py3-none-any.whl

Total release size: 122.3 kB

Release files / oneport_context-0.3.0.tar.gz

Download URL oneport_context-0.3.0.tar.gz
Size 59.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f64f90fc3662c8dfac36fc6a143b714769b25fd5929910803c50e786f6a84e5e
BLAKE2b-256 checksum
How to use checksums
86b32a98a87985d99f5a1df65e4e85e506edbbe8bc3d0ac6aab8d05a7d4fd044
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release files / oneport_context-0.3.0-py3-none-any.whl

Download URL oneport_context-0.3.0-py3-none-any.whl
Size 62.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5da5d7ebcd232072569c181b256362f7090bd42458c3f61b66c68075d99edd94
BLAKE2b-256 checksum
How to use checksums
46812304b045a46a0bd22efc7635c52c5a5f449ddc6fbd968e21dc78d64b4bd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Security for oneport-context 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page