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
- Current status, generated from the roadmap
- Roadmap
- Python standards matrix
- Specification index
- llms.txt for language models