AI-powered codebase analyzer and API documentation for Python projects
Project description
frumle (Python)
AI-powered codebase analyzer for Python projects. Scan your Flask, FastAPI, Django, or Starlette app and get API documentation in your Frumle dashboard.
What is frumle?
frumle scans your Python codebase, sends it to the Frumle backend, and generates documentation including:
- API Documentation: Endpoints, request/response bodies, parameters, authentication
- Structured Analysis: Overview, architecture, tech stack
- Dashboard: View everything at frumle.tellecata.com
Same backend as the npm and Maven / Gradle plugins—only the CLI and file scanning are Python-specific.
Quick Start
1. Install
pip install frumle
Or run without installing (from a clone):
python -m pip install -e .
# or
PYTHONPATH=src python -m frumle --help
2. Get your API key
- Go to frumle.tellecata.com
- Sign up and copy your API key from the dashboard
3. Add your API key
frumle add-key <your-api-key>
Or:
frumle login <your-api-key>
4. Analyze your project
From your project root:
frumle
Or a specific directory:
frumle ./src
frumle ./app
Analysis runs on the server. When it’s done, open your dashboard to see the docs.
Commands
| Command | Description |
|---|---|
frumle |
Analyze current directory (default) |
frumle <directory> |
Analyze a given directory |
frumle add-key <key> |
Store and verify your API key |
frumle login <key> |
Same as add-key |
frumle status |
Show API key status and quota |
Options
--project-name <name>– Project name (default: directory name orpyproject.toml/setup.pyname)--ignore <dirs>– Comma-separated dirs to ignore (default:__pycache__,.git,.venv,venv,env,.eggs,dist,build)
Examples
# Use a custom project name
frumle --project-name my-fastapi-app
# Ignore extra directories
frumle --ignore __pycache__,.pytest_cache,.mypy_cache
Supported frameworks
- Flask –
@app.route, blueprints - FastAPI –
@app.get,@app.post, routers,APIRouter - Django – URLconf, DRF views,
@api_view - Starlette –
Route,Router - Other – Any Python web app with route-like patterns
Config file
Running frumle creates or updates frumle.config.json in the project with base URLs, e.g.:
{
"baseUrls": [
{ "environment": "local", "url": "http://localhost:8000" },
{ "environment": "production", "url": "" }
]
}
You can add your production URL in that file. Local URL is guessed from common patterns (e.g. app.run(port=5000), uvicorn.run(..., port=8000)).
Requirements
- Python 3.8+
- Internet connection (to talk to the Frumle API)
Other platforms
- Node.js / TypeScript:
npm install -g frumle→ npm - Java (Maven):
mvn frumle:add-keythenmvn frumle:start→ Maven Central - Java (Gradle):
./gradlew frumle→ Gradle Plugin Portal
Publishing to PyPI (maintainers)
cd py-package
pip install build twine
python -m build
twine upload dist/*
Use a PyPI account and token (or ~/.pypirc) for uploads.
License
MIT © Tellecata LLC
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 frumle-0.1.0.tar.gz.
File metadata
- Download URL: frumle-0.1.0.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0692a3c4b7295517c138941cbd8071bf2220924f4d7c3b43249dfd32bda579d
|
|
| MD5 |
2c38703b16414d40d1b995a38c4fcd29
|
|
| BLAKE2b-256 |
b21686d4d57b30320cdbe3941261d42ed4222b9e65194876f5b3656a4218e6b1
|
File details
Details for the file frumle-0.1.0-py3-none-any.whl.
File metadata
- Download URL: frumle-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29136cf8074d48004c662d425fb65751be87c47ec9e22b8e27c00b95b4e0fb56
|
|
| MD5 |
63c6e9c65380458a1cfccdc3d3adc56e
|
|
| BLAKE2b-256 |
1ec03d50f691fd9ec4d736b597153701b5e565a4efb751a202f435ce932f19c6
|