Cuttlefish

Write firmware in TypeScript. Cuttlefish turns it into the C++ that runs on Arduino, ESP32, and more.

Write firmware in TypeScript. Ship to Arduino, ESP32, and beyond.

• Spots hardware mistakes in your editor, before you upload

• Your TypeScript becomes the C++ the board needs

• Run your tests on the real board and see results in your terminal

• Catches slowdowns and memory problems the compiler misses


Read our getting started guide

Each pin, bus, and part is a TypeScript object. Cuttlefish checks that you're using them the right way — so mistakes like putting a sensor on a pin that can't talk to it show up in your editor, not on the board.
You write TypeScript. Cuttlefish turns it into the C++ that Arduino and ESP32 expect — the result looks like code a pro wrote by hand, with nothing extra slowing the board down.
Write tests in TypeScript. Cuttlefish sends them to the board, runs them there, and reports pass or fail back to your terminal — all in one command.
Cuttlefish spots problems the C++ compiler can't — like a delay that freezes your screen, two parts fighting over the same pin, or a program that uses more memory than the board has. You hear about it before you upload.