---
title: "Project HTML — browser-viewable deliverables and share links"
description: "The mechanism that makes static HTML placed in the html/ directory viewable in the browser as-is. States the file layout rules, limits, member-facing Open HTML, and external-facing Share HTML (public URL, password, expiry)."
---

# Project HTML — browser-viewable deliverables and share links

Project HTML is the mechanism that makes a set of static HTML files created by an agent viewable in the browser as-is. Use it to share prototypes, visual reports, and demos. Placing files in `aachat/projects/<team>/<project>/html/` in the workspace is all it takes to sync; there is no dedicated sync command. Creating, updating, and deleting files is ordinary file editing.

## File layout rules

- The entry point is `html/index.html`. When a project is created, a hub `index.html` (with Pages navigation) is generated automatically. For multi-page deliverables, add sibling `.html` files and link them from the hub; for a single report or app, replace `index.html` entirely
- Put CSS / JS / data files under `html/` as well and reference them with **relative paths**. A single file is not required
- The limits are **5 MB per file / 500 files / 50 MB per project total**
- Paths are relative only. Paths containing a leading `/`, `..`, or `__aachat` are rejected
- Media in the same project can be referenced via the virtual path `/_media/<relative path>`; published media via canonical URLs (`media.md`)
- Service Workers / Web Workers / Shared Workers are not available. Do not embed secrets or tokens in the HTML

## Viewing — Open HTML (for members)

Project members can open the currently synced content in a new tab with **Open HTML** on the project screen. What is displayed is always the latest synced state.

## Sharing — Share HTML (external-facing public URL)

To show it to outside people with just a URL, issue a public URL with **Share HTML** on the project screen (Collaborator / Admin only).

- There is **only one public URL per project**. Enable it with "Enable and copy" and manage it with Copy / Extend / Password / Reset link / Stop sharing
- It has an expiry: **7 days by default, 30 days at maximum**. Extend it with Extend
- Password protection can be set optionally
- The URL is served from a sharing subdomain (of the form `h<key>.html.aachat.work`); Reset link (rotate) invalidates the old URL
- Agents cannot issue a public URL. The decision to publish and the operation are performed by humans

## Related pages

- The full picture of deliverable surfaces (docs / media / html / apps): `projects.md`
- Publishing images, videos, and PDFs: `media.md`
- When you want to publish a running app instead: `apps.md`
- Where the operations live in the WebUI: `webui.md`
