The platform matrix

Every platform TransistorKit builds for

One brief fans out to phones, desktops, TVs, the web, your server, retro consoles, and bare-metal hardware. For each target, here's the language and stack, the template and toolchain it builds with, the Transistor Bridge capabilities available on it, and how TransistorKit drives and observes a built app.

iOS

Apple
Screenshot Logs Live presence Input injection
Stack
Swift + SwiftUI
Toolchain
Xcode project (synchronized groups) · xcodebuild · Simulator or device
Interact
Runs in the iOS Simulator or on a paired device. TransistorBridge streams live screenshots and logs and reports the current screen; on the Simulator TransistorKit can inject taps and drive navigation.

tvOS

Apple
Screenshot Logs Live presence Input injection
Stack
Swift + SwiftUI (focus engine)
Toolchain
Xcode tvOS target · xcodebuild · Apple TV Simulator
Interact
Runs in the tvOS Simulator. The bridge reports the focused screen and captures the TV frame; TransistorKit drives the Siri Remote — directional focus moves and select.

macOS

Apple
Screenshot Logs Live presence Input injection

Input injection needs macOS Accessibility (TCC) permission.

Stack
Swift + SwiftUI / AppKit
Toolchain
Xcode macOS app · xcodebuild · runs natively on your Mac
Interact
Launches natively on the Mac. TransistorKit captures the app window by window ID and tails live logs; synthetic events can drive it where macOS TCC permission allows.

Android

Android
Screenshot Logs Live presence Input injection
Stack
Kotlin + Jetpack Compose
Toolchain
Gradle project · emulator or adb-connected device
Interact
Installs to an emulator or a physical device over adb. TransistorBridge streams frames and Logcat lines; TransistorKit injects taps and keys via adb. Physical devices need one `adb reverse tcp:<port> tcp:<port>` to reach the bridge.

Android TV

Android
Screenshot Logs Live presence Input injection
Stack
Kotlin + Compose for TV
Toolchain
Gradle TV module (com.emtanonapps.transistorkittv) · Android TV emulator / Fire TV (minSdk ≤ 30)
Interact
Deploys to an Android TV emulator or a Fire TV stick over adb. TransistorKit drives the D-pad and select and captures the TV frame; logs stream through the same bridge.

Web

Web & Server
Screenshot Logs Live presence Input injection

Input is driven through DOM events / a headless driver rather than the OS.

Stack
TypeScript · modern ESM (Vite SPA or Astro site)
Toolchain
npm + Vite / Astro · runs in the browser or as a static bundle
Interact
Serves locally in the browser. The JavaScript bridge posts page-view and per-screen beacons and can capture the DOM/canvas, so TransistorKit sees exactly what's on the page as you use it.

Server

Web & Server
Screenshot Logs Live presence Input injection

Headless service — observed by log stream and HTTP probes.

Stack
Node.js REST / API service
Toolchain
npm · runs as a process · deploy over SSH
Interact
Runs as a local or remote process. TransistorKit tails structured logs and probes endpoints; being headless, its “screenshot” is a request/response probe rather than a picture.

NES

Retro console
Screenshot Logs Live presence Input injection

Logs come from the emulator trace; input is emulated controller state.

Stack
6502 assembly / C (cc65)
Toolchain
cc65 / ca65 toolchain → .nes ROM · bundled NES emulator
Interact
Assembles a ROM that runs in the bundled NES emulator. TransistorKit grabs the framebuffer and injects controller state; the app's nametable, tile-set and sprite editors feed straight into the build.

Game Boy

Retro console
Screenshot Logs Live presence Input injection

Logs and input are provided by the emulator.

Stack
C (GBDK) / RGBDS assembly
Toolchain
GBDK / RGBDS → .gb ROM · Game Boy emulator
Interact
Builds a .gb ROM that runs in the emulator. TransistorKit captures the 160×144 frame and injects the D-pad and A/B buttons.

Game Boy Color

Retro console
Screenshot Logs Live presence Input injection

Logs and input are provided by the emulator.

Stack
C (GBDK, CGB features)
Toolchain
GBDK → .gbc ROM · Game Boy Color emulator
Interact
Same pipeline as the Game Boy with color palettes. The emulated frame is captured and buttons are injected by TransistorKit.

Sega Genesis

Retro console
Screenshot Logs Live presence Input injection

Logs and input are provided by the emulator.

Stack
C (SGDK, Motorola 68000)
Toolchain
SGDK → .bin / .md ROM · Genesis emulator
Interact
Compiles a Genesis ROM that runs in the emulator. TransistorKit captures the frame and injects 3-/6-button pad input.

Sega Master System

Retro console
Screenshot Logs Live presence Input injection

Logs and input are provided by the emulator.

Stack
Z80 assembly / C (devkitSMS)
Toolchain
devkitSMS → .sms ROM · Master System emulator
Interact
Builds an .sms ROM that runs in the emulator. TransistorKit grabs the frame and injects pad input.

Arduino ESP32

Embedded / FPGA
Screenshot Logs Live presence Input injection

Screenshot only when the board drives a display; physical inputs aren't injectable.

Stack
C++ (Arduino framework / ESP-IDF)
Toolchain
arduino-cli / PlatformIO · flashed over USB serial (Wi-Fi + BLE capable)
Interact
Flashed onto the ESP32 over serial. TransistorKit reads the serial log stream and, because the chip is networked, a Wi-Fi heartbeat can report live presence; boards driving a display can have their framebuffer captured.

Arduino 328P

Embedded / FPGA
Screenshot Logs Live presence Input injection

Serial-only board — observed through the serial monitor.

Stack
C++ (Arduino / AVR)
Toolchain
arduino-cli / avr-gcc · flashed to the ATmega328P over USB serial
Interact
Flashed over USB serial. TransistorKit tails the serial monitor for logs and a serial heartbeat; with no display or radio, presence is serial-based and there's no visual capture.

RPi RP2040

Embedded / FPGA
Screenshot Logs Live presence Input injection

Screenshot only with an attached display; inputs aren't injectable.

Stack
C / C++ (Pico SDK) or MicroPython
Toolchain
Pico SDK / CMake → UF2 · flashed over USB (BOOTSEL mass-storage)
Interact
Builds a UF2 that's copied onto the RP2040's mass-storage. TransistorKit reads USB-serial (stdio) logs; boards with an attached display can be frame-captured.

Tang Nano 20K (FPGA)

Embedded / FPGA
Screenshot Logs Live presence Input injection

Screenshot only for designs that output video; no input injection.

Stack
Verilog / SystemVerilog (Gowin)
Toolchain
Gowin / Yosys + nextpnr → bitstream · programmed to the FPGA
Interact
Synthesizes a bitstream and programs the Tang Nano. TransistorKit reads UART output for logs and presence; designs that drive HDMI/video can be frame-captured.

CLI Tool

Tooling
Screenshot Logs Live presence Input injection

“Screenshot” is a terminal-output snapshot; input is piped through stdin.

Stack
Swift / TypeScript / Python (your pick)
Toolchain
SwiftPM / npm / PyInstaller · runs in the terminal
Interact
Runs as a terminal process. TransistorKit captures stdout/stderr as logs and a terminal transcript, and can feed stdin — so its “screenshot” is a snapshot of the terminal output.