Open Beta · v6.0

Arduino firmware in anything.

write code in the language you want, we take care of the rest. Transpilation toolchain with native librarie support

macOS & Linux · Windows: irm tsuki.s7lver.xyz/install.bat | iex

~11ms
Transpile
3.2×
Faster than arduino-cli
14+
Target boards
0
Dependencies
SCROLL
Features

The full stack.
Every layer.

01Rust · tsuki-core
func
loop
()
arduino
.HIGH
void
loop
()
digitalWrite
HIGH

Go → C++ Transpiler

Full recursive-descent parser. Real compiler frontend in Rust, not a template engine.

02Rust · tsuki-flash
avr-gcc
link .elf
.hex

Compile without arduino-cli

Direct avr-gcc / xtensa invocation. SHA-2 incremental cache. 14+ boards.

03Go · Cobra CLI
$tsuki build --board uno
✓ transpile 11ms
✓ compile 3.2s
$tsuki upload
✓ flashed 924B · 1.1s

Project CLI

init · build · upload · check · pkg · config — single binary, ~28ms cold start.

04tsukilib
ws2812
dht
hcsr04
u8g2
#include <NeoPixel.h>

Package ecosystem

Go imports map to C++ headers via TOML manifests. Ed25519 verified.

05Tauri + Next.js
main.go
sensor.go
servo.go
func loop() {
arduino.HIGH
}

Desktop IDE

Monaco + Git panel + serial monitor + live C++ preview. Native Rust backend.

06Rust · WASM
0
1
2
3
4
5
6
7
8
9
10
11
12
13
A0
512

Arduino simulator

Firmware compiled to WebAssembly. Flip pins, watch LEDs — no hardware needed.

Build pipeline

From source to board.
One command.

tsuki buildCLI · Go

Entry point. Reads tsuki_package.json, resolves flags, coordinates the build pipeline.

tsuki-coreTranspiler · Rust

Lexes, parses, and transpiles your code into native cpp, with native libraries support

tsuki-flashCompiler · Rust

compile and prepare the cores for upload your code

tsuki-flash coresFlash · native

Uploads firmware over USB. Board auto-detected

tsuki build output
Press "Simulate build" to run the pipeline…
total: board: Arduino Uno · ATmega328P
Performance

Faster at every step.

Native binaries — no JVM, no Node.js startup overhead.

tsuki
arduino-cli
Arduino IDE
Apple M2 · macOS 14 · Uno R3
Transpile
Go source → Arduino C++
11 ms
tsuki
arduino-cli
Arduino IDE
Speed score — higher is faster
tsuki97/100
arduino-cli0/100
Arduino IDE0/100
0255075100
Peak RAM
tsuki
8 MB
arduino-cli
42 MB
Arduino IDE
110 MB
Peak CPU
tsuki
12%
arduino-cli
0%
Arduino IDE
0%
tsuki-core (Rust). Others require manual authoring.
2.8×
faster compile vs arduino-cli
avg across board targets
3.2×
faster full pipeline vs Arduino IDE
transpile + compile + flash
64×
faster cold start vs Arduino IDE
native binary, no runtime
Transpiler

Interactive demo.

blink.goGo
1package main
2
3import (
4 "arduino"
5 "time"
6)
7
8const LED = 13
9
10func setup() {
11 arduino.pinMode(LED, arduino.OUTPUT)
12}
13
14func loop() {
15 arduino.digitalWrite(LED, arduino.HIGH)
16 time.Sleep(500)
17 arduino.digitalWrite(LED, arduino.LOW)
18 time.Sleep(500)
19}
build/main/sketch.ino.cppC++
1#include <Arduino.h>
2
3// generated by tsuki v0.1.0
4
5const int LED = 13;
6
7void setup() {
8 pinMode(LED, OUTPUT);
9}
10
11void loop() {
12 digitalWrite(LED, HIGH);
13 delay(500);
14 digitalWrite(LED, LOW);
15 delay(500);
16}

Built-in Go packages

— zero config, no installs
"arduino"Hardware
2
3
4
5
6
7
8
9
10
11
12
13
arduino.digitalWrite(13, LOW)
GPIO & peripherals
pinMode, digitalWrite, analogRead, interrupts…
"fmt"Serial IO
Serial Monitor · 9600
_
Serial print
Maps to Serial.print / Serial.println
"time"Timing
delay(500)
delay(1000)
millis() → 0
Delay & timing
delay(), millis(), micros()
"math"Math
math.sin / cos / sqrt / pow
Math functions
<math.h>: sin, cos, sqrt, pow, abs…
"wire"I2C
MCU
0x3C
0x3C
0x00
0xFF
0xA4
ACK
Wire / I2C
Wire.begin(), .write(), .read(), .endTransmission()
"serial"UART
baud
0
serial.Begin(9600) · .Println(…)
Serial port
Serial.Begin(), .Print(), .Println(), .Available()
"strconv"Strings
"42"
42
Atoi
strconv — string ↔ number conversions
Type conversions
String ↔ int/float, Atoi, Itoa, ParseFloat
"spi"SPI
CLK
MOSI
SPI bus
SPI.begin(), .transfer(), .setBitOrder()…
"servo"Actuator
0°
servo.Write(angle)
Servo motor
Servo.attach(), .write(), .read(), .detach()
"lcd"Display
LiquidCrystal
LiquidCrystal.begin(), .print(), .setCursor()
tsuki-ide

A full IDE.
Built for firmware.

Desktop application built with Tauri + Next.js. Monaco editor, file tree, git panel, package manager, serial monitor — all with native performance.

Tsuki IDE
uno
Explorer
▾ UWU
·.gitignore
build
uwu
src
·main.go
·tsuki_package.json
main.go
1package main
2
3import "arduino"
4
5const ledPin = 10
6const interval = 500 // ms
7const test = 20
8
9func setup() {
10 arduino.PinMode(ledPin, arduino.OUTPUT)
11 arduino.Serial.Begin(9600)
12 arduino.Serial.Println("Blink ready!")
13}
14
15func loop() {
16 arduino.DigitalWrite(ledPin, arduino.HIGH)
17 arduino.Delay(interval)
18 arduino.DigitalWrite(ledPin, arduino.LOW)
19 arduino.Delay(interval)
20}
MICROCONTROLLERS
Arduino Uno
Arduino Nano
OUTPUT
LED
RGB LED
Buzzer
INPUT
Button
Potentiometer
PASSIVE
Resistor
Capacitor
NPN BJT
POWER
VCC
GND
Power Rail
ATmega328PPWRLArduino Uno1
Output
Problems
Terminal
19:15:24 Opened "uwu" from C:\Users\NICKE\Desktop\Projects\GoDotIno\test\uwu
19:15:26 Ready.
⬡ uno · ATmega328P⚠ 0 errors
GoUTF-8Ln 12, Col 1
Monaco editorSyntax highlightingFile treeGit panelPackage managerSerial monitorLive C++ previewThemesAuto-saveSandbox simulator
Install

One command.
Fully installed.

The installer detects your OS and CPU architecture and downloads the latest release from GitHub.

Requires: curl · macOS 12+ / Ubuntu 20.04+ / Debian 11+ / Arch

01
tsuki init

Scaffold a new project with tsuki_package.json, src/main.go, and a .gitignore.

02
tsuki build --board uno

Transpile Go → C++ with tsuki-core, then compile with tsuki-flash or arduino-cli.

03
tsuki upload

Flash the .hex to your board via avrdude or esptool — detected automatically.

04
tsuki pkg install ws2812

Install community packages from tsukilib. Ed25519 verified, versioned.