Agent skill

Page Serve

by yonatangross in yonatangross/orchestkit

Hand a human a rendered HTML page at a stable HTTPS URL. An agent skill from yonatangross/orchestkit.

MITAuto-check passedFrontend & Design

Install Page Serve

skills CLI
$ npx skills add yonatangross/orchestkit --skill page-serve -a claude-code

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

GitHub CLI
$ gh skill install yonatangross/orchestkit page-serve --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/yonatangross/orchestkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/page-serve .claude/skills/page-serve && 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
page-serve
GitHub stars
292
Token cost
~1.3k tokens
SKILL.md length
639 words
Files
5 (incl. scripts)
Skills in repo
108
Repo updated
First seen
Licence
MIT

At a glance

Hand a human a rendered HTML page at a stable HTTPS URL. An agent skill from yonatangross/orchestkit.

  • An agent produced a page a human is meant to open: glyph explainers
  • SKILL.md covers The contract, Usage, Modes and Failure modes, all loud, plus 4 more sections
  • Runs Shell scripts from its folder; calls python3
  • Tasks that involve HTML artifacts

What it does

Page Serve is an agent skill from yonatangross/orchestkit. Hand a human a rendered HTML page at a stable HTTPS URL. Registers a portless route for a file or directory (https://NAME.localhost/, never a :port), prints the URL, optionally screenshots it, and tears it down on stop. Use when an agent produced a page a human is meant to open: glyph explainers, playgrounds, decision pages, docs previews. Replaces ad hoc python http.server plus alias patterns that leave servers alive.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `scripts/serve.sh`, `scripts/status.sh` and `scripts/stop.sh`). Compatibility notes: Claude Code 2.1.277+

It sits in Frontend & Design, covering HTML artifacts. It works with Python. The repository describes itself as: The Complete AI Development Toolkit for Claude Code. 106 skills, 36 agents, 171 hooks. Install ork for stable (v9.x), or ork-alpha for the v10 line, which ships daily. The licence is MIT.

When your agent uses it

  • An agent produced a page a human is meant to open: glyph explainers
  • Tasks that involve HTML artifacts

Example prompts

  • “/page-serve”

Requirements

  • Python 3
  • A Bash shell
  • Compatibility (from SKILL.md): Claude Code 2.1.277+

What it can do on your machine

Read from SKILL.md and the folder at commit e4ff8d9. 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

    Ships 3 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    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 no API keys, tokens, secrets or passwords.

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

  • Compatibility

    Claude Code 2.1.277+

    From compatibility in the SKILL.md frontmatter.

Context cost

Page Serve loads about 1.3k tokens when it runs. Until then it costs about 108 tokens; SKILL.md has 639 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from yonatangross/orchestkit at commit e4ff8d9, republished under its MIT licence (© yonatangross). 639 words, ~1,342 tokens.

Download SKILL.mdSave it as .claude/skills/page-serve/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
page-serve
description
Hand a human a rendered HTML page at a stable HTTPS URL. Registers a portless route for a file or directory (https://NAME.localhost/, never a :port), prints the URL, optionally screenshots it, and tears it down on stop. Use when an agent produced a page a human is meant to open: glyph explainers, playgrounds, decision pages, docs previews. Replaces ad hoc python http.server plus alias patterns that leave servers alive.
compatibility
Claude Code 2.1.277+
argument-hint
[path] [--name slug] [--screenshot|--no-screenshot] | stop [name|--all] | status [--json]
user-invocable
true
disable-model-invocation
false
context
inherit
metadata.category
devops
metadata.milestone
M166
metadata.upstream-packages
portless, agent-browser
metadata.version
1.0.0
metadata.author
OrchestKit
metadata.complexity
low

page-serve, give a human a URL

An agent that renders a page for a human needs a way to hand it over. The pattern that grew in sessions was python3 -m http.server 8991 plus portless alias <name> 8991 typed by hand: no record of the process, no stop, servers outliving the session, and one measured night (2026-09-06) where the same session did it twice and the server was still up the next morning. This skill is that pattern with a state file, a stop, a status, and a loud failure when the URL contract cannot be met.

The contract

  • The URL is https://<name>.localhost/<file>. No port, ever. portless's 443 service owns the port; a :1355 or :8991 in the URL is the pre-service fallback and the skill refuses rather than emit one.
  • One static server per name, on a free loopback port, rooted at the file's directory (so sibling assets resolve) or at the directory you pass.
  • State in .claude/state/page-serve/<name>.json: root, file, port, pid, url, time. status re-measures pid, route, and HTTP on every call; it never trusts the file.
  • Idempotent per name: same name + same root reuses the live server; a different root replaces it; --force on the alias overrides a stale route with the same name.

Usage

page-serve docs/playgrounds/roadmap-2026-09-07.html
page-serve docs/playgrounds/ --name playgrounds
page-serve <path> --screenshot          # agent-browser, returns the png path
page-serve status [--json]
page-serve stop <name>
page-serve stop --all

serve.sh prints url=, name=, port=, pid=, http=, optional screenshot=, and the exact stop= line to paste. Put the url= line in your reply's Open section.

Modes

InvocationScriptWhat happens
<path> [flags]scripts/serve.shprerequisites, server, alias, state, curl check, optional screenshot
status [--json]scripts/status.shone line per served page: server up/dead, route registered/missing, HTTP code
stop <name> or stop --allscripts/stop.shalias removed, server killed, state and screenshot deleted; every step reports

Failure modes, all loud

ConditionExitWhat it says
portless not installed2install line, then portless service install
443 service not responding2portless service status, the operator's launchctl kickstart line, and "do not fall back to a :port URL"
server did not bind3port and log path
alias registration failed2portless's own message, server cleaned up
route up but URL not 2004code, curl rc, and portless list; server left running for inspection
screenshot failed0reported on stderr, page still served, screenshot= line omitted

A page that "served" but does not answer 200 through the proxy is exit 4, not 0, so a caller that only reads the exit code cannot report a dead link as done.

Show full SKILL.md (236 more words)Show less

Screenshot

With agent-browser installed the default is to take one (--no-screenshot to skip; --screenshot to insist and get a stderr line if it is missing). The png lands beside the state file. The screenshot is evidence the page rendered, not proof it rendered correctly: read the image before claiming the page looks right (the glyph skill's rule 1).

What this is not

  • Not a dev server. For a framework app with hot reload use dev, which wraps the app's own dev command in portless. This skill serves static files.
  • Not a publisher. Nothing leaves the machine; .localhost resolves locally only.
  • Not a docs-site deploy. Lab pages under docs/site/public/lab/ still ship through the docs-site build; this skill is for the hand-over before or beside that.

Retiring the old pattern (#3900)

Any skill or page that tells an agent to run python3 -m http.server or to type portless alias by hand should say page-serve <path> instead. As of this skill's first release, grep -rln 'http.server' src/skills is empty; the pattern lived in session habits and in hq-ext, so the sweep is glyph, playground, visualize-plan and expect (the four that hand a human a page) plus hq-ext's glyph.

  • dev, the dev-loop sibling for framework apps (portless wrapping a dev command)
  • portless (the reference skill, model-invoked): service install, LAN mode, gotchas
  • glyph, visualize-plan, playground, the producers of pages this serves
  • expect, browser verification against the URL this prints

© yonatangross, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts) in src/skills/page-serve of yonatangross/orchestkit.

  • SKILL.md
  • scripts/serve.sh
  • scripts/status.sh
  • scripts/stop.sh
  • test-cases.json

Open the folder on GitHubat commit e4ff8d9

Compare with similar skills

Page Serve 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.

Page Serve compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Page Serve this skillyonatangross/orchestkit292—~1.3kAutomated safety check: PassMIT
Checking A Pageawss1i/assay1041 repos~712Automated safety check: PassMIT
Reimagine It AuditKayforkind/reimagine-it205—~756Automated safety check: PassMIT
LobeHub Interactive Prototypelobehub/lobehub83k—~1.6kAutomated safety check: PassCustom licence
DocsPrefectHQ/fastmcp28k—~1kAutomated safety check: PassApache-2.0
Paperclip Pagepaperclipai/paperclip99k—~1kAutomated safety check: PassMIT

Similar skills

  • Checking A Page

    awss1i/assay

    Check that a web page you wrote or changed actually works, by opening it in a browser and driving every control on it.

    104 GitHub starsUsed in 1 repo~712 tokens
    Frontend & DesignAuto-check passed
  • Reimagine It Audit

    Kayforkind/reimagine-it

    Design Health — runs 19 deterministic quality checks on HTML output.

    205 GitHub stars~756 tokensUpdated 4 days ago
    Media & CreativeAuto-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
  • Docs

    PrefectHQ/fastmcp

    Write or revise a page under docs/ for gofastmcp.com. An agent skill from PrefectHQ/fastmcp.

    28k GitHub stars~1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • 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
  • 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

More from yonatangross/orchestkit

All 108 skills in this repo
  • API Design

    yonatangross/orchestkit

    API contract design for REST and GraphQL, covering resource shape, URL and header versioning with deprecation windows, RFC 9457 Problem Details error handling, and OpenAPI specs.

    292 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Architecture Decision Record

    yonatangross/orchestkit

    ADR templates in the Nygard format with context, decision, consequences, and alternatives.

    292 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Audit Full

    yonatangross/orchestkit

    Single-pass codebase analysis leveraging a 1M-token context window for comprehensive security scanning, architecture review, and dependency auditing.

    292 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Code Review Playbook

    yonatangross/orchestkit

    Structured review processes, conventional comments, language-specific checklists, and feedback templates.

    292 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Create PR

    yonatangross/orchestkit

    Creates GitHub pull requests with pre-flight validation, conventional title formatting, and structured summary generation.

    292 GitHub stars~4.5k tokensUpdated today
    Auto-check: notes
  • Explore

    yonatangross/orchestkit

    Multi-angle codebase exploration spawning 3-5 parallel agents for code structure, data flow, architecture patterns, and health assessment.

    292 GitHub stars~3.9k tokensUpdated today
    Auto-check: notes

Works with

Questions about Page Serve

What does Page Serve do?

Hand a human a rendered HTML page at a stable HTTPS URL. An agent skill from yonatangross/orchestkit. Page Serve is an agent skill from yonatangross/orchestkit. Hand a human a rendered HTML page at a stable HTTPS URL.

When should I use Page Serve?

Page Serve fits situations like: an agent produced a page a human is meant to open: glyph explainers; tasks that involve HTML artifacts.

How do I install Page Serve in Claude Code?

Run `npx skills add yonatangross/orchestkit --skill page-serve -a claude-code`. Or copy the skill folder (src/skills/page-serve in yonatangross/orchestkit) into .claude/skills/page-serve in your project. Claude Code loads it when a task matches its description.

How do I install Page Serve in Codex?

Run `npx skills add yonatangross/orchestkit --skill page-serve -a codex`. Or copy the skill folder (src/skills/page-serve in yonatangross/orchestkit) into .agents/skills/page-serve in your project. Codex loads it when a task matches its description.

Can I use Page Serve 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 yonatangross/orchestkit --skill page-serve -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/page-serve, .gemini/skills/page-serve, .github/skills/page-serve and .opencode/skills/page-serve in your project.

What does Page Serve need to run?

Going by SKILL.md and its folder, Page Serve needs a shell for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3; A Bash shell. Compatibility (from SKILL.md): Claude Code 2.1.277+.

Does Page Serve 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 Page Serve 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Page Serve use?

Page Serve is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Page Serve use?

About 1.3k tokens (SKILL.md is roughly 5.4k 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 Page Serve?

Skills that share tags, products or a category with Page Serve: Checking A Page (awss1i/assay, 104 stars), Reimagine It Audit (Kayforkind/reimagine-it, 205 stars), LobeHub Interactive Prototype (lobehub/lobehub, 83k stars) and Docs (PrefectHQ/fastmcp, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Page Serve?

yonatangross (a GitHub user) maintains it in yonatangross/orchestkit, which has 292 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 10, 2026.

Source: yonatangross/orchestkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.