Not in the top 1,000 by GitHub stars

YuniqueUnic/a2ui-ask

Interactive UI for AI agents — turn structured questions into browser forms.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2f8c78aea5b1

No earlier version was observed for comparison.

Compare on GitHub

skills/grill-with-docs/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2f8c78aea5b1

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 2f8c78aea5b1b73b5156de2e516846c0c4b04984

27GitHub stars
0stars in 7 days
2skills in this repository
0commits in 30 days

Heat

0.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 25, 202627

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

a2ui-ask

When your agent uses it

When the user must choose among options or fill in structured config, spawn a browser form (powered by schemaui Web UI, bound to 0.0.0.0), open the user's browser, and write the result to .schemaui/answers/. Never use a terminal/TUI prompt — the agent process has no TTY attachment. Supports rich content: figures on questions and answer options (Mermaid/SVG/Markdown via x-content / x-options) and a live Mermaid editor (x-control: mermaid). Trigger phrases: "give me a form", "ask me via form", "configure", "pick a deploy environment", "I need to choose", "grill me", "a2ui", "给我个表单", "配置一下", "用表单问我", "问我几个问题", "拷问我".

What it loads into context

Frontmatter

203 tokens

Always available to the agent

SKILL.md

5,704 tokens

When the skill is activated

Reference documents

9,774 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Prerequisite: the schemaui engine
  2. Non-negotiables
  3. Asking well (grill-me discipline, form edition)
  4. Grilling: which interview skill to use
  5. Question type → schema cheat sheet
  6. Picking the control: use the gallery
  7. Figures: when a picture answers faster than prose
  8. Steps
  9. Exit codes and fallback
  10. Theming: make the form match the project
  11. Raw CLI (when the scripts are unavailable)
  12. Sensitive input
  13. Past answers
  14. Examples
  15. License

Scripts executed separately

  • package.json
  • scripts/ask.ps1
  • scripts/ask.py
  • scripts/ask.sh
  • scripts/install.ps1
  • scripts/install.sh
  • tests/test_ask.py

Files

  • .github/workflows/ci.ymlasset1,533 bytes
  • .github/workflows/publish.ymlasset845 bytes
  • .gitignoreasset327 bytes
  • LICENSEasset1,068 bytes
  • README.ZH.mddoc10,545 bytes
  • README.mddoc10,740 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • SKILL.mdcore25,523 bytes
  • a2ui-ask-site.pngasset886,186 bytes
  • docs/controls-gallery.pngasset340,805 bytes
  • docs/mermaid-editor.pngasset188,240 bytes
  • docs/rich-options.pngasset220,224 bytes
  • docs/web-ui.pngasset362,846 bytes
  • examples/deployment-architecture.defaults.jsonasset136 bytes
  • examples/deployment-architecture.schema.jsonasset6,790 bytes
  • examples/ecommerce-main-image.defaults.jsonasset554 bytes
  • examples/ecommerce-main-image.schema.jsonasset7,273 bytes
  • examples/env-defaults.jsonasset130 bytes
  • examples/env-schema.jsonasset1,149 bytes
  • examples/feature-brief.defaults.jsonasset649 bytes
  • examples/feature-brief.schema.jsonasset8,509 bytes
  • examples/invoice-reimbursement.defaults.jsonasset489 bytes
  • examples/invoice-reimbursement.schema.jsonasset5,115 bytes
  • examples/seo-diagnosis.defaults.jsonasset528 bytes
  • examples/seo-diagnosis.schema.jsonasset6,172 bytes
  • examples/web-research-brief.defaults.jsonasset1,421 bytes
  • examples/web-research-brief.schema.jsonasset16,136 bytes
  • install.mddoc4,910 bytes
  • package.jsonruns693 bytes
  • prompts/ask-user.prompt.mddoc1,638 bytes
  • prompts/ask.prompt.mddoc9,654 bytes
  • scripts/ask.ps1runs10,848 bytes
  • scripts/ask.pyruns19,915 bytes
  • scripts/ask.shruns9,706 bytes
  • scripts/install.ps1runs6,937 bytes
  • scripts/install.shruns6,740 bytes
  • tests/test_ask.pyruns35,764 bytes
Read SKILL.md

# a2ui-ask — collect user input via a browser form (file output)

Interactive UI for AI agents: turn structured questions into browser forms. The
rendering engine is the `schemaui` binary (`schemaui web`) from
[YuniqueUnic/schemaui](https://github.com/YuniqueUnic/schemaui); this skill
wraps it with scripts that handle binding, browser wakeup, timeout, and the
file-output contract.

## Prerequisite: the schemaui engine

Check for the binary first: `command -v schemaui` (or just run the ask script —
it exits with code 3 when the engine is missing).

If missing, offer to install it — you can do this yourself, unattended:
View the complete source on GitHub

Skills included

  • a2ui-ask
  • grill-with-docs

Repository facts

License
MIT
Created
Sep 15, 2026
Last pushed
Sep 25, 2026
Forks
0
Open issues
1
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 9 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 215 signals by file

.github/workflows/publish.yml

  • Network accessline 14
    uses: actions/setup-node@v7         with:           registry-url: https://registry.npmjs.org
  • Network accessline 16
    registry-url: https://registry.npmjs.org
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]

README.ZH.md

  • Network accessline 17
    说明**(`x-content` / `x-options`),答案本身也可以是一张可编辑的 实时预览图(`x-control: "mermaid"`)。完整清单见 [`schemaui` 控件画廊](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json)
  • Network accessline 18
    实时预览图(`x-control: "mermaid"`)。完整清单见 [`schemaui` 控件画廊](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json) 与
  • Network accessline 19
    [`schemaui` 控件画廊](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json)
  • Network accessline 20
    与 [富内容画廊](https://github.com/YuniqueUnic/schemaui/blob/main/examples/rich-content.schema.json); [`examples/web-research-brief.schema.json`](./examples/web-research-brief.schema.json)
  • Network accessline 21
    [富内容画廊](https://github.com/YuniqueUnic/schemaui/blob/main/examples/rich-content.schema.json);
  • Network accessline 45
    1. **用浏览器表单,不用终端。** Agent 在本地拉起一个 Web UI(以    [schemaui](https://github.com/YuniqueUnic/schemaui) 为引擎),绑定
  • Network accessline 46
    [schemaui](https://github.com/YuniqueUnic/schemaui) 为引擎),绑定
  • Network accessline 69
    前置条件:`schemaui` 二进制(表单引擎, [YuniqueUnic/schemaui](https://github.com/YuniqueUnic/schemaui))。自动安装脚
  • Network accessline 70
    [YuniqueUnic/schemaui](https://github.com/YuniqueUnic/schemaui))。自动安装脚
  • Network accessline 78
    脚本优先从 GitHub 下载,**在国内访问不了 github.com 时自动回退到 [Gitee 镜像](https://gitee.com/Credhat/schemaui)**(tag 与文件名跟 GitHub 保持一
  • Network accessline 79
    [Gitee 镜像](https://gitee.com/Credhat/schemaui)**(tag 与文件名跟 GitHub 保持一
  • Network accessline 93
    **方式一:一行安装 (推荐,走 [skills.sh](https://skills.sh))**
  • Network accessline 103
    > 请帮我查找并自动安装 https://github.com/YuniqueUnic/a2ui-ask 这个 skill,clone
  • Network accessline 109
    # 全局(所有项目可用) git clone https://github.com/YuniqueUnic/a2ui-ask.git ~/.claude/skills/a2ui-ask
  • Network accessline 110
    git clone https://github.com/YuniqueUnic/a2ui-ask.git ~/.claude/skills/a2ui-ask
  • Network accessline 112
    git clone https://github.com/YuniqueUnic/a2ui-ask.git .claude/skills/a2ui-ask
  • Network accessline 129
    1. 脚本打印 `SCHEMAUI_URL=http://127.0.0.1:8787/` 并自动打开浏览器。
  • Network accessline 204
    - [linux.do](https://linux.do)

README.md

  • Network accessline 21
    an answer can _be_ a diagram via the live-preview `x-control: "mermaid"` editor. The full set lives in [`schemaui`'s controls gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json)
  • Network accessline 22
    The full set lives in [`schemaui`'s controls gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json) and
  • Network accessline 23
    [`schemaui`'s controls gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json)
  • Network accessline 24
    and [rich-content gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/rich-content.schema.json); [`examples/web-research-brief.schema.json`](./examples/web-research-brief.schema.json)
  • Network accessline 25
    [rich-content gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/rich-content.schema.json);
  • Network accessline 49
    1. **Browser form, not terminal.** The agent spawns a local Web UI    ([schemaui](https://github.com/YuniqueUnic/schemaui) as the engine) bound to
  • Network accessline 50
    ([schemaui](https://github.com/YuniqueUnic/schemaui) as the engine) bound to
  • Network accessline 75
    Prerequisite: the `schemaui` binary (the form engine, [YuniqueUnic/schemaui](https://github.com/YuniqueUnic/schemaui)). The
  • Network accessline 76
    [YuniqueUnic/schemaui](https://github.com/YuniqueUnic/schemaui)). The
  • Network accessline 84
    It downloads from GitHub and falls back to the [Gitee mirror](https://gitee.com/Credhat/schemaui) when github.com is
  • Network accessline 85
    [Gitee mirror](https://gitee.com/Credhat/schemaui) when github.com is
  • Network accessline 98
    **Option 1 — one line (recommended, via [skills.sh](https://skills.sh))**
  • Network accessline 108
    > Please find and install the skill at https://github.com/YuniqueUnic/a2ui-ask —
  • Network accessline 114
    # global (all projects) git clone https://github.com/YuniqueUnic/a2ui-ask.git ~/.claude/skills/a2ui-ask
  • Network accessline 115
    git clone https://github.com/YuniqueUnic/a2ui-ask.git ~/.claude/skills/a2ui-ask
  • Network accessline 117
    git clone https://github.com/YuniqueUnic/a2ui-ask.git .claude/skills/a2ui-ask
  • Network accessline 134
    1. The script prints `SCHEMAUI_URL=http://127.0.0.1:8787/` and opens your
  • Network accessline 218
    - [linux.do](https://linux.do)

SKILL.md

  • Network accessline 17
    Interactive UI for AI agents: turn structured questions into browser forms. The rendering engine is the `schemaui` binary (`schemaui web`) from [YuniqueUnic/schemaui](https://github.com/YuniqueUnic/schemaui); this skill
  • Network accessline 18
    rendering engine is the `schemaui` binary (`schemaui web`) from [YuniqueUnic/schemaui](https://github.com/YuniqueUnic/schemaui); this skill wraps it with scripts that handle binding, browser wakeup, timeout, and the
  • Network accessline 19
    [YuniqueUnic/schemaui](https://github.com/YuniqueUnic/schemaui); this skill
  • Network accessline 35
    Both default to a prebuilt-binary download (no toolchain needed) and support `--dry-run` / `-DryRun` to preview. They fetch from GitHub first and fall back to the [Gitee mirror](https://gitee.com/Credhat/schemaui) — same tags, same
  • Network accessline 36
    `--dry-run` / `-DryRun` to preview. They fetch from GitHub first and fall back to the [Gitee mirror](https://gitee.com/Credhat/schemaui) — same tags, same asset names — which is what makes them work from mainland China. If a user
  • Network accessline 37
    to the [Gitee mirror](https://gitee.com/Credhat/schemaui) — same tags, same
  • Network accessline 197
    read `examples/deployment-architecture.schema.json` (中文 — every option carries a diagram). The engine's own galleries, [`schemaui/examples/controls-gallery.schema.json`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-ga
  • Network accessline 198
    a diagram). The engine's own galleries, [`schemaui/examples/controls-gallery.schema.json`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json) and
  • Network accessline 199
    [`schemaui/examples/controls-gallery.schema.json`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json)
  • Network accessline 200
    and [`schemaui/examples/rich-content.schema.json`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/rich-content.schema.json), show every hint value and every figure surface side by side.
  • Network accessline 201
    [`schemaui/examples/rich-content.schema.json`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/rich-content.schema.json),
  • Network accessline 273
    > Form ready at http://localhost:8787 — I'll wait for you to fill it in. Your
  • Network accessline 322
    `.dark { … }` too, or dark mode keeps the default accent. schemaui ships a worked example to copy: [`examples/themes/midnight.css`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/themes/midnight.css).
  • Network accessline 324
    [`examples/themes/midnight.css`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/themes/midnight.css).
  • Network accessline 333
    `POST /api/v1/save|exit|validate|preview|render`) and can host any directory containing an `index.html` via `--frontend DIR` — schemaui's [`examples/frontend/`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/frontend/README.md)
  • Network accessline 334
    containing an `index.html` via `--frontend DIR` — schemaui's [`examples/frontend/`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/frontend/README.md) is the minimal scaffold. Reach for that only when CSS genuinely cannot expres
  • Network accessline 335
    [`examples/frontend/`](https://github.com/YuniqueUnic/schemaui/blob/main/examples/frontend/README.md)
  • Network accessline 354
    `--timeout` was given — that second line is how you learn the deadline without parsing the UI. Port 8787 busy → retry once with `--port 0` and parse the `http://…` line from stderr. A session that hits its deadline exits **4** and
  • Network accessline 355
    parsing the UI. Port 8787 busy → retry once with `--port 0` and parse the `http://…` line from stderr. A session that hits its deadline exits **4** and writes nothing; drop `--timeout` (or pass `0`) for no deadline at all. Optional
  • Network accessline 356
    `http://…` line from stderr. A session that hits its deadline exits **4** and
  • Network accessline 395
    MIT — see [LICENSE](https://github.com/YuniqueUnic/a2ui-ask/blob/main/LICENSE).

examples/deployment-architecture.schema.json

  • Network accessline 1
    {   "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 2
    "$schema": "http://json-schema.org/draft-07/schema#",

examples/ecommerce-main-image.schema.json

  • Network accessline 1
    {   "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 2
    "$schema": "http://json-schema.org/draft-07/schema#",

examples/env-schema.json

  • Network accessline 1
    {   "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 2
    "$schema": "http://json-schema.org/draft-07/schema#",

examples/feature-brief.schema.json

  • Network accessline 1
    {   "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 2
    "$schema": "http://json-schema.org/draft-07/schema#",

examples/invoice-reimbursement.schema.json

  • Network accessline 1
    {   "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 2
    "$schema": "http://json-schema.org/draft-07/schema#",

examples/seo-diagnosis.defaults.json

  • Network accessline 1
    {   "site_url": "https://example.com",
  • Network accessline 2
    "site_url": "https://example.com",

examples/seo-diagnosis.schema.json

  • Network accessline 1
    {   "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 2
    "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 9
    "type": "string",       "title": "网站地址",       "description": "完整 URL,例如 https://example.com;诊断会以此为准抓取页面。",
  • Network accessline 11
    "description": "完整 URL,例如 https://example.com;诊断会以此为准抓取页面。",
  • Network accessline 13
    "default": "https://example.com"

examples/web-research-brief.defaults.json

  • Network accessline 29
    "delivery": { "kind": "html", "open_after_done": true },   "watchlist": [     { "name": "比亚迪", "kind": "品牌", "url": "https://www.byd.com" }
  • Network accessline 30
    "watchlist": [     { "name": "比亚迪", "kind": "品牌", "url": "https://www.byd.com" }   ],
  • Network accessline 31
    { "name": "比亚迪", "kind": "品牌", "url": "https://www.byd.com" }

examples/web-research-brief.schema.json

  • Network accessline 1
    {   "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 2
    "$schema": "http://json-schema.org/draft-07/schema#",
  • Network accessline 418
    "type": "string",             "title": "参考链接(可选)",             "default": "https://www.byd.com"
  • Network accessline 419
    "title": "参考链接(可选)",             "default": "https://www.byd.com"           }
  • Network accessline 420
    "default": "https://www.byd.com"
  • Network accessline 424
    },       "default": [         { "name": "比亚迪", "kind": "品牌", "url": "https://www.byd.com" }
  • Network accessline 425
    "default": [         { "name": "比亚迪", "kind": "品牌", "url": "https://www.byd.com" }       ]
  • Network accessline 426
    { "name": "比亚迪", "kind": "品牌", "url": "https://www.byd.com" }

install.md

  • Network accessline 3
    `a2ui-ask` renders forms through the `schemaui` binary (from [`schemaui-cli`](https://github.com/YuniqueUnic/schemaui)). Everything below
  • Network accessline 4
    [`schemaui-cli`](https://github.com/YuniqueUnic/schemaui)). Everything below
  • Network accessline 36
    GitHub first, then the [Gitee mirror](https://gitee.com/Credhat/schemaui). The
  • Network accessline 59
    # Scoop (Windows) scoop install https://raw.githubusercontent.com/YuniqueUnic/schemaui/main/packaging/scoop/schemaui-cli.json
  • Network accessline 60
    scoop install https://raw.githubusercontent.com/YuniqueUnic/schemaui/main/packaging/scoop/schemaui-cli.json
  • Network accessline 78
    Grab the archive for your platform from the [latest schemaui-cli release](https://github.com/YuniqueUnic/schemaui/releases)
  • Network accessline 79
    [latest schemaui-cli release](https://github.com/YuniqueUnic/schemaui/releases)
  • Network accessline 80
    (assets are named `schemaui-<target-triple>.tar.gz`, Windows also `.zip`). The same file is on the mirror at [gitee.com/Credhat/schemaui](https://gitee.com/Credhat/schemaui/releases) under
  • Network accessline 81
    same file is on the mirror at [gitee.com/Credhat/schemaui](https://gitee.com/Credhat/schemaui/releases) under the same tag and name — swap the host and keep the path:
  • Network accessline 82
    [gitee.com/Credhat/schemaui](https://gitee.com/Credhat/schemaui/releases) under
  • Network accessline 86
    https://github.com/YuniqueUnic/schemaui/releases/download/<tag>/<asset>
  • Network accessline 87
    https://gitee.com/Credhat/schemaui/releases/download/<tag>/<asset>

package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    "repository": {     "type": "git",     "url": "https://github.com/YuniqueUnic/a2ui-ask.git"
  • Network accessline 19
    "type": "git",     "url": "https://github.com/YuniqueUnic/a2ui-ask.git"   },
  • Network accessline 20
    "url": "https://github.com/YuniqueUnic/a2ui-ask.git"
  • Network accessline 21
    },   "homepage": "https://github.com/YuniqueUnic/a2ui-ask",   "files": [
  • Network accessline 22
    "homepage": "https://github.com/YuniqueUnic/a2ui-ask",

prompts/ask.prompt.md

  • Network accessline 97
    4. Tell the user in your response text: "I've prepared a form at    http://\<host\>:8787 — please open it in your browser. I'll wait. Your
  • Network accessline 98
    http://\<host\>:8787 — please open it in your browser. I'll wait. Your
  • Network accessline 123
    `--timeout` was given — that line is how you learn the deadline without    parsing the UI. If port 8787 is busy the command fails fast; retry once with    `--port 0`, parse the `http://…` line from stderr, and relay that URL.
  • Network accessline 125
    `--port 0`, parse the `http://…` line from stderr, and relay that URL.

scripts/ask.ps1

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    Stdout contract:     SCHEMAUI_URL=http://127.0.0.1:8787/
  • Network accessline 12
    SCHEMAUI_URL=http://127.0.0.1:8787/
  • Network accessline 13
    SCHEMAUI_LAN_URL=http://192.168.1.5:8787/   (only for wildcard hosts)
  • Network accessline 75
    # http://0.0.0.0:8787/ -> http://127.0.0.1:8787/ (browsers need a concrete host)
  • Network accessline 214
    # Wait for the "available at http://..." line (or an early exit).

scripts/ask.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 9
    Stdout contract (each line printed flushed, in order):   SCHEMAUI_URL=http://127.0.0.1:8787/        URL to open on this machine
  • Network accessline 10
    SCHEMAUI_URL=http://127.0.0.1:8787/        URL to open on this machine
  • Network accessline 11
    SCHEMAUI_LAN_URL=http://192.168.1.5:8787/  LAN URL (only for wildcard hosts)
  • Network accessline 103
    def detect_lan_ip() -> str | None:     try:         with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as probe:
  • Network accessline 105
    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as probe:
  • Access to secretsline 136
    [Credential-related source omitted]

scripts/ask.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 8
    # # Stdout contract: #   SCHEMAUI_URL=http://127.0.0.1:8787/
  • Network accessline 9
    # Stdout contract: #   SCHEMAUI_URL=http://127.0.0.1:8787/ #   SCHEMAUI_ANSWER=.schemaui/answers/<topic>-<timestamp>.json
  • Network accessline 10
    #   SCHEMAUI_URL=http://127.0.0.1:8787/
  • Network accessline 131
    localize_url() {   case "$1" in     http://0.0.0.0:*) echo "http://127.0.0.1:${1#http://0.0.0.0:}" ;;
  • Network accessline 132
    case "$1" in     http://0.0.0.0:*) echo "http://127.0.0.1:${1#http://0.0.0.0:}" ;;     http://\[::\]:*) echo "http://127.0.0.1:${1#http://[::]:}" ;;
  • Network accessline 133
    http://0.0.0.0:*) echo "http://127.0.0.1:${1#http://0.0.0.0:}" ;;
  • Network accessline 134
    http://\[::\]:*) echo "http://127.0.0.1:${1#http://[::]:}" ;;
  • Network accessline 186
    # Wait for the "available at http://..." line (or an early exit).
  • Dangerous shell operationline 197
    rm -f "$err_log"
  • Dangerous shell operationline 211
    rm -f "$fired"
  • Dangerous shell operationline 227
    rm -f "$err_log"
  • Dangerous shell operationline 230
    rm -f "$fired"
  • Dangerous shell operationline 238
    [ -n "$fired" ] && rm -f "$fired"

scripts/install.ps1

  • Executable scriptline 1
    Executable file
  • Network accessline 82
    function Get-GitHubUrl {   $tag = Get-NewestCliTag "https://api.github.com/repos/$GitHubRepo/releases?per_page=100"
  • Network accessline 83
    $tag = Get-NewestCliTag "https://api.github.com/repos/$GitHubRepo/releases?per_page=100"   if ($tag) {     return "https://github.com/$GitHubRepo/releases/download/$tag/$asset"
  • Network accessline 84
    if ($tag) {     return "https://github.com/$GitHubRepo/releases/download/$tag/$asset"   }
  • Network accessline 85
    return "https://github.com/$GitHubRepo/releases/download/$tag/$asset"
  • Network accessline 88
    return "https://github.com/$GitHubRepo/releases/latest/download/$asset"
  • Network accessline 91
    function Get-GiteeUrl {   $tag = Get-NewestCliTag "https://gitee.com/api/v5/repos/$GiteeRepo/releases?per_page=100"
  • Network accessline 92
    $tag = Get-NewestCliTag "https://gitee.com/api/v5/repos/$GiteeRepo/releases?per_page=100"
  • Network accessline 95
    if (-not $tag) { return $null }   return "https://gitee.com/$GiteeRepo/releases/download/$tag/$asset"
  • Network accessline 96
    return "https://gitee.com/$GiteeRepo/releases/download/$tag/$asset"
  • Network accessline 144
    function Install-Scoop {   if (-not (Get-Command scoop -ErrorAction SilentlyContinue)) { return $false }   scoop install https://raw.githubusercontent.com/$GitHubRepo/main/packaging/scoop/schemaui-cli.json
  • Network accessline 145
    if (-not (Get-Command scoop -ErrorAction SilentlyContinue)) { return $false }   scoop install https://raw.githubusercontent.com/$GitHubRepo/main/packaging/scoop/schemaui-cli.json   return ($LASTEXITCODE -eq 0)
  • Network accessline 146
    scoop install https://raw.githubusercontent.com/$GitHubRepo/main/packaging/scoop/schemaui-cli.json

scripts/install.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 15
    # Env overrides: #   SCHEMAUI_INSTALL_DIR   install directory (default: ~/.local/bin) #   http_proxy/https_proxy honored by curl for the download step.
  • Network accessline 17
    #   http_proxy/https_proxy honored by curl for the download step.
  • Network accessline 87
    newest_cli_tag() {   command -v curl >/dev/null 2>&1 || return 1
  • Network accessline 88
    command -v curl >/dev/null 2>&1 || return 1
  • Network accessline 89
    curl -fsL --max-time 20 "$1" 2>/dev/null \
  • Network accessline 97
    github_url() {   local tag   tag="$(newest_cli_tag "https://api.github.com/repos/${GITHUB_REPO}/releases?per_page=100")" || true
  • Network accessline 98
    local tag   tag="$(newest_cli_tag "https://api.github.com/repos/${GITHUB_REPO}/releases?per_page=100")" || true   if [ -n "$tag" ]; then
  • Network accessline 99
    tag="$(newest_cli_tag "https://api.github.com/repos/${GITHUB_REPO}/releases?per_page=100")" || true   if [ -n "$tag" ]; then     echo "https://github.com/${GITHUB_REPO}/releases/download/${tag}/${ASSET}"
  • Network accessline 100
    if [ -n "$tag" ]; then     echo "https://github.com/${GITHUB_REPO}/releases/download/${tag}/${ASSET}"   else
  • Network accessline 101
    echo "https://github.com/${GITHUB_REPO}/releases/download/${tag}/${ASSET}"
  • Network accessline 104
    echo "https://github.com/${GITHUB_REPO}/releases/latest/download/${ASSET}"
  • Network accessline 108
    gitee_url() {   local tag   tag="$(newest_cli_tag "https://gitee.com/api/v5/repos/${GITEE_REPO}/releases?per_page=100")" || true
  • Network accessline 110
    tag="$(newest_cli_tag "https://gitee.com/api/v5/repos/${GITEE_REPO}/releases?per_page=100")" || true
  • Network accessline 113
    [ -n "$tag" ] || return 1   echo "https://gitee.com/${GITEE_REPO}/releases/download/${tag}/${ASSET}"
  • Network accessline 114
    echo "https://gitee.com/${GITEE_REPO}/releases/download/${tag}/${ASSET}"
  • Network accessline 125
    URLS="$(candidate_urls || true)" [ -n "$URLS" ] || fail "could not resolve a download URL for $ASSET (is curl installed?)"
  • Network accessline 126
    [ -n "$URLS" ] || fail "could not resolve a download URL for $ASSET (is curl installed?)"
  • Network accessline 138
    install_download() {   command -v curl >/dev/null 2>&1 || return 1
  • Network accessline 139
    command -v curl >/dev/null 2>&1 || return 1
  • Dangerous shell operationline 143
    trap 'rm -rf "$tmp"' RETURN
  • Network accessline 146
    for url in $URLS; do     say "downloading prebuilt binary from ${url%%/releases/*}…"     if curl -fsL --retry 2 --connect-timeout 20 -o "$tmp/$ASSET" "$url" \
  • Network accessline 147
    say "downloading prebuilt binary from ${url%%/releases/*}…"     if curl -fsL --retry 2 --connect-timeout 20 -o "$tmp/$ASSET" "$url" \       && tar -xzf "$tmp/$ASSET" -C "$tmp"; then
  • Network accessline 148
    if curl -fsL --retry 2 --connect-timeout 20 -o "$tmp/$ASSET" "$url" \

skills/grill-with-docs/SKILL.md

  • Network accessline 33
    feature brief should be shaped by how similar features are scoped in this repo, a UI by the design system, a schema by the engine's own examples. Concretely, for forms built with [schemaui](https://github.com/YuniqueUnic/schemaui):
  • Network accessline 35
    for forms built with [schemaui](https://github.com/YuniqueUnic/schemaui):
  • Network accessline 40
    a good schema look like"; - schemaui's own   [controls gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json)
  • Network accessline 41
    - schemaui's own   [controls gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json)   and
  • Network accessline 42
    [controls gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/controls-gallery.schema.json)
  • Network accessline 43
    and   [rich-content gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/rich-content.schema.json)   — every hint value and every figure surface side by side.
  • Network accessline 44
    [rich-content gallery](https://github.com/YuniqueUnic/schemaui/blob/main/examples/rich-content.schema.json)

tests/test_ask.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Network accessline 140
    assert (         ask.extract_url("Probe schemaui UI available at http://0.0.0.0:8787/")
  • Network accessline 141
    ask.extract_url("Probe schemaui UI available at http://0.0.0.0:8787/")
  • Network accessline 142
    == "http://0.0.0.0:8787/"
  • Network accessline 145
    assert (         ask.extract_url("schemaui web UI available at http://127.0.0.1:56615/")
  • Network accessline 146
    ask.extract_url("schemaui web UI available at http://127.0.0.1:56615/")
  • Network accessline 147
    == "http://127.0.0.1:56615/"
  • Network accessline 152
    def test_localize_url_rewrites_wildcard_only():     assert ask.localize_url("http://0.0.0.0:8787/") == "http://127.0.0.1:8787/"
  • Network accessline 153
    assert ask.localize_url("http://0.0.0.0:8787/") == "http://127.0.0.1:8787/"
  • Network accessline 154
    assert ask.localize_url("http://[::]:9000/") == "http://127.0.0.1:9000/"
  • Network accessline 155
    assert ask.localize_url("http://192.168.1.5:8787/") == "http://192.168.1.5:8787/"
  • Network accessline 158
    def test_lan_url_only_for_wildcard():     assert ask.lan_url("http://127.0.0.1:8787/") is None
  • Network accessline 159
    assert ask.lan_url("http://127.0.0.1:8787/") is None
  • Network accessline 160
    url = ask.lan_url("http://0.0.0.0:8787/")
  • Network accessline 335
    for path in paths:         try:             return urllib.request.urlopen(f"{url}{path}", timeout=5)
  • Network accessline 336
    try:             return urllib.request.urlopen(f"{url}{path}", timeout=5)         except urllib.error.HTTPError as error:
  • Network accessline 337
    return urllib.request.urlopen(f"{url}{path}", timeout=5)
  • Network accessline 347
    last: Exception | None = None     for path in paths:         req = urllib.request.Request(
  • Network accessline 348
    for path in paths:         req = urllib.request.Request(             f"{url}{path}",
  • Network accessline 349
    req = urllib.request.Request(
  • Network accessline 354
    )         try:             return urllib.request.urlopen(req, timeout=5)
  • Network accessline 355
    try:             return urllib.request.urlopen(req, timeout=5)         except urllib.error.HTTPError as error:
  • Network accessline 356
    return urllib.request.urlopen(req, timeout=5)
  • Access to secretsline 615
    [Credential-related source omitted]
  • Access to secretsline 842
    [Credential-related source omitted]
  • Access to secretsline 879
    [Credential-related source omitted]
  • Access to secretsline 901
    [Credential-related source omitted]
  • Access to secretsline 926
    [Credential-related source omitted]
  • Access to secretsline 942
    [Credential-related source omitted]
  • Access to secretsline 956
    [Credential-related source omitted]
  • Access to secretsline 977
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 2 facts
  • Contacts 192.168.1.5, which SKILL.md, the README and the plugin manifest do not mentionscripts/ask.ps1:13High confidence
  • Contacts raw.githubusercontent.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/install.ps1:146High confidence
Signal confidence: 183 facts
  • Network access in prose of documentationREADME.ZH.md:17Low confidence
  • Network access in prose of documentationREADME.ZH.md:18Low confidence
  • Network access in prose of documentationREADME.ZH.md:19Low confidence
  • Network access in prose of documentationREADME.ZH.md:20Low confidence
  • Network access in prose of documentationREADME.ZH.md:21Low confidence
  • Network access in prose of documentationREADME.ZH.md:45Low confidence
  • Network access in prose of documentationREADME.ZH.md:46Low confidence
  • Network access in prose of documentationREADME.ZH.md:69Low confidence
  • Network access in prose of documentationREADME.ZH.md:70Low confidence
  • Network access in prose of documentationREADME.ZH.md:78Low confidence
  • Network access in prose of documentationREADME.ZH.md:79Low confidence
  • Network access in prose of documentationREADME.ZH.md:93Low confidence
  • Network access in prose of documentationREADME.ZH.md:103Low confidence
  • Network access in code of documentationREADME.ZH.md:109Low confidence
  • Network access in code of documentationREADME.ZH.md:110Low confidence
  • Network access in code of documentationREADME.ZH.md:112Low confidence
  • Network access in prose of documentationREADME.ZH.md:129Low confidence
  • Network access in prose of documentationREADME.ZH.md:204Low confidence
  • Network access in prose of documentationREADME.md:21Low confidence
  • Network access in prose of documentationREADME.md:22Low confidence
  • Network access in prose of documentationREADME.md:23Low confidence
  • Network access in prose of documentationREADME.md:24Low confidence
  • Network access in prose of documentationREADME.md:25Low confidence
  • Network access in prose of documentationREADME.md:49Low confidence
  • Network access in prose of documentationREADME.md:50Low confidence
  • Network access in prose of documentationREADME.md:75Low confidence
  • Network access in prose of documentationREADME.md:76Low confidence
  • Network access in prose of documentationREADME.md:84Low confidence
  • Network access in prose of documentationREADME.md:85Low confidence
  • Network access in prose of documentationREADME.md:98Low confidence
  • Network access in prose of documentationREADME.md:108Low confidence
  • Network access in code of documentationREADME.md:114Low confidence
  • Network access in code of documentationREADME.md:115Low confidence
  • Network access in code of documentationREADME.md:117Low confidence
  • Network access in prose of documentationREADME.md:134Low confidence
  • Network access in prose of documentationREADME.md:218Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:17Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:18Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:19Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:35Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:36Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:37Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:197Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:198Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:199Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:200Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:201Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:273Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:322Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:324Low confidence

and 133 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.