Skip to content

Conversation

@svlandeg
Copy link
Member

@svlandeg svlandeg commented Feb 6, 2026

From a recent survey we've run on Typer, we've learned that less than 5% of users specifically use typer-slim. We had originally introduced this package to provide users the option to not install shellingham & rich. However, even with these two packages, the typer library is still pretty small (25Mb) and the code base is more complex by having to cater for custom logic whether or not Rich is present or not. Additionally, we've run into issues (#1503) with publishing typer and typer-slim from the same codebase, so we can't keep the current situation. All of this has resulted in the conclusion to drop support for typer-slim. It will just be a shallow wrapper around typer.

We are aware that some users do not prefer some of the Rich formatting, and we'll look into options of customizing this further in the future. For now, there is always the option of setting Typer(rich_markup_mode=None) for each app, or setting a global environment variable TYPER_USE_RICH to False to disable any Rich formatting.

I've built the wheel locally (with TIANGOLO_BUILD_PACKAGE="typer-slim") and installed it in a clean venv, and got:

$ pip list
Package           Version
----------------- -------
click             8.3.1
colorama          0.4.6
markdown-it-py    4.0.0
mdurl             0.1.2
pip               25.2
Pygments          2.19.2
rich              14.3.2
shellingham       1.5.4
typer             0.21.1
typer-slim        0.21.1
typing_extensions 4.15.0

WIP

  • Document new env var
  • Fix redistribute tests

@svlandeg svlandeg linked an issue Feb 6, 2026 that may be closed by this pull request
7 tasks
@svlandeg svlandeg self-assigned this Feb 6, 2026
The `standard` extra dependencies are `rich` and `shellingham`.

**Note**: The `typer` command is only included in the `typer` package.
However, since version 0.22.0, we have stopped supporting this, and `typer-slim` now simply installs (all of) Typer.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: update version here right before merging/releasing.


HAS_RICH = importlib.util.find_spec("rich") is not None
HAS_SHELLINGHAM = importlib.util.find_spec("shellingham") is not None
HAS_RICH = os.getenv("TYPER_USE_RICH", True)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to rename this one to USE_RICH instead of HAS_RICH but that causes errors in the redistribution tests as they'd use an old pip-installed typer.

@svlandeg svlandeg marked this pull request as ready for review February 9, 2026 09:31
@svlandeg svlandeg removed their assignment Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Overlap of typer and typer-slim causes package managemers to fail

1 participant