Autoloop is porting pandas to TypeScript
tsb is a from-scratch TypeScript port of pandas, being built almost entirely by Autoloop — one iterative improvement at a time.
Over the last month, Autoloop has written 55,335 lines of TypeScript code, 5,866 tests, and migrated 100% of the pandas API to TypeScript — in 313 iterations, with minimal human intervention. The result is tsb1: dataframes and the full pandas API, usable directly in the browser. Try some example workflows here.
Autoloop is an Agentic Workflow that iterates toward a user-defined goal with measurable success criteria. Code migration is a natural fit: each step can be validated against existing tests, so the agent makes steady, verifiable progress.
How it’s built
tsb is built by three Autoloop programs, each tackling a different dimension:
- Feature migration — the core program implements pandas features one by one in TypeScript, working through the API surface methodically.
- Performance optimization — using Autoloop’s OpenEvolve strategy, this program evolves hot paths like
Series.sortValuestoward pandas-level performance, exploring different sorting algorithms and dtype-specific optimizations. - Benchmarking — a dedicated program benchmarks every
tsbfunction against its pandas equivalent, publishing results automatically.
Performance
Benchmarking shows that tsb is in some cases slightly faster, but in most cases significantly slower than pandas — expected for a pure TypeScript implementation. Next up: rewriting the hot loops in WASM-compiled Go code.
Autoloop is also attempting a migration of APM (Agent Package Manager) from Python to Go, and is about two-thirds of the way done.
Try tsb
Install tsb directly from GitHub:
npm install githubnext/tsb
Note: tsb ships TypeScript source, so you’ll need a bundler or runtime that handles TypeScript directly (Bun, Vite, or tsx).
Try Autoloop
If you have an optimization or migration task, or any process you want to run in your repo to get you closer to a measurable goal, try Autoloop. Your agent can install it and get your first program up and running quickly; just tell it:
Install autoloop using https://github.com/githubnext/autoloop/blob/main/install.md