Skip to content

fdatoo/switchyard

Repository files navigation

FBI

Switchyard is a self-hosted home automation platform. switchyardd runs on your local network and connects to devices via a driver model; switchyard is the CLI for managing it.

Warning: This project is in early development. It's definitely not ready for production use, and the API is likely to change.

Modules

Module Path Description
github.com/fdatoo/switchyard . Daemon (switchyardd) + CLI (switchyard)
github.com/fdatoo/switchyard-driverkit ./switchyard-driverkit SDK for building device drivers

Both modules are linked by a Go workspace (go.work), so go build ./... and go test ./... work across the full tree from the repo root.

Prerequisites

  • Go 1.25+
  • Taskbrew install go-task
  • bufbrew install bufbuild/buf/buf (proto codegen)
  • Pklbrew install pkl (config schema)
  • Node.js 20+ — for the web UI

Building

task build          # builds switchyardd + switchyard binaries into dist/
task web:build      # builds the web UI (required before task build)

Testing

task test           # unit tests
task test:race      # race detector
task test:integration   # integration tests (real disk I/O)

Drivers

Drivers are out-of-process binaries that implement the driver gRPC protocol. Use the switchyard-driverkit to build one:

cd switchyard-driverkit
go build ./...

Documentation

Full documentation lives in docs/ and is published via Zensical. Design specs and implementation plans live in docs/design/.

License

MIT

About

Home automation for 2026

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors