pycc

Typed Python in. Native binaries out.

pycc is an ahead-of-time compiler for type-annotated Python 3.14. It checks every annotation at compile time and produces a standalone native executable through Rust and LLVM.

Pre-alpha. pycc compiles an implemented subset of Python, not the whole language, and is not ready for production. The status page tracks what works today.

Try it

$ cat hello.py
def fib(n: int) -> int:
    if n < 2:
        return n
    return fib(n - 1) + fib(n - 2)

i = 0
while i < 11:
    print(fib(i))
    i = i + 1
$ pycc check hello.py
$ pycc build hello.py -o hello
$ ./hello
0
1
1
2
3
5
8
13
21
34
55

This example is tests/fixtures/quick_start.py; tests/quick_start.rs builds it and checks its output on every CI run. To build pycc itself, see Building from source.

How it works

Source is parsed, resolved and strictly type-checked, lowered to a typed intermediate representation, compiled by LLVM and linked with a small native runtime. Type errors are compile errors. The architecture document describes each stage.

An AI-native experiment

AI agents write pycc's specifications, code, tests, documentation and reviews; a human sets goals and constraints. The public history records every change.

Learn more