Skip to main content

CodeNose 👃

Code smell detection for LLMs - sniffs out duplicate logic, architecture violations, and other blind spots.

Installation

pip install codenose

Usage

from codenose import CodeNose

# Quick scan a file
result = CodeNose.quick_scan_file("/path/to/file.py")
print(f"Found {len(result.smells)} smells")

# Scan a directory
result = CodeNose.quick_scan_directory("/path/to/project")
print(f"Cleanliness: {result.cleanliness_score:.0%}")

# With custom configuration
nose = CodeNose(
    max_file_lines=500,
    max_function_lines=50,
    canonical_filenames={"utils.py", "core.py", "models.py"}
)
result = nose.scan_file("/path/to/file.py")

Smell Types

Type Emoji Description
syntax 🔴 Syntax errors
syspath 💀 sys.path manipulation
traceback ☠️ Exception without traceback
arch 🏗️ Non-canonical filename
facade 🧅 Logic in facade layer
dup 👯 Duplicate code blocks
long 📏 File/function too long
log 📝 Missing logging
import 📦 Duplicate imports

Configuration

nose = CodeNose(
    # Architecture settings
    canonical_filenames={"utils.py", "core.py", ...},
    exempt_dirs={"tests", "__pycache__", ...},
    facade_files={"api.py", "cli.py", "mcp_server.py"},

    # Thresholds
    max_file_lines=400,
    max_function_lines=33,
    min_dup_block_size=3,
)

License

MIT

Metadata

Release files for codenose 0.4.1

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

Source distribution (sdist)

Source distribution for codenose 0.4.1
File Size Uploaded Provenance
codenose-0.4.1.tar.gz 17.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for codenose 0.4.1
File Interpreter ABI Platform
codenose-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 37.1 kB

Release files / codenose-0.4.1.tar.gz

Download URL codenose-0.4.1.tar.gz
Size 17.3 kB
Tags Source
SHA-256 checksum
How to use checksums
21a83cef0b907f7a695e25f31f8a278cb749cfa6452bced3009694bb901ba30e
BLAKE2b-256 checksum
How to use checksums
1a1104c817a808c60e555e2b536e69d61d97b71545ec6aec5d978eff1bb21b69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.6

Release files / codenose-0.4.1-py3-none-any.whl

Download URL codenose-0.4.1-py3-none-any.whl
Size 19.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60f8597473aad0b07a6f3816b06a62d565ae087adea7b76597136d1b325595ed
BLAKE2b-256 checksum
How to use checksums
a6a764bb134bfe03890a9ba2c6958c55d8ae6aa0cc79bbe7cbd8b10933747f09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.6

Security for codenose 0.4.1

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.

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