Playground
Build a destination.
Paste the things that make up one piece of work — a repository, its docs, a dashboard, the folder on your disk, a terminal in it — and get back a manifest that murl-core itself validates, compiled to WebAssembly and running in this tab.
loading murl-core…
A URL, an absolute or ~ path, or a kind first: terminal ~/projects/x
Paste a URL or a path on the left — one per line.
Kinds and risk tiers come from murl-core, not from this page.
Field order is the canonical one: the same bytes murl validate and murl sign see.
Install it on this machine
Save the manifest file from the Manifest tab, then:
Publish it optional — for other people
Static hosting is the whole server side of mURL. No registry, no account.
Why the extra step: an mURL is a name, not a container.
It does not carry your resources — it points at a manifest that lists them. So this page gives you
the manifest, plus the one command that makes murl://local/<name> resolve on your
machine, and the path to host it at if you want the name to work for other people too. Anything that
promised a single self-contained link would be promising something the format deliberately does not do.
Rejections
Why some lines turn red
The rules rejecting them are the same ones that protect a click on a murl:// link from a
stranger, so the playground applies them rather than being lenient and letting you find out later.
Plain http:// is refused
Except for loopback hosts. A manifest — and everything it points at on the web — is fetched over TLS or not at all.
Relative paths and .. are refused
There is no answer to “relative to what?” that survives an OS handler. Paths are absolute or start with ~.
Userinfo in a URL is refused
https://github.com@evil.example is a phishing shape, not an address. The host you read must be the host you get.
Executable-adjacent files are dangerous
A .sh, .exe or .desktop file is not sensitive: opening it is running it, so it is classed with terminals.
Nothing you type leaves your browser. The page fetches one .wasm file and
does the rest locally — there is no server to send a manifest to, which is also true of mURL itself.