smithery/laurigates

basedpyright-type-checking

Basedpyright static type checker for Python. Use when setting up type checking, configuring LSP, or comparing type checkers (basedpyright, pyright, mypy alternative).

Installation

$ npx skills add smithery/laurigates --skill basedpyright-type-checking

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/laurigates · top by installs.

npx skills add smithery/laurigates

Browse all from smithery/laurigates

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsBash, Read, Grep, Glob

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,147 B
  • docs SUMMARY.md 346 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Basedpyright Type Checking

Basedpyright is a fork of Pyright with additional features and stricter defaults, designed for maximum type safety and performance.

When to Use This Skill

Use this skill when... Use another tool instead when...
Setting up type checking for Python Formatting code (use ruff format)
Configuring strict type validation Linting for style issues (use ruff check)
Comparing type checkers (basedpyright vs mypy) Detecting unused code (use vulture/deadcode)
Setting up LSP for type-aware editor support Running tests (use pytest)

Installation

Via uv (Recommended)

# Install globally
uv tool install basedpyright

# Install as dev dependency
uv add --dev basedpyright

# Run with uv
uv run basedpyright

Via pipx

pipx install basedpyright

Basic Usage

# Check entire project
basedpyright

# Check specific files/directories
basedpyright src/ tests/

# Watch mode for development
basedpyright --watch

# Output JSON for tooling integration
basedpyright --outputjson

# Verbose diagnostics
basedpyright --verbose

Configuration

Minimal Strict Configuration (pyproject.toml)

[tool.basedpyright]
typeCheckingMode = "strict"
pythonVersion = "3.12"
include = ["src"]
exclude = ["**/__pycache__", "**/.venv"]

# Basedpyright-specific strict rules
reportUnusedCallResult = "error"
reportImplicitStringConcatenation = "error"
reportMissingSuperCall = "error"
reportUninitializedInstanceVariable = "error"

Type Checking Modes

Mode Description Use Case
off No type checking Legacy code, migration start
basic Basic type checking Gradual typing adoption
standard Standard strictness Most projects (default Pyright)
strict Strict type checking Type-safe codebases
all Maximum strictness High-assurance systems

Progressive Type Checking

# Start with basic mode
[tool.basedpyright]
typeCheckingMode = "basic"
include = ["src/new_module"]  # Type check new code only

# Gradually expand
include = ["src/new_module", "src/api"]

# Eventually enable strict mode
typeCheckingMode = "strict"
include = ["src"]

Choosing a Type Checker

Factor Basedpyright Pyright mypy
Speed Fastest Fastest Slower
Strictness Strictest defaults Configurable Configurable
LSP Support Built-in Built-in Via dmypy
Plugin System Limited Limited Extensive

Choose Basedpyright for maximum type safety with stricter defaults and fastest speed. Choose Pyright for Microsoft's official support and VS Code Pylance compatibility. Choose mypy for extensive plugin ecosystem (django-stubs, pydantic-mypy).

Inline Error Suppression

# Inline type ignore
result = unsafe_operation()  # type: ignore[reportUnknownVariableType]

# Function-level ignore
def legacy_function():  # basedpyright: ignore
    pass

Agentic Optimizations

Context Command
Quick check basedpyright
JSON output basedpyright --outputjson
Watch mode basedpyright --watch
CI check uv run basedpyright
Verbose basedpyright --verbose

Quick Reference

Flag Description
--watch Watch mode for development
--outputjson JSON output for tooling
--verbose Verbose diagnostics
--pythonversion X.Y Override Python version
--level <mode> Override type checking mode

For detailed configuration options, LSP integration, migration guides, CI setup, and best practices, see [REFERENCE.md](REFERENCE.md).