Skip to content

Mo3he/ESPForge

Repository files navigation

ESPForge

Visual, browser-based configuration tool for ESPHome. Pick a board, add components, configure settings — get a ready-to-flash YAML file. No YAML knowledge required.

Try it here ESPForge

ESPForge Screenshot

Features

Build

  • 35+ boards — ESP32, S2, S3, C3, C6, ESP8266, plus M5Stack (Core2, CoreS3, Cardputer, Dial, StampS3, NanoC6), Seeed XIAO (S3, S3 Sense, C6, S2), LilyGO (T-Display AMOLED, T-Beam, T-Watch S3, T-Dongle), Sonoff, and more
  • 80+ components — sensors, switches, lights, fans, covers, locks, climate, BLE, IR, media, displays, I/O expanders, mmWave radar (LD2410, LD2450, LD2411S)
  • 10 starter templates — Sensor Node, Smart Relay, LED Strip, BLE Gateway, Garage Door, Power Monitor, etc.
  • Guided onboarding — template → board → settings → components
  • Boards with onboard hardware (buttons, NeoPixels, displays) auto-add those components on selection

Configure

  • Form-based editing — every field has labels, defaults, and hints
  • Visual pin mapper — color-coded board diagram with pin conflict detection
  • Automation builder — triggers (boot, interval, button press, sensor threshold), conditions, and actions for switches, lights, fans, covers, locks, numbers
  • Full settings — WiFi, fallback AP, static IP, MQTT, API encryption, OTA, logger levels, SNTP time, status LED

Import / Export

  • YAML import — load an existing ESPHome .yaml file and keep editing it visually
  • Live YAML preview — syntax-highlighted, updates as you type
  • Validation — catches missing WiFi, unassigned pins, empty fields, and conflicts before export
  • Secrets file — auto-generates secrets.yaml for !secret references
  • Share via URL — encode your project in a shareable link

Quality of life

  • Undo / Redo (Ctrl+Z / Ctrl+Shift+Z)
  • Save / Load projects as JSON
  • Inline project rename in the header
  • Light / Dark theme
  • Keyboard shortcuts (Ctrl+S save, Ctrl+E export)
  • Responsive layout — works on mobile and tablet

Quick Start

npm install
npm run dev

Open http://localhost:5173/ESPForge/ in your browser.

Build

npm run build

Static output is in dist/, ready to deploy anywhere.

Deploy to GitHub Pages

The repo includes a GitHub Actions workflow (.github/workflows/deploy.yml) that builds and deploys on push to main:

  1. Settings → Pages → set Source to GitHub Actions
  2. Push to main

How it works

ESPForge runs entirely in the browser. Your configuration is never sent to a server. The app builds a structured project in memory and serializes it to valid ESPHome YAML using js-yaml. Share links encode the project as Base64 in the URL hash.

Tech Stack

  • React 19 + TypeScript + Vite 8
  • js-yaml
  • No backend — fully static, nothing stored server-side

Contributing

Issues and PRs welcome. If you'd like to add a board, component, or template, the definitions live in src/data/.

License

MIT

About

Visual, browser-based configuration tool for ESPHome — no YAML knowledge required

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors