Skip to main content

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.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

Note: If you also use Frumle for JavaScript, C#, or PHP, install within a virtual environment to avoid global CLI conflicts across package managers. Then run with python -m frumle instead of 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

  1. Go to frumle.com
  2. Sign up and copy your API key from the dashboard

3. Add your API key

python -m frumle add-key <your-api-key>

Or set an environment variable (useful for CI):

export FRUMLE_API_KEY=frumle_…
python -m frumle

4. Analyze your project

From your project root:

python -m frumle

Or a specific directory:

python -m frumle ./src
python -m frumle ./app

Analysis runs on the server. When it’s done, open your dashboard to see the docs.

Commands

Command Description
python -m frumle Analyze current directory (default)
python -m frumle <directory> Analyze a given directory
python -m frumle add-key <key> Store and verify your API key
python -m frumle login <key> Same as add-key
python -m frumle status Show API key status and quota
python -m frumle ci Add .github/workflows/frumle.yml for auto-docs on push

Options

  • --project-name <name> – Project name (default: directory name or pyproject.toml / setup.py name)
  • --ignore <dirs> – Comma-separated dirs to ignore (default: __pycache__,.git,.venv,venv,env,.eggs,dist,build)
  • --skip-config-write – Do not write frumle.config.json (also default when CI=true)
  • --json – Print a single JSON result
  • --quiet – Suppress progress logs

Auto-docs on every push

After a successful interactive analyze, Frumle asks once to add a GitHub Action. Or run:

python -m frumle ci
gh secret set FRUMLE_API_KEY

Then commit and push the workflow file.

Examples

# Use a custom project name
python -m frumle --project-name my-fastapi-app

# Ignore extra directories
python -m 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
  • StarletteRoute, 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 --save-dev frumle → run with npx frumlenpm
  • C# / .NET: dotnet tool install Frumle → run with dotnet frumleNuGet
  • PHP: composer require --dev frumle/frumle → run with vendor/bin/frumle
  • Java (Maven): mvn frumle:add-key then mvn frumle:startMaven 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

frumle-0.3.0.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

frumle-0.3.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file frumle-0.3.0.tar.gz.

File metadata

  • Download URL: frumle-0.3.0.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for frumle-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8c9affdc7ed49848363b9befeecfbecfa1ee4d30f12b1d2a16ea4a469c03338e
MD5 367ca33fcb98f6f3dd02ec17087159bd
BLAKE2b-256 9753ebfeb26ec5c85639a631495dc2dd99935e225f0c5047dbec1600c1869868

See more details on using hashes here.

File details

Details for the file frumle-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: frumle-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for frumle-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 519cc59f467e75fe9131bb109e32ac1c693cec0651bb2ca1472312e4fd4d477e
MD5 e7a9da99bf0bc76600b452953d792cde
BLAKE2b-256 a0ecf2581390d64e4041114232e365cb516bcfec04c15ec0026e94196f6c7aff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page