# Platform support

> How HTML Clay behaves on macOS, Windows and Linux today, and the limits and non-goals the app states plainly.

Source: https://htmlclay.com/docs/platforms/

This page records where HTML Clay runs today, what differs between the three operating systems, and the limits the app does not try to cross.

## Current platform support

| | macOS | Windows | Linux |
|---|---|---|---|
| Download | Universal DMG for Apple Silicon and Intel | 64 bit ZIP, signed executable | x86\_64 and ARM64 archives |
| Signing | Signed and notarized | Signed executable | Unsigned |
| File setup | Registered by the app bundle | File associations register automatically when the app launches | Install script adds MIME entry |
| Permissions | Native dialog with three choices | Beta dialog, fails closed | Beta, requires zenity or kdialog |
| Folder trust | Pinned to folder identity | Pinned to path only | Pinned to folder identity |
| Save durability | Full, directory flush included | Almost complete: skips the final folder flush | Full, directory flush included |
| Startup | Optional login item, tray only | Optional per user Run item | Optional XDG autostart entry |

The Windows and Linux permission prompts have not yet been exercised on real machines, and both fail closed. On Linux, a missing dialog tool causes the request to be denied. Windows does not yet detect when a folder is replaced at the same path.

### For developers

Your scripts can reach the file too. The same local address that makes editing feel ordinary gives your scripts two narrow ways in. A program can edit the file or read it as JSON. The source is public under a source available license, and this version converts to plain MIT in February 2028.

## Limits and non-goals

State these plainly rather than discovering them.

- **Not a web server and not a host.** Nothing is exposed off the machine. The server binds
  `127.0.0.1` only. If you want the same file online, that is what https://hyperclay.com is for.
- **Not cloud storage, an account system, or a deployment service.**
- **Not multiplayer.** Live sync is between tabs and windows on one machine, not between
  computers.
- **Not a general filesystem API.** A page saves through its own token and reads only inside
  approved roots.
- **It does not make arbitrary HTML editable.** Renaming a file changes which app opens it.
  The editor, the persistence rules and the save behavior all come from page code such as ClayJS.
- **Nothing outside your home folder opens at all**, and dotfiles, dot-directories, HTML Clay's
  own settings, and its version history are always refused.
- **No script is injected into your page.** HTML Clay adds a save token, a durable id, and one
  cookie on the way out and strips its additions before anything reaches disk.
- **The save route has exactly one body shape.** Plain document text. A JSON body is a `415`, not
  a guess.
- **The data API sends no CORS headers**, on purpose, so no other origin can read your files.
- **A page cannot be a wire handler**, and one file has one handler at a time.
- **No chromeless app window.** Files always open in the system default browser, in an ordinary
  tab.
- **The Windows and Linux permission prompts are beta**, and fail closed when no dialog can be
  drawn.
- **Windows skips the final directory flush** on save; macOS and Linux do it.
- **Bad fit for**: anything that needs a server, a database, multiple simultaneous remote users,
  files larger than 50 MB per save, uploads larger than 25 MB, or files outside your home
  directory.
