Skip to main content

Typedown Logo Typedown

Progressive Formalization for Markdown

🚀 Install VS Code Extension · Documentation · Issues

License: MIT Python 3.12+ PyPI

English | 简体中文

Typedown adds a semantic layer to Markdown, transforming it from loose text into a validated knowledge base.

💡 Typedown files (.td) are designed to be experienced in an IDE. Install the VS Code Extension to get real-time validation, intelligent navigation, and semantic highlighting.

The Problem: Markdown Doesn't Scale

Markdown is the universal standard for technical documentation. But as your repository grows from 10 to 10,000 files, it becomes a "write-only" graveyard:

Problem Description Typedown Solution
Schema Errors Inconsistent data: Status: Active vs status: active, missing required fields Model - Define structure with Pydantic, validate at compile time
Broken References Links break after moving files: [[./old-path]] points nowhere Reference - Content-addressed links that auto-track entity changes
Constraint Violations Rules are broken: admins without MFA, inventory over limit Spec - Executable business rules for complex constraints

Core Concepts

1. Model (Schema)

Define data structures using Pydantic:

```model:User
class User(BaseModel):
    name: str
    role: Literal["admin", "member"]
    mfa_enabled: bool = False
```

2. Entity (Data)

Instantiate data with strict YAML:

```entity User: user-alice-v1
name: "Alice"
role: "admin"
mfa_enabled: true
```

3. Reference (Graph)

Link entities with [[...]] syntax:

This task is assigned to [[user-alice-v1]].

Supports ID references ([[entity-id]]) and content hash ([[sha256:...]]).

4. Spec (Validation)

Three layers of validation:

# 1. Field-level - @field_validator
class User(BaseModel):
    @field_validator('email')
    def check_email(cls, v):
        assert '@' in v, "Invalid email"
        return v

# 2. Model-level - @model_validator
class Order(BaseModel):
    @model_validator(mode='after')
    def check_dates(self):
        assert self.end > self.start, "End must be after start"
        return self

# 3. Global-level - spec
```spec:check_admin_mfa
@target(type="User", scope="local")
def check_admin_mfa(user: User):
    if user.role == "admin":
        assert user.mfa_enabled, f"Admin {user.name} must enable MFA"
```

Quick Start

Option 1: VS Code Extension (Recommended)

The best way to experience Typedown is through the IDE extension, which provides real-time validation, go-to-definition, and semantic highlighting.

  1. Install the VS Code Extension
  2. Clone this repository and open the cookbook/01_getting_started/ folder in VS Code
  3. Open any .td file to see Typedown in action

⚠️ Note: Typedown files (.td) appear as plain Markdown on GitHub. The full experience requires the VS Code extension.

Option 2: CLI (For CI/CD)

For validating Typedown files in CI pipelines or automation:

# Using uv (recommended)
uv tool install typedown

# Using pip
pip install typedown

# Validate a project
typedown check .

CLI Commands

# Validate the project
typedown check .

# Check with JSON output
typedown check --json

# Run specific validation
typedown check --target User

Documentation

Cookbook

The cookbook/ directory contains learning resources designed to be used with the VS Code extension:

  • cookbook/01_getting_started/ - Progressive tutorials (English & 中文)
  • cookbook/02_use_cases/ - Real-world examples (bid evaluation, PMO SaaS, ERP)

💡 Tip: Clone the repo and open it in VS Code with the Typedown extension installed for the best learning experience.

License

MIT © IndenScale

Metadata

Release files for typedown 0.2.19

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

Source distribution (sdist)

Source distribution for typedown 0.2.19
File Size Uploaded
typedown-0.2.19.tar.gz 1.0 MB Details

Built distribution (wheel)

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

Total release size: 1.1 MB

Release files / typedown-0.2.19.tar.gz

Download URL typedown-0.2.19.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
fb6d63d5f95b4f52895c2c82f5d80b6631112fce911013ba00cd9138e5f4bfff
BLAKE2b-256 checksum
How to use checksums
ea5759079902efef1ec2f4828f9ecebf706e76ab3c970b8c6051c8fec501a303
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.

Transparency log

Release files / typedown-0.2.19-py3-none-any.whl

Download URL typedown-0.2.19-py3-none-any.whl
Size 110.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08a0832c8ef253cebe2a3781567f60685fa1106531c7c1df28f2086e2aba88af
BLAKE2b-256 checksum
How to use checksums
0e043d6751a5ef16b1ac816399ab9e8f8618f97b554cb3ba4781ab7775c03bcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.19 This release

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.6

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.1.0

2 release files

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