kenbun
Static application discovery for Python and modern JavaScript/TypeScript repositories.
What it is and what it does
Kenbun is a Rust-backed Python library that analyzes repository structure to identify applications and their technology stacks without running code. It discovers Python frameworks (FastAPI, Django, Flask), Node.js frameworks (Next.js, Astro, Nuxt, SvelteKit, Remix, Vite), build tools, dependency managers, workspace configurations, and entrypoints. It reports facts as data rather than making deployment decisions, leaving policy choices to the caller.
The library supports two analysis modes: local filesystem scanning via `scan()` and stateful remote analysis via `remote_analysis()` for repositories accessed over a network. Both modes accept ecosystem filters to focus on Python, Node, or both. The output is a deterministic schema v3 `ScanResult` containing applications, technologies, dependency sets, build scripts, and diagnostics. It understands monorepo structures (uv, npm, pnpm, Yarn, Bun workspaces) and can infer cross-framework integrations like Inertia when Python and Node evidence align.
Use it for:
- Scan a monorepo to identify all deployable applications and their frameworks without cloning dependencies
- Analyze remote repositories (via GitHub archives or API) to classify applications before deciding how to deploy them
- Detect FastAPI applications and extract static entrypoint information for containerization or serverless deployment
- Identify Node.js frontend frameworks (Next.js, Nuxt, SvelteKit) and their build tooling to determine build commands
- Validate repository structure and report missing or conflicting build scripts and dependency manifests
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Kenbun statically discovers and analyzes applications in Python and JavaScript/TypeScript repositories, reporting frameworks, dependencies, build scripts, and entrypoints without executing code or installing dependencies.
Yes, if you need static application discovery in Python/Node monorepos without executing code. The MIT license and active maintenance are favorable. However, the project is very new (first release May 2026) with minimal adoption (1 star, top 15000 tier), so expect limited community support and possible API changes. Medium install friction (compiled Rust wheels) is manageable on common platforms but may be a blocker on less common architectures. Verify Python 3.12+ support if you need it.
Install
kenbun on PyPI
pip
pip install kenbunuv
uv add kenbunpoetry
poetry add kenbunInstalling kenbun
Before you install
Medium install friction due to compiled Rust bindings, but wheels are pre-built for many platforms (Python 3.10+, 3.11+). Active maintenance with a release 8 days old suggests ongoing support, though the project is early (first release May 2026) and has minimal community adoption (1 star).
License in practice
MIT license is permissive and imposes no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
from pathlib import Path
import kenbun
result = kenbun.scan(
Path("."),
ecosystems={"python", "node"},
)
for app in result.applications:
print(app.application_dir)
for tech in app.technologies:
print((tech.name, tech.kind, tech.role))
Requires Python >= 3.10. Compiled Rust extension; pre-built wheels available for common Linux, macOS, and Windows platforms but may require compilation on less common architectures.
Verify before relying
- Whether Python 3.12+ wheels are available or planned, given the friction evidence shows only 3.10 and 3.11 wheels
- Performance characteristics and scalability limits for large monorepos or repositories with many files
- Accuracy and false-positive rates for framework detection across different project structures
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — typing-extensions |
| Maintenance | actively maintained — 8 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 108,808/month — #12,537 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: kenbun-0.9.3-cp310-cp310-macosx_10_12_x86_64.whl; kenbun-0.9.3-cp310-cp310-macosx_11_0_arm64.whl; kenbun-0.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; kenbun-0.9.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; kenbun-0.9.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; kenbun-0.9.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; kenbun-0.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; kenbun-0.9.3-cp310-cp310-manylinux_2_31_riscv64.whl; kenbun-0.9.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl; kenbun-0.9.3-cp310-cp310-musllinux_1_2_aarch64.whl; kenbun-0.9.3-cp310-cp310-musllinux_1_2_armv7l.whl; kenbun-0.9.3-cp310-cp310-musllinux_1_2_i686.whl; kenbun-0.9.3-cp310-cp310-musllinux_1_2_x86_64.whl; kenbun-0.9.3-cp310-cp310-win32.whl; kenbun-0.9.3-cp310-cp310-win_amd64.whl; kenbun-0.9.3-cp311-cp311-macosx_10_12_x86_64.whl; kenbun-0.9.3-cp311-cp311-macosx_11_0_arm64.whl; kenbun-0.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; kenbun-0.9.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; kenbun-0.9.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Keywords: static-analysis, application-detection, fastapi, javascript, typescript, monorepo
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
entrypointsDiscovers and loads entry points from installed…
permissive · top 1,000 on PyPI
denoPackages and distributes Deno (a…
permissive · top 15,000 on PyPI
python-discoveryDiscovers Python interpreters installed on your…
permissive · top 1,000 on PyPI
moviepilot-rustProvides Rust-accelerated parsing and filtering…
unclear · top 15,000 on PyPI
puccinialinInstalls Rust and Cargo into a temporary cache…
permissive · top 5,000 on PyPI
maturinMaturin builds and publishes Python packages…
permissive · top 5,000 on PyPI
pyproject-dependenciesExtracts and prints the direct dependencies…
permissive · top 15,000 on PyPI
setuptools-rustsetuptools-rust is a setuptools plugin that…
permissive · top 5,000 on PyPI
django-viteIntegrates Vite, a modern JavaScript build…
permissive · top 5,000 on PyPI
trailmarkParses source code into a queryable graph of…
permissive · top 15,000 on PyPI