USB Gadget & HID Appliance

Raspiducky

A modern, high-performance USB Gadget and DuckyScript/HIDScript execution appliance for Raspberry Pi and Linux SBCs, featuring zero-reboot ConfigFS orchestration, a direct DuckyScript 3.0 compiler, Goja JavaScript engine, and a hardened embedded web dashboard.

Go Version Linux Kernel USB Gadget License MIT
Quality Gate Status Coverage Bugs Vulnerabilities Code Smells Technical Debt Duplicated Lines (%) Security Rating Reliability Rating Maintainability Rating Lines of Code

Key Features

Core capabilities & hardware integration

Single Binary Architecture

Built in pure Go (CGO_ENABLED=0) with zero runtime external dependencies and an embedded Web UI via go:embed.

Linux Kernel ConfigFS

Direct orchestration of /sys/kernel/config/usb_gadget and bounded non-hanging /dev/hidg* writes for dynamic composite gadgets without reboots.

Dual Scripting Engine

Direct line-validated DuckyScript 1.0–3.0 compiler (.txt/.ducky) alongside an ECMAScript 5.1+ JavaScript runtime (.js) with instant interruption.

Host LED Listener

Captures EP0 SET_REPORT LED updates from /dev/hidg0 (NUMLOCK, CAPSLOCK, SCROLLLOCK) with no_out_endpoint=1 to conserve UDC endpoints.

Hardened Dashboard & API

Dark-mode SPA with real-time WebSocket streaming, typing speed & layout controls, endpoint budget guard, CSP, and same-origin CSRF protection.

Multi-Board Support

Cross-compiled binaries for ARMv6, ARMv7, ARM64, and AMD64 targeting Raspberry Pi Zero, Zero 2 W, Pi 3A+, Pi 4B, Pi 5, Orange Pi, NanoPi, and Rock Pi.

Screenshot Gallery

Embedded dark-mode SPA & live console
Main Dashboard & Gadget Control Script Editor & Live Execution Console Payload Library & Job Manager
Main Dashboard Script Editor Payload Library

Documentation

Technical architecture & user guides