AMOOSEDWEB COMPILER v0.27.1 https://amoosed.com/compiler.html Agent and automation reference: https://amoosed.com/agent-guide.txt INSTALLATION CHANNELS npm compiler: https://www.npmjs.com/package/amoosedweb-compiler npm reader: https://www.npmjs.com/package/amoosedweb-reader npm compatibility CLI: https://www.npmjs.com/package/amoosedweb-cli NuGet compiler tool: https://www.nuget.org/packages/AmoosedWeb.Compiler NuGet C# reader: https://www.nuget.org/packages/AmoosedWeb.Reader NuGet native dependency: https://www.nuget.org/packages/AmoosedWeb.Native Human-readable .NET guide: https://amoosed.com/dotnet.html Chrome extension: https://chromewebstore.google.com/detail/amoosedcom/nngockpkidccdalhgcpinbjajcdldleg Agent skill bundle ZIP: /amoosedweb-skill.zip (site, maintenance, sharing, Pages, media, and Reader skills) amw init includes site, maintenance, and Pages skills for Codex and Claude. amw init-share includes share, maintenance, and Pages skills for both. Add optional skills: amw install-skill my-site [codex|claude|both] [site|maintain|share|pages|media|reader|all] Refresh after upgrading compiler: amw update-skill my-site [codex|claude|both] [site|maintain|share|pages|media|reader|all] Open compiler guide: amw open-docs Open Chrome Web Store extension listing: amw open-extension NPM INSTALL (NODE.JS 22+) npm install -g amoosedweb-compiler npm install amoosedweb-reader npm install -g amoosedweb-cli (compatibility command) NUGET INSTALL (WINDOWS X64, .NET 10) dotnet tool install --global AmoosedWeb.Compiler dotnet add package AmoosedWeb.Reader (inside your .NET project) AmoosedWeb.Native installs with the Reader; do not add it separately. REMOTE READER (NO EXTENSION REQUIRED) amw remote-list https://example.com/ [private.amwkey] amw remote-get https://example.com/ /amoosed.com/app/files/game.zip game.zip [private.amwkey] amw remote-pull https://example.com/ recovered-app [private.amwkey] The list returns paths, original byte sizes, MIME types, hashes, access, and download status. Each downloaded chunk and complete file is verified. Set AMW_MEMBER_KEY_FILE to a private .amwmember or 64-character hex file to download protected resources. AMW_CONTENT_KEY_HEX is also accepted. The npm reader package exports openRemoteSite, listRemoteResources, downloadRemoteResource, and downloadRemoteSite. The CLI package keeps its /reader export as a compatibility shim. Downloading does not overwrite existing output files. A private index still needs its matching key file. The .NET compiler tool contains the same remote commands with its runtime embedded. No installed Node.js is required. The .NET 10 Reader package depends on the matching Native package, finds its Windows x64 executable, and calls it for ListAsync, DownloadAsync, and DownloadAllAsync. The carrier and crypto codecs stay in one reference implementation. QUICK START 1. Install Node.js 22+ and run: npm install -g amoosedweb-compiler 2. Run: amw init my-site 3. Edit my-site/site/ for the ordinary website and binary carriers. 4. Edit my-site/app/ for the Amoosed mode HTML, CSS, and JavaScript app. 5. Edit document.json for the boot introduction and bundle.json for carrier paths, chunk size, and protected resources. 6. Change into my-site and run build.cmd on Windows or sh build.sh on macOS/Linux. The helper creates and verifies builds/local-0001/. 7. Run: amw serve builds/local-0001 (use the printed build path). 8. Open the local address in Chrome with the Amoosed extension installed. The starter includes a public Hello World app, encrypted members example, and my-site/README.txt with detailed editing, key, and rotation instructions. On the first successful build, the compiler generates a private member key under my-site/.amw/keys/ and prints its path. Do not publish or commit it. The new project is an independent Git repository; .amw/ is ignored. CLOUDFLARE PAGES From my-site, run release.cmd YOUR_PAGES_PROJECT on Windows or sh release.sh YOUR_PAGES_PROJECT on macOS/Linux to package and verify without uploading. Each run creates distribution/release-NNNN/pages/. To publish, run publish.cmd YOUR_PAGES_PROJECT or sh publish.sh YOUR_PAGES_PROJECT. This builds a fresh release, guides you through Wrangler login and Pages project creation, then deploys only pages/. Pass your existing production branch as a second argument if it differs from the current Git branch. Configure the custom domain in Cloudflare. Read the generated DEPLOY.txt for manual Wrangler commands. The source-and-key snapshot stays outside the public Pages folder. Make an encrypted offline backup of it. Use a fresh distribution folder per release. FILE SHARE STARTER Run: amw init-share game-share game.zip readme.pdf This creates a normal landing page and a private Amoosed file list with original names, exact byte sizes, and verified Download buttons. It copies the files into app/files/ as opaque resources and spreads the chunks over image carriers. After building, share the generated .amwkey or ICO privately with friends, or make a key-link QR for the final HTTPS site URL. The normal HTML does not link those carriers, so visiting it does not download them. The carrier URLs remain publicly reachable if known; the key controls decoding, not HTTP access to those bytes. A key or QR can be copied by anyone who gets it. Chrome streams verified file parts to its save dialog and commits only after the final hash passes. Browsers without a streaming save picker use a 64 MiB fallback. Each resource is limited to 1 GiB, with a 4 GiB starter cap. UPGRADES Commit or stash project changes, install a newer compiler, then run amw update-project my-site. Review and commit the project diff. Rebuild into a new output folder. Do not hand-edit generated carrier or Pages files. EXISTING SITES Replace site/ with the current static website build while keeping its ordinary pages, favicon, and selected carrier files. List their relative paths in bundle.json. Full app mode also needs the /amoosed.com/ routes; Non-static hosts require their own route adapter. Media optimization that strips or recompresses appended bytes breaks the alternative app. CARRIER MODES String entries in bundle.json use universal append on any opaque binary file. For PNG use {"path":"media/photo.png","mode":"png-chunk"}; for MP4 use {"path":"media/clip.mp4","mode":"mp4-uuid"}. PNG inserts a private ancillary chunk before IEND; MP4 adds a UUID box after existing boxes. For lossless PNG pixel data use {"path":"media/photo.png","mode":"png-pixels"}. This changes opaque RGB low bits, and the browser verifies and decodes the whole image. A PNG optimizer, resizer, or color converter can break it. For audible data art use {"path":"media/art.wav","mode":"wav-tones"}. It mixes three copies of each small encoded shard into a PCM WAV cover, which is rewritten as 16 kHz mono 8-bit audio. Keep another carrier for the app favicon and larger resources. Audio conversion may break it. For an existing PNG frame use {"path":"media/frame.png","mode":"frame-luma"}. It uses sparse, texture-selected pixels with changes of at most one color level, repeating each bit three times. One lossless PNG carries up to 21 shard bytes. This is a separate image file, not a muxed MP4 or YouTube carrier. The first carrier must be byte-addressable if the index is external. Keep the original media for later builds and test the packed media with its normal player and your hosting pipeline. The agent guide and FORMAT.md describe byte offsets, footers, integrity checks, and limitations. Starter projects are independent sites and need not advertise AmoosedWeb. The public amoosed.com site documents the compiler for people and AI agents. A public index is readable by any capable person or tool; neither robots.txt nor encoding grants agents exclusive access. FEATURES AND KEY MODES - List existing opaque binary carrier paths in bundle.json. The compiler splits app files into verified chunks among them and writes a versioned index. Ordinary site pages and media remain readable without the extension. - The extension side panel is the Amoosed-owned mode and key UI. Your full app runs as HTML, CSS, JavaScript, images, WASM, and downloads under the website's own /amoosed.com/app/ route after the boot loader verifies it. - With the default hosted index, favicon.ico supplies the public index key. This encodes public chunks but does not make them secret. - Set "indexDelivery":"external" in bundle.json for a private entry. The encrypted index goes into a carrier; the ordinary favicon stays as it was. The compiler writes private .amwkey and compatible .ico credentials under my-site/.amw/indexes/, never in the public output. The favicon is then only the ordinary icon. Recipients need the separately delivered credential to interpret the index. This symmetric bearer secret is not a public cryptographic key; carrier URLs can still be fetched. - List "protected":["members/"] with a keyId to encrypt only selected resources. The starter already demonstrates this. The separate member .amwmember and .hex keys stay under .amw/keys/. QR SHARING AND PRIVACY Run: amw key-link KEY.amwkey https://your-site.example/ invitation.svg This prints a private HTTPS boot link and writes an SVG QR carrying the encrypted-index locator and key in a URL fragment. Put it on a physical card or poster if you want people there to discover the private edition. The site checks the credential against the current carrier release before storing it for that origin in the browser. The fragment is not sent with the HTTP request. A separate member QR can be created with: amw member-link KEY.amwmember https://your-site.example/ /amoosed.com/app/members/index.html member.svg The website owner can publish static encrypted carriers without running membership accounts. The QR is still a COPYABLE BEARER KEY. Anyone who photographs or forwards it gets the same access; downloaded plaintext cannot be recalled. Browser history, sync, scanner apps, screenshots, clipboard, and same-origin scripts may expose the fragment. Site and CDN servers may still keep ordinary visit logs. Use HTTPS and avoid third-party scripts when privacy matters. This is not DRM or per-person subscription. KEY ROTATION Run: amw rotate-project my-site members|site|both Build to a fresh folder, publish the new index and changed carriers as one set, and share the new credential. Hosted site-key rotation changes public encoding but does not revoke access. Old complete releases and already downloaded content remain usable by people who kept them. Run amw help for a grouped overview and amw help COMMAND for exact arguments, including bundle, verify-bundle, pack, unpack, and member-file. Read my-site/README.txt for project-specific steps. MEDIA TRANSPORT EXPERIMENTS The compiler offers pixel-encode, audio-encode-set, and frame-encode-set for small experimental payloads. For standalone file or folder exchange, audio-encode/audio-decode write and recover numbered WAV tone tracks; audio-file-encode/audio-file-decode handle one encrypted WAV carrying up to 4068 bytes without a numbered-part directory; video-encode/video-decode do the same with playable MP4 covers and UUID data boxes. Preview part counts and size with --dry-run: amw audio-encode my-folder tones --dry-run amw audio-encode my-folder tones amw audio-decode tones restored-folder amw video-encode my-folder cover.mp4 videos --dry-run amw video-encode my-folder cover.mp4 videos amw video-decode videos restored-folder Send every numbered part and share the private key separately. Video transcoding may remove MP4 UUID data, so send these as unchanged files. Generate a private key with amw media-key .amw/keys/media.hex and supply its 64 hex characters through AMW_MEDIA_KEY_HEX. Keep the key outside any published files. The browser app runtime does not consume standalone multi-clip frame packet sets or muxed video yet. Read https://amoosed.com/MEDIA-TRANSPORT.md for commands and limits; YouTube playback and transcoding have not been verified.