Agent skill

Octo HTML

by Mininglamp-OSS in Mininglamp-OSS/octo-cli

HTML docs domain (octo-doc) — create and govern self-contained interactive HTML documents, immutable versions, drafts, sharing, media, comments, and agent element edits.

Apache-2.0Auto-check passedFrontend & Design

Install Octo HTML

skills CLI
$ npx skills add Mininglamp-OSS/octo-cli --skill octo-html -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Mininglamp-OSS/octo-cli octo-html --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Mininglamp-OSS/octo-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/octo-html .claude/skills/octo-html && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
octo-html
GitHub stars
918
Token cost
~4.2k tokens
SKILL.md length
1,753 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
Apache-2.0

At a glance

HTML docs domain (octo-doc) — create and govern self-contained interactive HTML documents, immutable versions, drafts, sharing, media, comments, and agent element edits.

  • Works in 6 steps: Create and publish → Author drafts → Sharing and grants → …
  • Tasks that involve HTML artifacts
  • SKILL.md covers Document-reference contract, Auth & space, 1. Create and publish and 2. Author drafts, plus 6 more sections
  • Needs OCTO_BOT_TOKEN

What it does

Octo HTML is an agent skill from Mininglamp-OSS/octo-cli. HTML docs domain (octo-doc) — create and govern self-contained interactive HTML documents, immutable versions, drafts, sharing, media, comments, and agent element edits. Bots cannot delete documents. This is a DIFFERENT backend from the octo-docs (CRDT/Yjs) domain. Load after octo-shared.

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering HTML artifacts. The repository describes itself as: Metadata-driven CLI for AI Agent Bots — 48 operations across 7 domains, structured JSON envelope I/O, zero interactive prompts. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve HTML artifacts

Example prompts

  • “/octo-html”

Requirements

  • A credential in OCTO_BOT_TOKEN

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Create and publish
  2. Author drafts
  3. Sharing and grants
  4. Media assets
  5. Comments
  6. Agent element edit and reply

What it can do on your machine

Read from SKILL.md and the folder at commit 6d21f11. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OCTO_BOT_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Octo HTML loads about 4.2k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,753 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Mininglamp-OSS/octo-cli at commit 6d21f11, republished under its Apache-2.0 licence (© Mininglamp-OSS). 1,753 words, ~4,220 tokens.

Download SKILL.mdSave it as .claude/skills/octo-html/SKILL.md (or your agent's skills folder).
name
octo-html
description
HTML docs domain (octo-doc) — create and govern self-contained interactive HTML documents, immutable versions, drafts, sharing, media, comments, and agent element edits. Bots cannot delete documents. This is a DIFFERENT backend from the `octo-docs` (CRDT/Yjs) domain. Load after octo-shared.
version
0.3.0

octo-html — interactive HTML documents

This is NOT the octo-docs body-editing domain. octo-cli html … talks to octo-doc, where a document is a self-contained HTML page published as immutable versions. octo-cli docs … talks to the separate CRDT/Yjs backend.

All commands call $OCTO_API_BASE_URL/docs-html/v1/* and return the standard {ok, identity, data, ...} success envelope.

Document-reference contract

  • Canonical create has no document reference. Omit slug and provide html. The CLI generates idempotency_key; an explicit key is optional. A display name belongs in meta.title; it is metadata, not identity.
  • Save data.slug from the response. New documents always return data.doc_id and data.slug, with data.slug == data.doc_id, whether mounted or unmounted. Use data.slug for every later operation.
  • Legacy documents keep their old reference. For an old document, use its legacy slug wherever this skill says <doc-ref>.
  • No alias identity and no same-name republish. Creating again with the same meta.title creates a different document. To publish another version, supply the saved data.slug in the server's legacy-named slug field and set --version to the version read with html source plus one.
  • Do not infer a mode from mount_type, registered, status, or whether data.doc_id is non-empty. registered and status report operational state, not identity.

Query and JSON-body fields remain named slug for wire compatibility. Put the saved document reference in them. Path help displays <doc-ref>, and old legacy slugs are accepted. The CLI does not persist the reference.

Minimum rollout dependency: this contract requires the canonical-create server changes in octo-docs-backend#166 and octo-docs-html#33 to be merged and deployed before this CLI is released. Source reads and guarded bot updates also require octo-docs-html#34. The HTML backend will be deployed first. The CLI release and rollout of its updated skills follow only after the source endpoint and publish guard are deployed and verified on every HTML-serving instance. Do not release this workflow during a mixed old/new backend rollout.

If html source unexpectedly returns a route-level 404, check the same reference with octo-cli html get <doc-ref> using the same identity and gateway. If metadata is readable, the document exists: report that the source endpoint is unavailable and the backend deployment or gateway routing needs checking. Do not report the document as missing or create a replacement. If both reads fail, a 404 alone cannot distinguish a missing/inaccessible document from a deployment problem; retain the reference and report the uncertainty. Stop this update until source access is restored. Do not infer a version from metadata, publish without a version, or switch endpoints to bypass the guard. Once the backend is ready, recover actual 409/428 version errors autonomously as described below.

Auth & space

  • Authenticate with a stored bot profile (--profile / --bot-id) or OCTO_BOT_TOKEN; confirm the selected identity with octo-cli config show.
  • Do not pass --space. octo-doc resolves identity and space server-side.
  • Write operations require author/write capability. Reads need at least reader capability; backend failures are normalized into the CLI's {ok:false,error:{type,code,message,hint,detail}} envelope.

1. Create and publish

Bots cannot delete documents, even as author, owner, or admin. Do not run octo-cli html rm <doc-ref> or use docs delete / raw api DELETE as an alternative. Ask a human with document admin permission to delete it in Octo. This includes cleanup of test documents and applies to canonical IDs and legacy slugs. Creating, publishing versions, editing, and permitted asset/comment operations are unchanged.

html rm targets /docs-html/v1/docs/{doc_id}, a different service entry from the docs-backend /v1/bot/docs/octo-doc/:octoDocSlug deletion route. Do not infer that one route's deployment proves the other's enforcement, and do not probe the other route as a workaround.

Documents are declarative: no JavaScript. The backend rejects any publish or draft whose HTML carries script, with 400 and the stable code html_contains_javascript. This is not advisory — there is no flag to opt out. When generating a document, never emit:

  • <script> elements (including inside <svg>),
  • on* event-handler attributes (onclick, onload, onerror, …),
  • javascript: / vbscript: / scriptable data: URLs in href, src, xlink:href, action, formaction, object[data], or a non-empty srcdoc.

Express interaction with CSS instead — :hover, :target, :checked + sibling selectors, <details>/<summary>, transitions and animations all work and cover most of what a document needs. Do not assume script is merely inert: the host application embeds documents in a sandboxed iframe, but the document's own version URL serves the stored HTML as a top-level page, so script that got stored would execute for every reader who opens that link. CSS, inline style, <iframe>, <noscript> and <meta http-equiv=refresh> are all still allowed.

On rejection the error details.violations lists every offending construct with its kind, tag, attr and 1-based line. Fix all of them in one pass — the list is complete (capped at 50, with details.truncated set when it overflows). Do not retry the same document unchanged, and do not try to work around the gate by encoding or splitting the script.

bash
# Canonical create: no --slug. The CLI generates the idempotency key.
octo-cli html publish --data '{"html":"<html><body><h1>Runbook</h1></body></html>","meta":{"title":"Runbook"},"mount_type":"group","group_no":"<group_no>"}'
# → data: { doc_id, slug, version, url, share_url, size, aids,
#           merged_comments, registered, status }
# Save data.slug; for this new document data.slug == data.doc_id.

# Unmounted creation follows the same identity contract and also gets doc_id.
octo-cli html publish --data '{"html":"<html><body><h1>Private draft</h1></body></html>","meta":{"title":"Private draft"}}'

# Read HTML and its version together, then edit data.html.
octo-cli html source <doc-ref>
# → data: { slug, version, html }
# Publish version 2 only if the source read returned version 1.
# Keep the wire field name `slug` and omit
# idempotency_key. Pass ONLY a slug the server returned earlier: an unregistered
# slug does not create a canonical document — it produces a legacy unregistered
# one that never appears in the sidebar file list. Never invent a slug.
octo-cli html publish --version 2 --data '{"slug":"<doc-ref>","html":"<html><body><h1>Runbook v2</h1></body></html>","meta":{"title":"Runbook"}}'

# An explicit --idempotency-key <same-operation-key> is supported only for
# retrying this exact creation operation. The CLI-generated key is created once
# per invocation and the HTTP retry loop reuses the same serialized request.
# Reusing a key with different HTML returns the old document and discards the
# new HTML. Once its document is deleted, that key is unusable.
#
# UNATTENDED CALLERS: supply your own stable --idempotency-key and persist it
# before the call. A generated key lives only for that invocation, so if a
# timeout or 5xx leaves the outcome unknown, a plain re-run creates a SECOND
# document without returning the first one's reference. Bots must not delete
# documents as cleanup. With your own key the re-run resumes the same
# creation. A failed create also reports the key it used in the error envelope's
# detail (and hint), so an ambiguous failure stays recoverable either way.

# List, inspect, and list versions.
octo-cli html list
octo-cli html get <doc-ref>
octo-cli html versions <doc-ref>

html list returns the backend's offset envelope as data plus _pagination (total, page, page_size). It has no cursor flags or --page-all support.

Mounts (group, space, or thread) control placement/registration only. For group, pass group_no; for thread, pass thread_id. They do not choose the document-reference format.

WITHOUT mount_type the backend skips docs-backend registration, so the HTML never shows up in the sidebar file list — this is the #1 "my doc didn't appear" gotcha. An unmounted document still receives a canonical doc_id; registration and identity are separate concerns.

Concurrent edits and the existing --version flag

Before editing an existing HTML document, run octo-cli html source <doc-ref>. Retain data.html and data.version from that same response. It reads GET /docs-html/v1/docs/{doc-ref}/source and returns the full stored HTML without the viewer overlay. To inspect a fixed historical source, use octo-cli html source <doc-ref> --version 7; omit --version to read latest. html get only returns metadata; do not pair a separately fetched version number with older HTML.

--version is the new output version. If the source read was version N, edit that source and publish with --version N+1 (a concrete integer, such as --version 2 above). The server's concurrency guard requires this value to match its current latest version + 1. Updates must not use omitted or zero version, because automatic allocation cannot detect a stale edit. First publication can still omit the flag. No new CLI parameter is needed.

HTTP 428 / version_required means the update omitted its output version. HTTP 409 / version_conflict means the requested version is stale or skips past the next version. The backend's error.details contains version, latest_version, next_version, and source_path; in CLI output these are preserved under error.detail.error.details. Read that source, inspect others' changes, and reapply the intended edit before submitting its version plus one.

Show full SKILL.md (682 more words)Show less
Recover version errors autonomously

The bot MUST recover from version_conflict and version_required within the same task. Do not end the task by reporting the raw version error to the user or ask the user to perform a routine reread/retry. CLI exit code 2 is a tool result for the bot to handle, not the final answer to the user. Only these specific version error codes trigger this recovery workflow.

  1. Keep the original source, the intended edit, and the same document reference.
  2. Run octo-cli html source <doc-ref> again without --version. Retain the fresh data.html and data.version together; the version and fixed source_path in the earlier error may already be outdated.
  3. Compare the original source, your proposed edit, and the fresh source. Reapply only the user's intended changes to the fresh HTML, preserving concurrent edits. If the requested result is already present, verify it and report completion without publishing a duplicate version.
  4. Publish the newly merged HTML to the same --slug, with the fresh version plus one. Do not create a new document or reuse a create idempotency_key for this update.
  5. If another version error occurs, repeat from step 2. Make up to three recovery attempts after the initial rejection; each attempt must reread and merge again. This is a bot workflow, not a CLI HTTP retry of the same body.
  6. After a successful publish, verify the returned version's source and report the completed update and document URL. Mark an edit/comment as applied only after verifying that it was published.

Involve the user only when overlapping changes have incompatible meanings that cannot be resolved from their request, another error prevents completion, or all three recovery attempts still conflict. Explain the specific unresolved change or ongoing contention instead of simply forwarding a version error.

Never just increase --version and resend stale HTML. Do not switch to publication through drafts or element replacement to bypass a rejected update; draft promotion and element replacement do not substitute for guarded full-document publishing. Element replacement's base_version locates source content; it is not this publish precondition.

2. Author drafts

A draft is an author-only working slot and does not mint an immutable version until promoted.

bash
# Create a canonical draft without a document reference. Save response data.slug.
octo-cli html draft create --html '<html><body><h1>WIP</h1></body></html>'

octo-cli html draft save <doc-ref> --data '{"html":"<html><body><h1>WIP</h1></body></html>"}'
octo-cli html draft promote <doc-ref>

3. Sharing and grants

bash
# Mint/rotate or revoke a bearer share code.
octo-cli html share <doc-ref>
octo-cli html unshare <doc-ref>

# Grant/list/revoke named-reader access.
octo-cli html grant add <doc-ref> --uid <uid> --role reader
octo-cli html grant list <doc-ref>
octo-cli html grant rm <doc-ref> <uid>

4. Media assets

bash
octo-cli html asset ls <doc-ref>
octo-cli html asset add <doc-ref> --file ./chart.png
octo-cli html asset rm <doc-ref> <sha256>

5. Comments

The wire parameter remains slug; pass the saved document reference.

bash
octo-cli html comment list --slug <doc-ref> [--version all]
octo-cli html comment add --data '{"slug":"<doc-ref>","text":"Please clarify this","anchor":{"kind":"element","aid":"<content-hash>"}}'

html comment list likewise preserves offset metadata in _pagination; it has no cursor flags or --page-all support.

6. Agent element edit and reply

bash
# Read one stamped artifact (version 0 or omitted means latest).
octo-cli html element get --data '{"slug":"<doc-ref>","aid":"<content-hash>"}'

# Replace exactly one safe top-level element and publish a new version.
octo-cli html element replace --data '{"slug":"<doc-ref>","aid":"<content-hash>","new_html":"<section>updated body</section>"}'

# Reply to a comment thread with an optional applied/partial/question verdict.
octo-cli html reply --data '{"slug":"<doc-ref>","parent_id":"<comment-root-id>","text":"Done.","status":"applied"}'

To preserve comment anchors, prefer narrow element replacements; avoid changing an element's tag or nearby heading unless necessary.

Errors

  • 428 VALIDATION_ERROR, with error.detail.error.details.code=version_required — a bot update omitted its output version or sent zero. Read with html source, edit that source, then publish its version plus one autonomously using the recovery workflow above; do not stop at the tool error.

  • 409 CONFLICT, with error.detail.error.details.code=version_conflict — the output version is stale or skips ahead. Read the latest source and reapply the intended edit while preserving others' changes. Never just increase --version and resend stale HTML. Both errors exit with code 2; the backend recovery hint is preserved at error.detail.error.hint and version/source fields at error.detail.error.details. Complete the recovery workflow above before reporting the result to the user.

  • 403 bot_delete_forbidden — terminal bot-deletion policy denial, including already-deleted retries on the docs-backend routes. Do not retry, change roles/identity/Space, or switch endpoints; ask a human document admin to delete it. This is not a successful deletion or a missing-membership problem.

  • 401 / 403 — missing or insufficient capability.

  • 404 — the requested document, comment, or aid may be missing or inaccessible. A route-level 404 from html source can instead indicate an unavailable source endpoint. Follow the rollout check above before diagnosing the document as missing: readable metadata confirms it exists but is never a source/version fallback. Do not create a replacement document or publish without the guard.

  • 400 html_contains_javascript — the published or draft HTML carries JavaScript (see the no-JavaScript rule in §1). details.violations names every offending construct with its kind / tag / attr / line; regenerate the document without script rather than retrying it unchanged.

  • Element replacement rejects multiple top-level elements, scripts/styles, inline event handlers, and javascript: URLs.

Schema lookup

bash
octo-cli schema --list html
octo-cli schema html.source
octo-cli schema html.publish
octo-cli schema html.element.replace
octo-cli schema html.reply

© Mininglamp-OSS, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/octo-html of Mininglamp-OSS/octo-cli.

Open the folder on GitHubat commit 6d21f11

Compare with similar skills

Octo HTML next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Octo HTML compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Octo HTML this skillMininglamp-OSS/octo-cli918—~4.2kAutomated safety check: PassApache-2.0
Paperclip Pagepaperclipai/paperclip99k—~1kAutomated safety check: PassMIT
Pretty Pagealexknowshtml/claude-skills149—~2.2kAutomated safety check: NotesNone
QA Handoffjoshukraine/dotfiles429—~4.1kAutomated safety check: PassMIT
LobeHub Interactive Prototypelobehub/lobehub83k—~1.6kAutomated safety check: PassCustom licence
Openkb Deck NeonVectifyAI/OpenKB4.8k1 repos~4.3kAutomated safety check: PassApache-2.0

Similar skills

  • Paperclip Page

    paperclipai/paperclip

    Publish static HTML pages and asset folders to the Paperclip S3/CloudFront page host.

    99k GitHub stars~1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Pretty Page

    alexknowshtml/claude-skills

    Convert markdown to a beautifully styled, shareable HTML page and upload to S3-compatible storage

    149 GitHub stars~2.2k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check: notes
  • QA Handoff

    joshukraine/dotfiles

    Generate a hands-on QA testing guide as a self-contained HTML page — for Rails apps or static (Hugo) sites.

    429 GitHub stars~4.1k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.

    83k GitHub stars~1.6k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Openkb Deck Neon

    VectifyAI/OpenKB

    A skill your agent uses when the user asks the openkb chat to make a deck / slide presentation / PPT / slides / 演示稿 / 幻灯片 from their compiled KB content AND wants a dark, high-tech, neon / glow /…

    4.8k GitHub starsUsed in 1 repo~4.3k tokens
    Frontend & DesignAuto-check passed
  • Build, review, debug, reverse-engineer data sources for, and package FongMi/WebHome custom homepage single-file HTML.

    1.7k GitHub stars~3.8k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from Mininglamp-OSS/octo-cli

All 11 skills in this repo
  • Octo Loop

    Mininglamp-OSS/octo-cli

    A skill your agent uses when operating the Octo Loop control plane through the octo-cli loop commands: reading or writing Fleet tasks, comments, metadata, projects, and labels; dispatching work to…

    918 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Octo Summary

    Mininglamp-OSS/octo-cli

    Read, create, find, and cite Octo summaries through octo-cli.

    918 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Octo Docs

    Mininglamp-OSS/octo-cli

    Docs domain — create and govern documents, read and incrementally edit a doc's live body, read and edit spreadsheets including structural row/column edits, find & replace, cells, layout, shared…

    918 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Octo Drive

    Mininglamp-OSS/octo-cli

    Octo Drive — spaces, folders, file upload/download, online-document mounts, share links, invites, IM-attachment transfer.

    918 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Octo Files

    Mininglamp-OSS/octo-cli

    File operations (upload/download, presigned S3 credentials) plus bot housekeeping (register, set-commands, user-info, space-members, typing, heartbeat).

    918 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Octo Mail

    Mininglamp-OSS/octo-cli

    OCTO Agent Mail operations for reading, searching, policy-aware sending, preparing drafts, and checking delivery status exclusively through octo-cli.

    918 GitHub stars~3.2k tokensUpdated today
    Auto-check passed

Questions about Octo HTML

What does Octo HTML do?

HTML docs domain (octo-doc) — create and govern self-contained interactive HTML documents, immutable versions, drafts, sharing, media, comments, and agent element edits. Octo HTML is an agent skill from Mininglamp-OSS/octo-cli. HTML docs domain (octo-doc) — create and govern self-contained interactive HTML documents, immutable versions, drafts, sharing, media, comments, and agent element edits.

When should I use Octo HTML?

Octo HTML fits situations like: tasks that involve HTML artifacts.

How do I install Octo HTML in Claude Code?

Run `npx skills add Mininglamp-OSS/octo-cli --skill octo-html -a claude-code`. Or copy the skill folder (skills/octo-html in Mininglamp-OSS/octo-cli) into .claude/skills/octo-html in your project. Claude Code loads it when a task matches its description.

How do I install Octo HTML in Codex?

Run `npx skills add Mininglamp-OSS/octo-cli --skill octo-html -a codex`. Or copy the skill folder (skills/octo-html in Mininglamp-OSS/octo-cli) into .agents/skills/octo-html in your project. Codex loads it when a task matches its description.

Can I use Octo HTML in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mininglamp-OSS/octo-cli --skill octo-html -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/octo-html, .gemini/skills/octo-html, .github/skills/octo-html and .opencode/skills/octo-html in your project.

What does Octo HTML need to run?

Going by SKILL.md and its folder, Octo HTML needs credentials named OCTO_BOT_TOKEN. Our summary lists: A credential in OCTO_BOT_TOKEN.

Does Octo HTML access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Octo HTML safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Octo HTML use?

Octo HTML is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Octo HTML use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Octo HTML?

Skills that share tags, products or a category with Octo HTML: Paperclip Page (paperclipai/paperclip, 99k stars), Pretty Page (alexknowshtml/claude-skills, 149 stars), QA Handoff (joshukraine/dotfiles, 429 stars) and LobeHub Interactive Prototype (lobehub/lobehub, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Octo HTML?

Mininglamp-OSS (a GitHub organization) maintains it in Mininglamp-OSS/octo-cli, which has 918 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 10, 2026.

Source: Mininglamp-OSS/octo-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.