Test Metro Locally
ZacSweers/metro
Publish the current Metro checkout to Maven Local and verify it in an external consumer or reproducer.
需要对话框、弹窗、菜单、加载等待、轻提示(Toast 替代)、应用内通知、底部弹窗、 上下文菜单、全屏/自定义弹层或操作引导时,默认使用 DialogX (com.github.kongzue.DialogX,本工程已依赖)而非系统 AlertDialog/Toast/PopupMenu。
$ npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install afkT/DevUtils ui-dialogx-dialog --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/afkT/DevUtils.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/ui-dialogx-dialog .claude/skills/ui-dialogx-dialog && rm -rf skills-srcUse ~/.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/
Install the "ui-dialogx-dialog" agent skill from https://github.com/afkT/DevUtils/tree/master/.cursor/skills/ui-dialogx-dialog into .claude/skills/ui-dialogx-dialog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-dialogx-dialog", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/afkT/DevUtils/tree/master/.cursor/skills/ui-dialogx-dialogType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install afkT/DevUtils ui-dialogx-dialog --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/afkT/DevUtils.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/ui-dialogx-dialog .agents/skills/ui-dialogx-dialog && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ui-dialogx-dialog" agent skill from https://github.com/afkT/DevUtils/tree/master/.cursor/skills/ui-dialogx-dialog into .agents/skills/ui-dialogx-dialog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-dialogx-dialog", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install afkT/DevUtils ui-dialogx-dialog --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/afkT/DevUtils.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/ui-dialogx-dialog .cursor/skills/ui-dialogx-dialog && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ui-dialogx-dialog" agent skill from https://github.com/afkT/DevUtils/tree/master/.cursor/skills/ui-dialogx-dialog into .cursor/skills/ui-dialogx-dialog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-dialogx-dialog", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/afkT/DevUtils.git --path .cursor/skills/ui-dialogx-dialog--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install afkT/DevUtils ui-dialogx-dialog --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/afkT/DevUtils.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/ui-dialogx-dialog .gemini/skills/ui-dialogx-dialog && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ui-dialogx-dialog" agent skill from https://github.com/afkT/DevUtils/tree/master/.cursor/skills/ui-dialogx-dialog into .gemini/skills/ui-dialogx-dialog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-dialogx-dialog", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install afkT/DevUtils ui-dialogx-dialogInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/afkT/DevUtils.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/ui-dialogx-dialog .github/skills/ui-dialogx-dialog && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ui-dialogx-dialog" agent skill from https://github.com/afkT/DevUtils/tree/master/.cursor/skills/ui-dialogx-dialog into .github/skills/ui-dialogx-dialog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-dialogx-dialog", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install afkT/DevUtils ui-dialogx-dialog --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/afkT/DevUtils.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/ui-dialogx-dialog .opencode/skills/ui-dialogx-dialog && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ui-dialogx-dialog" agent skill from https://github.com/afkT/DevUtils/tree/master/.cursor/skills/ui-dialogx-dialog into .opencode/skills/ui-dialogx-dialog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ui-dialogx-dialog", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ui-dialogx-dialog需要对话框、弹窗、菜单、加载等待、轻提示(Toast 替代)、应用内通知、底部弹窗、 上下文菜单、全屏/自定义弹层或操作引导时,默认使用 DialogX (com.github.kongzue.DialogX,本工程已依赖)而非系统 AlertDialog/Toast/PopupMenu。
UI Dialogx Dialog is an agent skill from afkT/DevUtils. 需要对话框、弹窗、菜单、加载等待、轻提示(Toast 替代)、应用内通知、底部弹窗、 上下文菜单、全屏/自定义弹层或操作引导时,默认使用 DialogX (com.github.kongzue.DialogX,本工程已依赖)而非系统 AlertDialog/Toast/PopupMenu。 SKILL 给组件选型、避坑事实与最小片段;组件静态工厂全表、链式 setter 全表、 全局配置 DialogX. 全表、TextInfo/InputInfo/ItemDivider、枚举与主题包坐标见 references/reference.md。 在用户要求弹对话框、做加载框、提示框、底部菜单、确认/输入弹窗、引导蒙层或替换原生 Dialog 时使用。
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/reference.md`).
It sits in Mobile. It works with GitHub and Gradle. The repository describes itself as: :fire: ( 持续更新,目前含 300+ 工具类 ) DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。该项目尽可能的便于开发人员,快捷、高效开发安全可靠的项目。 The licence is Apache-2.0.
10 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6022ede. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are java).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
UI Dialogx Dialog loads about 1.1k tokens when it runs, and up to ~5k if it reads all its reference files. Until then it costs about 87 tokens; SKILL.md has 199 words of instructions outside code blocks.
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.
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.
The full file from afkT/DevUtils at commit 6022ede, republished under its Apache-2.0 licence (© afkT). 199 words, ~1,080 tokens.
.claude/skills/ui-dialogx-dialog/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.本工程默认弹窗框架为 DialogX(GitHub)。需要任何对话框、菜单、加载、提示、通知时,优先用 DialogX,不要用系统 AlertDialog / Toast / PopupMenu / ProgressDialog。
DEPS_ROOT=file/gradle/config_libs.gradle 中 dialogX,由 file/deps/deps_project.gradle 以 api deps_lib.common_widget.dialogX 启用。勿重复写 GAV;改版本走 project-gradle-central-deps。Application.onCreate 一般无需手动 DialogX.init(context)(库会自动初始化);全局风格/亮暗/默认文字样式在此处设置(见 references/reference.md § 全局配置)。| 需求 | 用哪个 | 阻断式 |
|---|---|---|
| 标题+内容+1/2/3 按钮的提醒、确认 | MessageDialog | 是 |
| 上面的基础上要输入框 | InputDialog | 是 |
| 纵向列表式菜单(带标题/按钮) | MessageMenu | 是 |
| 加载等待(环形/进度),可无缝切成功/失败 | WaitDialog / TipDialog(单例同一个) | 是 |
| 底部弹出对话框 / 底部菜单(可单选多选、图标) | BottomDialog / BottomMenu | 是 |
| 类 Toast 的轻提示(可带图标/按钮,不阻断) | PopTip | 否 |
| 应用内通知条(顶部下拉) | PopNotification | 否 |
| 锚定某 View 的上下文菜单 | PopMenu | 否(半阻断) |
| 从底部弹出、定制自由度高于 BottomDialog | FullScreenDialog | 是 |
| 完全自定义布局+弹出方位(中/上/下/左/右) | CustomDialog(ALIGN) | 可选 |
| 蒙层操作引导、舞台光高亮某 View | GuideDialog(STAGE_LIGHT_TYPE) | 是 |
静态工厂方法全量重载见 references/reference.md § 组件工厂。
MessageDialog.show("标题","内容","确定"); 任意线程调用会自动切到 UI 线程。show() vs build():要在显示前改主题/亮暗/复杂配置,用 build() 链式配置后再 .show();build(IOSStyle.style()) 或 .setStyle(...) 单独指定样式。WaitDialog.show("加载中…") 后直接 TipDialog.show("成功",WaitDialog.TYPE.SUCCESS,1500) 会无缝过渡,不要先 dismiss 再 show。@ColorInt int 值,不要传 R.color.x 资源 id(会无效):用 Color.parseColor("#...") 或 getColor(R.color.x)。onClick(...) return false 自动关闭对话框,return true 拦截关闭(保持显示)。TextInfo,输入框用 InputInfo,菜单分隔线用 ItemDivider(字段见 references/reference.md § 数据类型)。new OnBindView<T>(R.layout.xxx){ onBind(dialog, v){...} };ViewBinding 用 OnBindingView<T, Binding>。.setRadius(px)(BottomDialog/BottomMenu 只影响左上右上);或全局 DialogX.default*BackgroundRadius。.setIconResIds(...) 直传,某项无图标传 0;线性/面性图标随亮暗染色用 .setAutoTintIconInLightOrDarkMode(true) 或 OnIconChangeCallBack(true);网络异步图标用 MenuIconAdapter。setSingleSelection()/setSelection(i) 单选、setMultiSelection()/setSelection(int[]) 多选,配合 OnMenuItemSelectListener 实时拿选中项。基础确认框
MessageDialog.show("提示", "确定删除?", "删除", "取消")
.setOkButton((dialog, v) -> { /* ... */ return false; });加载 → 结果(单例无缝)
WaitDialog.show("提交中…");
// 完成后:
TipDialog.show("提交成功", WaitDialog.TYPE.SUCCESS, 1500);底部单选菜单(带图标)
BottomMenu.show("请选择", new String[]{"拍照", "相册"})
.setIconResIds(R.mipmap.ic_camera, R.mipmap.ic_album)
.setOnMenuItemClickListener((dialog, text, index) -> { /* ... */ return false; });轻提示(Toast 替代)
PopTip.show("已复制").iconSuccess().autoDismiss(2000);自定义布局对话框
CustomDialog.show(new OnBindView<CustomDialog>(R.layout.dialog_custom) {
@Override public void onBind(CustomDialog dialog, View v) {
// v.findViewById(...)
}
}, CustomDialog.ALIGN.CENTER);AlertDialog/Toast/PopupMenu?build()...show() 而非直接 show()?WaitDialog/TipDialog 单例无缝切换?@ColorInt 值而非 R.color 资源 id?return 值符合「拦截/关闭」预期?© afkT, 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
SKILL.md and 1 other file (references) in .cursor/skills/ui-dialogx-dialog of afkT/DevUtils.
Open the folder on GitHubat commit 6022ede
UI Dialogx Dialog 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| UI Dialogx Dialog this skillafkT/DevUtils | 1.6k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Test Metro LocallyZacSweers/metro | 1.4k | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Capturing Preview Screenshots In CIskydoves/android-testing-skills | 334 | — | ~4.5k | Automated safety check: Notes | Apache-2.0 | |
| Setting Up Compose HotswanrosuH/EasyWatermark | 1.9k | 1 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Android Cicddavila7/claude-code-templates | 33k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Plan ReviewKenjiOhtsuka/harmonica | 131 | — | ~1k | Automated safety check: Pass | MIT |
ZacSweers/metro
Publish the current Metro checkout to Maven Local and verify it in an external consumer or reproducer.
skydoves/android-testing-skills
A skill your agent uses to render every Jetpack Compose @Preview as a screenshot on a real Android device or emulator and publish a browsable HTML catalog from CI.
rosuH/EasyWatermark
A skill your agent uses to install and verify Compose HotSwan end to end so a developer goes from zero to working sub-second hot reload on a real device or emulator in one session.
davila7/claude-code-templates
Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android.
KenjiOhtsuka/harmonica
A skill your agent uses when reviewing the Harmonica restart plan against reality — after a phase PR or milestone merges, before proposing the next phase, or when asked "are the specs up to date" /…
tobihagemann/turbo
Detect package managers and CI action pins, then discover outdated or vulnerable dependencies.
afkT/DevUtils
依据 Android 官方「版本」文档完成平台适配:按版本号 N 抓取行为变更(所有应用、 targetSdk=N)、changes/features 子页与探索新功能/API;归纳影响项并落地到 Manifest/Gradle/工具类封装。在用户要求 Android 版本适配、行为变更排查、 targetSdk 升级、新 API 封装或对照…
afkT/DevUtils
统一 Android XML 资源命名:layout、drawable、mipmap、color、values、id 的前缀与 snakecase 规则;把颜色/圆角/描边/状态编码进文件名(bg、border、textcolor…selector)。
afkT/DevUtils
根据用户给出的 Java/Kotlin 工具类或 View 相关源码,设计并实现 androidx.databinding.BindingAdapter。
afkT/DevUtils
对 DevUtils 工程(DEPSROOT=file/gradle、DEPSMANIFEST=file/deps)中定义的第三方库 GAV 依赖做版本查证与升级;结合 Maven Central、Google Maven、Gradle Plugin Portal、 JitPack 与 GitHub Releases/README 交叉校验「最新可用版本」;必要时修正…
afkT/DevUtils
为布局 XML 中的控件默认补全 DevSimple(lib/DevSimple)的 ViewTheme 样式引用: 按控件继承链匹配 ViewTheme.<类名>,ImageView/AppCompatImageView 使用 ViewTheme.ImageView.FITXY,无匹配则用 ViewTheme.View。工作区内优先 Read…
afkT/DevUtils
在需要圆角矩形纯色背景、描边边框时,优先用 DevWidget(io.github.afkt:DevWidgetX)的 dev.widget.ui.round 包替代 shape / layer-list drawable。流程与核心坑在 SKILL,Round 系列 View、R.styleable.DevWidget 中 app:dev 属性及源码对照见…
Categories
需要对话框、弹窗、菜单、加载等待、轻提示(Toast 替代)、应用内通知、底部弹窗、 上下文菜单、全屏/自定义弹层或操作引导时,默认使用 DialogX (com.github.kongzue.DialogX,本工程已依赖)而非系统 AlertDialog/Toast/PopupMenu。. UI Dialogx Dialog is an agent skill from afkT/DevUtils.DialogX,本工程已依赖)而非系统 AlertDialog/Toast/PopupMenu。 SKILL 给组件选型、避坑事实与最小片段;组件静态工厂全表、链式 setter 全表、 全局配置 DialogX.
UI Dialogx Dialog fits situations like: mobile work in your project.
Run `npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a claude-code`. Or copy the skill folder (.cursor/skills/ui-dialogx-dialog in afkT/DevUtils) into .claude/skills/ui-dialogx-dialog in your project. Claude Code loads it when a task matches its description.
Run `npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a codex`. Or copy the skill folder (.cursor/skills/ui-dialogx-dialog in afkT/DevUtils) into .agents/skills/ui-dialogx-dialog in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add afkT/DevUtils --skill ui-dialogx-dialog -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ui-dialogx-dialog, .gemini/skills/ui-dialogx-dialog, .github/skills/ui-dialogx-dialog and .opencode/skills/ui-dialogx-dialog in your project.
SKILL.md names no scripts, command-line tools or credentials: UI Dialogx Dialog is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
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.
UI Dialogx Dialog 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.
About 1.1k tokens (SKILL.md is roughly 4.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with UI Dialogx Dialog: Test Metro Locally (ZacSweers/metro, 1.4k stars), Capturing Preview Screenshots In CI (skydoves/android-testing-skills, 334 stars), Setting Up Compose Hotswan (rosuH/EasyWatermark, 1.9k stars) and Android Cicd (davila7/claude-code-templates, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
afkT (a GitHub user) maintains it in afkT/DevUtils, which has 1,613 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on September 2, 2026.
Source: afkT/DevUtils on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.