$npx skillfedfor your agent

titlecase

Python Port of John Gruber's titlecase.pl

With conditionsPyPI FiltersReleased Sep 2023691.2K downloads / moMITSource build

Decision gist · record as of 2026-08-14

sdist only — titlecase-2.4.1.tar.gz · builds from source
v2.4.1 · released 2023-09-23 · Python >=3.7

Yes, if you need reliable title-case conversion with sensible English-language defaults and don't require frequent updates. The high install friction (source-only distribution) and aging maintenance status are acceptable trade-offs for a stable, single-purpose utility with no dependencies. Not recommended if you need active bug fixes or compatibility guarantees beyond Python 3.10.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.7 or later.
  • Source distribution only (no wheels), so installation requires a working C compiler and development headers if your environment lacks pre-built packages.
  • High install friction due to source-only distribution (no wheels).

License · maintenance · safety

MIT (permissive) — MIT license (permissive) means you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions, provided you include the license notice.

last release 2023-09-23 (1056 days) · last repo commit 2026-01-07 · 267 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 691,206 downloads/mo, #5,326 on PyPI

Verify before relying

pip install titlecase

from titlecase import titlecase
result = titlecase('a thing')
print(result)  # 'A Thing'

# With callback for custom handling:
def abbreviations(word, **kwargs):
    if word.upper() in ('TCP', 'UDP'):
        return word.upper()

result = titlecase('a simple tcp and udp wrapper', callback=abbreviations)
print(result)  # 'A Simple TCP and UDP Wrapper'
  • Whether the aging maintenance status poses a risk for Python 3.11+ compatibility or future standard library changes.
  • Performance characteristics on very large texts or in high-throughput scenarios.
  • Whether Unicode handling beyond basic accented characters (e.g., non-Latin scripts) is sufficient for your use case.
Same gist for agents: .md · .json

What it is and what it does

Titlecase is a text formatting library that converts strings to title case while intelligently preserving small words (a, an, the, and, or, etc.) in lowercase based on New York Times style conventions. It also attempts to detect and preserve acronyms and abbreviations that are already in all caps. The library provides both a Python API and a command-line tool, making it useful for one-off conversions or integration into larger text-processing pipelines.

The package has no runtime dependencies and supports Python 3.7, 3.8, 3.9, and 3.10. It uses regex-based heuristics to handle edge cases, though it acknowledges limitations with contextual awareness (e.g., distinguishing 'us' the pronoun from 'US' the country) and non-English text. The library is a modern port of John Gruber's original titlecase.pl Perl script, maintained on GitHub with a stable user base.

Use it for

  • Format user-generated titles or headlines in web applications before display or storage.
  • Batch-process document titles or CSV headers from the command line using the titlecase utility.
  • Normalize book, article, or product names in data pipelines while preserving common acronyms via callback functions.
  • Convert all-caps or mixed-case text to consistent title formatting in content management systems.
  • Implement custom capitalization rules for domain-specific acronyms by providing a callback function.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you need reliable title-case conversion with sensible English-language defaults and don't require frequent updates.

The high install friction (source-only distribution) and aging maintenance status are acceptable trade-offs for a stable, single-purpose utility with no dependencies. Not recommended if you need active bug fixes or compatibility guarantees beyond Python 3.10.

Install

titlecase on PyPI

Before you install

High install friction due to source-only distribution (no wheels). The package is in aging maintenance status—last release was 2023-09-23, over a year ago—though the repository remains active and the code is marked Production/Stable. Suitable for stable, non-critical text processing tasks where you don't expect frequent updates.

Requires Python 3.7 or later. Source distribution only (no wheels), so installation requires a working C compiler and development headers if your environment lacks pre-built packages.

License in practice

MIT license (permissive) means you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions, provided you include the license notice.

Quickstart

pip install titlecase

from titlecase import titlecase
result = titlecase('a thing')
print(result)  # 'A Thing'

# With callback for custom handling:
def abbreviations(word, **kwargs):
    if word.upper() in ('TCP', 'UDP'):
        return word.upper()

result = titlecase('a simple tcp and udp wrapper', callback=abbreviations)
print(result)  # 'A Simple TCP and UDP Wrapper'

Verify before relying

  • Whether the aging maintenance status poses a risk for Python 3.11+ compatibility or future standard library changes.
  • Performance characteristics on very large texts or in high-throughput scenarios.
  • Whether Unicode handling beyond basic accented characters (e.g., non-Latin scripts) is sufficient for your use case.

Package facts

LicenseMIT permissive
Python supportSupports the current Python release >=3.7
Install frictionHigh. Source build required
Runtime dependenciesNone
MaintenanceAging 1,056 days since the last release
Last repo commit
First released
Downloads691,206 / month, #5,326 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTopic :: Text Processing :: Filters

Evidence: titlecase-2.4.1.tar.gz

Tags

Capabilities
title case conversiontitlecase formattingsmart capitalizationtext title casingcommand line title casesmall words capitalizationtitle formatting tool
Topics
text-formattingcli-toolenglish-language

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “title case conversion”

  • titlecaseConverts text to title case with intelligent handling of small words…
  • casefyCasefy converts strings between different casing conventions…
  • stringcaseConverts strings between different naming conventions (camelCase,…

Give your agent the search over MCP, or paste the wish link into any chat.

More Filters packages

Pygments Worth it
PyPI · Utilities · released Mar 2026

Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.

Install it if you need to display or transform source code.

BSD-2-Clausepure Python · 3.9+
1.3Bdownloads / mo
Markdown Worth it
PyPI · Python Modules · released Jul 2026

Converts Markdown text to HTML using a Python implementation of John Gruber's Markdown specification, with support for extensions.

Install it if you need to parse Markdown in Python.

BSD-3-Clausepure Python · 3.10+
121.7Mdownloads / mo
nltk Worth it
PyPI · Scientific/Engineering · released Aug 2026

NLTK is a Python library for natural language processing tasks including tokenization, parsing, tagging, and linguistic analysis, with built-in datasets and educational resources.

Install it if you need foundational NLP tools, linguistic datasets, or are learning the field; consider specialized libraries (spaCy, transformers) if you need…

Apache-2.0pure Python · 3.10+
74.1Mdownloads / mo
pandocfilters With conditions
PyPI · Filters · released Jan 2024

Provides Python utilities for writing pandoc filters that transform document ASTs by reading JSON from stdin, modifying the structure, and writing JSON to stdout.

BSD-3-Clausepure Pythonaging
60.8Mdownloads / mo
Unidecode Worth it
PyPI · Text Processing · released Apr 2025

Converts Unicode text to ASCII-safe representations by transliterating non-ASCII characters to their closest ASCII equivalents, useful for generating URL slugs, legacy system integration, and keyboard-friendly identifiers.

Install it if you need lossy Unicode-to-ASCII conversion and can accept GPLv2+ copyleft terms.

GPL-2.0-or-laterpure Python · 3.7+aging
32.8Mdownloads / mo
pymdown-extensions Worth it
PyPI · Python Modules · released Jul 2026

Pymdown Extensions provides a collection of additional extensions for Python Markdown that add syntax support for advanced formatting, including tabbed content, superfences with syntax highlighting, emoji, and other markup enhancements.

Install it if you need markdown features beyond the standard library.

MITpure Python · 3.10+
26.3Mdownloads / mo

See also case-converter · case-conversion · reporters-db · english-words · indic-nlp-library · redlines · wordninja · pluralizer · textcase · codespell