Agent setup

Let agents publish HTML, without exposing tokens.

Use the hosted MCP when the agent supports remote tools. Use the GitHub repo or skill when the agent is running in a coding workspace. In every path, keep the upload token in a secret store or environment, not in chat.

Copy this

Install HTMLer with one agent prompt

Paste this into Codex, Claude Code, or another coding agent once. The agent should install the best available path and remember how to publish HTML artifacts.

Install HTMLer for me.
HTMLer is Faros's private service for publishing self-contained HTML artifacts as Slack-ready links.

Read https://htmler.faros.ai/agent-setup and install HTMLer for this agent.
If you cannot install skills, connect MCP, or run local commands in this chat, tell me to use Codex, Claude Code, or another coding agent that can.

Security rule: do not ask me to paste HTMLER_TOKEN into the conversation. Use 1Password, connector auth, a workspace secret, or an environment variable.

Preferred flow:
1. If MCP is available, connect https://htmler.faros.ai/mcp with bearer auth from HTMLER_TOKEN.
2. When you create a self-contained HTML artifact, call create_curl_upload_url, save the HTML to a local .html file, curl the returned uploadUrl with Content-Type: text/html, and return the JSON response's url field.
3. If MCP is unavailable but skills are supported, install the HTML-only skill from https://htmler.faros.ai/htmler-upload.SKILL.md.
4. Return links, not upload instructions, whenever you have token and file access.

If HTMLer fails, retry one safe check once, then report the HTTP status, response body, and request/log timestamp without printing secrets.
Recommended

Hosted MCP for agent upload URLs

Use this for Claude, ChatGPT, Codex, or another agent runtime that can connect to a remote MCP server and run shell commands.

Security rule: do not paste the htmler token into the conversation. Configure it as connector auth, a workspace secret, or an environment variable supplied by the agent runtime.

01Add server

Remote MCP URL: https://htmler.faros.ai/mcp

02Add auth

Use bearer auth from the secret named HTMLER_TOKEN.

03Upload file

Call create_curl_upload_url, save HTML locally, curl the returned URL, and return the response url.

Agent instruction

When you create a self-contained HTML artifact for a Faros teammate, call create_curl_upload_url from the htmler MCP server. Save the generated HTML to a local .html file, curl the returned uploadUrl with Content-Type: text/html, then return the JSON response's url field. Do not send the full HTML through MCP tool arguments unless direct upload is unavailable. Never ask the user to paste HTMLER_TOKEN into the conversation.

Installable skills

Use this for Codex, Claude Code, or another skill-aware agent. The HTML-only skill is the safest default for generated artifacts; the share skill also covers PDFs and arXiv explainers.

# Codex, HTML upload only
mkdir -p ~/.codex/skills/htmler-upload
curl -fsSL https://htmler.faros.ai/htmler-upload.SKILL.md -o ~/.codex/skills/htmler-upload/SKILL.md

# Claude Code, HTML upload only
mkdir -p ~/.claude/skills/htmler-upload
curl -fsSL https://htmler.faros.ai/htmler-upload.SKILL.md -o ~/.claude/skills/htmler-upload/SKILL.md

Broader share skill

curl -fsSL https://htmler.faros.ai/htmler-share.SKILL.md

Coding agents using GitHub

Use this when the agent can work from a repo checkout or wants the fallback upload script.

  1. Point the agent at https://github.com/faros-ai/htmler.
  2. Ask it to install the HTML-only skill from skills/htmler-upload, or use the script directly.
  3. Provide HTMLER_TOKEN through the workspace secret manager, shell environment, or 1Password injection.
git clone https://github.com/faros-ai/htmler.git
cd htmler
node skills/htmler-upload/scripts/upload-html.mjs ./artifact.html --format json

1Password-backed local runs

Prefer a wrapper that injects the token only into the process environment. The token should not be committed, printed, or stored in agent instructions.

op run --env-file .env.htmler -- node skills/htmler-upload/scripts/upload-html.mjs ./artifact.html --format markdown

The env file should reference the 1Password item, not contain a literal secret value.

Machine-readable setup

Agents can read the terse setup doc and discovery JSON without scraping this page.

curl -fsSL https://htmler.faros.ai/agent-setup
curl -fsSL https://htmler.faros.ai/.well-known/agent.json

Direct API fallback

Use the API only when MCP and the skill are unavailable. The same token handling rules apply.

curl -X POST https://htmler.faros.ai/api/pages   -H "authorization: Bearer $HTMLER_TOKEN"   -H "content-type: text/html"   --data-binary @artifact.html