FoldLight
Turn the lights on your own Home Assistant from a widget, without opening an app first.
contact
Get help with FoldLight
Email is the fastest route, and it always works — the form below is a convenience, not the only way in.
A first reply within two business days, from anmol@ponderance.dev.
Send a message
It reaches the same inbox, tagged with FoldLight.
Common questions
Where do the server address and token go?
Settings → Home Assistant. The Base URL is the address you use in a browser (including the port, e.g. https://homeassistant.local:8123), and the token goes in Long-lived access token. The token is kept in the system Keychain, not in a file and not with us.
How do I make a token?
In Home Assistant, open your profile, go to the Security tab, and create a long-lived access token at the bottom. Copy it once — Home Assistant will not show it again.
I just want to see what it looks like.
Turn on Settings → Use mock data. Every screen and widget then runs on bundled sample lights and never contacts a server.
Why does my widget show old state?
iOS decides when a widget may refresh, so a widget can lag the app by minutes; tapping a control updates it immediately. If it is stuck rather than merely stale, open the app once — that re-shares fresh state with the widgets.
How do the widgets know my server?
The app and its widgets share one private App Group on your device, so the address, token, and your preferences are written once and read by both. Nothing crosses the network to get there.
It works at home but not on cellular.
That is the usual shape of a LAN-only Home Assistant. Either expose it properly over HTTPS, or put both your phone and your server on the same VPN or Tailscale network and use that address as the Base URL.
My light isn’t listed.
FoldLight lists every light.* entity your token can see. If one is missing, it is missing from Home Assistant’s side or the token lacks access to it — check it in Home Assistant first, then Settings → Test connection.
What do you know about my setup?
Nothing. There is no server of ours, no analytics, and no crash reporting, so a support email needs you to describe the symptom — what you tapped, what happened, and what Test connection says.
When something goes wrong
in the order it actually failsTest connection fails
- Open the same Base URL in a browser on the same device. If the browser cannot reach it, the app cannot either — this is a network problem, not an app problem.
- Include the scheme and port exactly as your browser does (
https://orhttp://, and:8123if that is how you reach it). - Re-paste the token: a token copied with a trailing space, or one that was revoked in Home Assistant, fails the same way.
- Toggle Use mock data on and off — if the app works on mock data, the app is fine and the connection is the problem.
A widget won’t respond to taps
- Open the app once and confirm the same light responds there.
- Check that the server is reachable from the device right now; a widget tap that cannot reach the server fails quietly.
- Remove the widget and add it again — this re-reads the shared configuration.
- On macOS, make sure the app has been launched at least once since installing, or the widget is never registered.
Your data
- There is no account to delete — FoldLight never creates one, because there is no server of ours to hold it.
- The Home Assistant address, your access token, and your widget preferences live only on your device.
- Deleting the app removes all of it, Keychain entry included. Nothing survives elsewhere, because nothing was ever sent anywhere.
- To cut access from the other side, revoke the long-lived token in Home Assistant — that instantly invalidates it everywhere it was used.
what you need
Requirements
- iPhone or iPad running iOS 17 or later, or a Mac running macOS 14 or later.
- A Home Assistant server you run and can reach from the device — FoldLight has no server of its own.
- A long-lived access token from Home Assistant (your profile → Security → Long-lived access tokens).
- Nothing at all, if you only want to look around: the bundled demo data makes every screen work with no server.