todero-page

Publish static HTML directories to an S3 and CloudFront page host.

Updated Mar 26, 2026
One-click install
npx skills add https://github.com/nabitllc/todero --skill todero-page-nabitllc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: todero-page
Source: https://github.com/nabitllc/todero/tree/main/.agents/skills/todero-page
Command: npx skills add https://github.com/nabitllc/todero --skill todero-page-nabitllc

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Sharing a static page, prototype, report, or viewer usually requires ad-hoc hosting or temporary sharing links. This Skill publishes a local static directory to a durable Todero-controlled S3 bucket served through CloudFront, giving you a persistent public URL without manual AWS work. ## Core Features & Use Cases - Validated Publishing: Checks that the source directory has a root index.html, contains no symlinks or hidden files, and uses a safe lowercase slug before any upload happens. - Collision-Safe Slugs: Rejects overwriting existing pages unless you pass --update from the original source directory holding local ownership state; generated slugs get automatic suffixes on collision. - Scoped Credentials: Uses namespaced PAPERCLIP_PAGE_AWS_* environment variables so the uploader identity never leaks into the rest of the agent run. - Use Case: You built a static HTML report in ./site and want a shareable link. Run the publish helper with --slug q3-report and receive a public URL like https://pages.todero.ing/q3-report/. ## Quick Start Ask the agent to publish the static site in the ./site directory to the Todero pages host with the slug my-page and return the public URL.

Frequently Asked Questions about todero-page

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I publish a static site to S3 and CloudFront from an agent?

Run scripts/publish.sh with the source directory and a slug, for example `publish.sh ./site --slug my-page`. The directory must contain a root index.html, and the helper prints the public URL and S3 prefix after uploading.

How do I update an already published static page?

Re-run publish.sh with the --update flag from the same source directory that originally published the page. The helper verifies ownership via the local .todero-page/state.json file and only performs additive overwrites, never deletions.

What AWS credentials does the publish script need?

Set PAPERCLIP_PAGE_AWS_ACCESS_KEY_ID and PAPERCLIP_PAGE_AWS_SECRET_ACCESS_KEY with the dedicated uploader identity, plus PAPERCLIP_PAGE_BUCKET, PAPERCLIP_PAGE_BASE_URL, and AWS_REGION. Do not use global AWS_ACCESS_KEY_ID names, which would override the host identity for the whole agent run.

Why does publishing fail with a symlink or hidden file error?

The helper rejects any source tree containing symlinks, hidden files, or dot paths as a safety measure, and the source directory itself must not be a symlink. Replace symlinks with real files and remove dotfiles before publishing.

What happens if the slug I chose already exists?

An explicit slug fails with a collision error instead of overwriting someone else's page. Either choose a new slug or use --update from the original source directory that holds the matching ownership state.

Can I publish private or internal content with this tool?

No. Everything published is public on the internet, so you must not upload secrets, credentials, customer data, internal logs, or private company material. Inspect the content before publishing since the tool cannot classify files.