Skip to content
CAI
Software that uses CAICheck a score

astral-sh/ty

59.5

Weak · 19 September 2026

1.2k

lines of production code

Python

with JavaScript

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is \ty\, an extremely fast Python type checker written in Rust. It provides a compiled binary distributed via \cargo-dist\ and a Python package wrapper that enables execution via \python -m ty\. The repository includes automation scripts for building, releasing, and maintaining the project, along with documentation generated from the Ruff submodule.

Features

Initial repository scaffolding for ty

This release establishes the standalone ty repository structure, separating documentation and release infrastructure from the core Rust codebase in the Ruff project. It introduces a git submodule for the Ruff source, configures the \cargo-dist\ build system via \dist-workspace.toml\ for multi-platform binary and Docker image distribution, and sets up the \mkdocs\ documentation site. The repository also includes a comprehensive pre-commit configuration with hooks for linting, formatting, and security checks, along with baseline configuration files for editors, git attributes, and Python versioning.

(repo-wide) · high confidence

New release, build, and maintenance automation scripts

The repository now includes a suite of new scripts to automate the release process, build optimizations, and documentation maintenance. The \release.sh\ script handles submodule initialization, version bumping via \rooster\, and updating the changelog with typeshed diff links. A new \build\_ty\_pgo.py\ script enables Profile-Guided Optimization for the \ty\ binary using a pinned corpus of ecosystem projects. Documentation is now automatically synchronized from the Ruff submodule via \autogenerate\_files.sh\, and the \transform\_readme.py\ script adapts the README for PyPI by fixing image paths and removing dark-mode dependencies. Additionally, \update\_schemastore.py\ automates the process of updating the JSON schema in the SchemaStore repository, and \patch-dist-manifest-checksums.py\ ensures release archives have valid checksums in the distribution manifest.

scripts · high confidence

Python package now exposes a \`find\_ty\_bin\` utility and supports \`python -m ty\` execution

The \python\ package now includes a \ty\ module that provides a \find\_ty\_bin\ function to locate the \ty\ binary across various installation layouts (standard scripts, prefix/target installs, and user schemes). This enables the package to be executed directly via \python -m ty\, which delegates to the found binary while handling platform-specific execution details (such as avoiding tracebacks on interrupt for Windows). The addition of \py.typed\ also marks the package as type-hinted for static analysis tools.

python · high confidence

Removals

Removal of CLI entry point

The \src/ty/\_\init\\_.py\ file has been deleted, removing the \main()\ function that previously printed "Hello from ty!". This eliminates the default command-line interface entry point for the \ty\ package.

src/ty · high confidence

Dependencies

Updated project metadata and build configuration for ty

The pyproject.toml has been updated to version 0.0.82, with the description changed to "An extremely fast Python type checker, written in Rust." The build system has switched from uv\_build to maturin, and dependency groups have been added for dev (prek), release (rooster), and docs (mkdocs ecosystem). Python version support is now explicitly declared up to 3.15, and various tool configurations for Ruff, UV, and Rooster have been added or updated.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 59.

Lenses

  • Code Health 96
  • Architecture 69
  • Maturity 57
  • Readiness 51
  • Security 83

Changes since last survey

  • 300 commits — 290 feature/other, 10 fixes

By area

  • (root) — 143 commits
  • .github/workflows — 89 commits
  • docs/coming-from-mypy-or-pyright.md — 12 commits
  • docs/reference — 10 commits
  • docs/features — 7 commits
  • .github/actionlint.yaml — 6 commits
  • docs/editors.md — 5 commits
  • .github/renovate.json5 — 3 commits
  • scripts/release.sh — 3 commits
  • .github/ISSUE_TEMPLATE — 2 commits
  • .github/secure-token-service.json — 2 commits
  • docs/assets — 2 commits
  • docs/installation.md — 2 commits
  • docs/suppression.md — 2 commits
  • scripts/update_schemastore.py — 2 commits
  • docs/.overrides — 1 commit
  • docs/exclusions.md — 1 commit
  • docs/index.md — 1 commit
  • docs/modules.md — 1 commit
  • docs/rules.md — 1 commit

Notable commits

  • fix: Fix documented Python package build command (#4384)
  • fix: Fix header levels in 0.0.19 changelog (#2909)
  • fix: Fix renovate actions/*-artifact updates (#2956)
  • fix: Fix ty version reporting in Docker distributions (#2702)
  • fix: Fix vulnerable Python dependencies (#4282)
  • fix: Revert "Revert "Use ICF for macOS release builds"" (#3901)
  • fix: Revert "Update Artifact GitHub Actions dependencies" (#3112)
  • fix: Revert "Use ICF for macOS release builds" (#3900)
  • fix: Update bug report issue template (#4189)
  • fix: fix: update broken registry.bazel.build/docs URLs (#4439)
  • change: Add a "release-gate" step to the release workflow (#3205)
  • change: Add a 'Diagnostics improvements' section to the changelogs (#3309)
  • change: Add a GitHub repository threat model for ty (#4481)
  • change: Add a workflow for preparing releases (#4505)
  • change: Add attestations for release artifacts and Docker images (#2827)
  • change: Add dependency cooldowns (#4281)
  • change: Add instructions for how to run ty with Bazel (#2711)
  • change: Add note about fallback behavior to python in PATH (#2787)
  • change: Add shellcheck to pre-commit configuration (#2845)
  • change: Add typeshed diff link to changelog during release (#2957)
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

astral-sh/ty was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 04c69110b391e96310e6892cbed9936c4f31d7aa — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.