ed@edheltzel: ~/developers.html
ed@edheltzel:~$ cat README.md

Developers

This is the developer portal for edheltzel.codes. It documents the public read surface. It is not a hosted product API.

API keys

No API keys. Every page is public. Do not send an Authorization header. A missing key is not an error, and there is no key to create, rotate, or revoke. If a client sends a bearer token, ignore it. Nothing on this origin checks one.

Documentation

Request the canonical URL with Accept: text/markdown. The response is Markdown, Content-Type: text/markdown, and Vary: Accept. The same URL with Accept: text/html is the terminal page people see. Unknown paths return HTTP 404, not the homepage. A Markdown 404 points here, to the sitemap, and to llms.txt.

Machine-readable files:

  • /llms.txt tells an agent when to use this site and which page to open.
  • /sitemap.xml lists indexable URLs with lastmod dates.
  • /robots.txt points at the sitemap.
  • Each HTML page also has a .md sibling, advertised with rel="alternate".

Quickstart

curl -sS -D - -H 'Accept: text/markdown' https://edheltzel.codes/
curl -sS -D - -H 'Accept: text/html' https://edheltzel.codes/
curl -sS -D - -H 'Accept: text/markdown' https://edheltzel.codes/some-path-that-does-not-exist

The first response is Markdown with Vary: Accept. The second is HTML. The third is HTTP 404 with a Markdown body.

From a checkout of the site repo, the CLI does the same read:

bun cli/edheltzel.ts get /now
bun cli/edheltzel.ts ls

Sandbox

The public origin is the sandbox. Reads have no side effects. There is no write API, no stored caller state, and no separate sandbox host. Reset is unnecessary because a GET does not change the site. Do not send personal data, credentials, or private URLs in query strings. Nothing here is stored for you.

CLI

The official client is cli/edheltzel.ts in https://github.com/edheltzel/edheltzelCodes3. It fetches Markdown and lists the sitemap. It is not on npm, PyPI, or Homebrew yet. Publishing needs the maintainer’s registry credentials. Until that publish, run it from a checkout with bun. Do not invent an npm package name and treat it as installed.