Skip to content

yamanote1138/yardbird

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

102 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YardBird

YardBird

A drag-and-drop layout control panel for model railroads.


YardBird is a pure frontend SPA that connects directly to your layout hardware — no backend server, no database. Build your control panel visually: create tabs, drag widgets onto a grid, and configure each one. Your layout is saved locally and can be exported as a YAML file.

Features

  • Visual dashboard editor — drag widgets onto a grid, resize, reorder tabs, import/export config
  • Locomotive throttles — speed, direction, and function buttons from your JMRI roster
  • Turnouts — toggle switch positions via JMRI / LCC
  • Lights — toggle LCC lights, independent of track power
  • DC tram control — JMRI-native tram loop control via a DCC-EX sub-connection, with configurable PWM frequency
  • Command station power — per-connection power buttons with combined on/off in the header
  • Home Assistant — control HA lights and switches from your dashboard
  • Responsive — works on desktop, tablet, and mobile

Quick start

Docker

mkdir -p config
cp yardbird.example.yaml config/yardbird.yaml
$EDITOR config/yardbird.yaml   # set your JMRI host
docker compose up -d

Open http://localhost:9273.

Development

npm install
npm run dev    # http://localhost:5173

See docs/installation.md for full setup details, including JMRI prerequisites and DCC-EX tram control.

Configuration

Connection settings are managed through the UI and saved in localStorage. yardbird.yaml provides factory defaults — it is only read when no saved config exists (first run or after a reset).

See docs/configuration.md for the full YAML schema, widget reference, and export/import format.

Architecture

See docs/architecture.md for the plugin system, config flow, Gridstack canvas details, and how to add new widget types.

Tech Stack

Vue 3 + TypeScript Composition API throughout
Vite Dev server and build tool
Nuxt UI 4 + Tailwind CSS 4 UI components and styling
Gridstack Drag-and-drop grid canvas
jmri-client JMRI WebSocket communication
js-yaml Config file parsing and export

License

Private use only

About

Vue 3 web interface for controlling model railroad layouts via JMRI's WebSocket API

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages