React Native Best Practices
vercel-labs/openreview
A prioritized rule set for React Native and Expo apps covering list performance, animation, navigation, UI patterns, state, rendering, monorepos and configuration.
MaaEnd go-service 编写指南。为 agent/go-service/ 下的 Go 代码提供架构、注册、命名、日志、注释等编码规范和模式参考。在编写、修改或审查 Go 自定义识别器、动作、EventSink,或需要了解 go-service 项目结构与 MaaFramework Go 集成方式时使用。
$ npx skills add MaaEnd/MaaEnd --skill go-service-guide -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install MaaEnd/MaaEnd go-service-guide --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/MaaEnd/MaaEnd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/go-service-guide .claude/skills/go-service-guide && 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 "go-service-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/go-service-guide into .claude/skills/go-service-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-service-guide", 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/MaaEnd/MaaEnd/tree/v2/.agents/skills/go-service-guideType 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 MaaEnd/MaaEnd --skill go-service-guide -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install MaaEnd/MaaEnd go-service-guide --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/go-service-guide .agents/skills/go-service-guide && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "go-service-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/go-service-guide into .agents/skills/go-service-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-service-guide", 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 MaaEnd/MaaEnd --skill go-service-guide -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install MaaEnd/MaaEnd go-service-guide --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/go-service-guide .cursor/skills/go-service-guide && 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 "go-service-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/go-service-guide into .cursor/skills/go-service-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-service-guide", 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/MaaEnd/MaaEnd.git --path .agents/skills/go-service-guide--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 MaaEnd/MaaEnd --skill go-service-guide -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install MaaEnd/MaaEnd go-service-guide --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/go-service-guide .gemini/skills/go-service-guide && 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 "go-service-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/go-service-guide into .gemini/skills/go-service-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-service-guide", 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 MaaEnd/MaaEnd go-service-guideInstalls 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 MaaEnd/MaaEnd --skill go-service-guide -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/go-service-guide .github/skills/go-service-guide && 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 "go-service-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/go-service-guide into .github/skills/go-service-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-service-guide", 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 MaaEnd/MaaEnd --skill go-service-guide -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install MaaEnd/MaaEnd go-service-guide --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/go-service-guide .opencode/skills/go-service-guide && 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 "go-service-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/go-service-guide into .opencode/skills/go-service-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-service-guide", 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.
go-service-guideMaaEnd go-service 编写指南。为 agent/go-service/ 下的 Go 代码提供架构、注册、命名、日志、注释等编码规范和模式参考。在编写、修改或审查 Go 自定义识别器、动作、EventSink,或需要了解 go-service 项目结构与 MaaFramework Go 集成方式时使用。
Go Service Guide is an agent skill from MaaEnd/MaaEnd. MaaEnd go-service 编写指南。为 agent/go-service/ 下的 Go 代码提供架构、注册、命名、日志、注释等编码规范和模式参考。在编写、修改或审查 Go 自定义识别器、动作、EventSink,或需要了解 go-service 项目结构与 MaaFramework Go 集成方式时使用。
Its SKILL.md is about 2.1k 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 Mobile. The repository describes itself as: MaaEnd 终末地小助手:基于视觉 AI 的「明日方舟:终末地」自动化工具. The licence is AGPL-3.0.
Read from SKILL.md and the folder at commit 43eb28a. 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.
Shell commands in SKILL.md call:
goFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comgo.devFrom 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.
Go Service Guide loads about 2.1k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 290 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 MaaEnd/MaaEnd at commit 43eb28a, republished under its AGPL-3.0 licence (© MaaEnd). 290 words, ~2,115 tokens.
.claude/skills/go-service-guide/SKILL.md (or your agent's skills folder).Go Service 仅处理 Pipeline 无法覆盖的复杂逻辑(图像算法、状态机、外部数据等)。禁止在 Go 中编写大规模业务流程——流程控制由 Pipeline JSON 负责。
所有坐标与图像以 720p (1280×720) 为基准。
agent/go-service/
├── main.go # 入口:初始化、registerAll、启动 AgentServer
├── register.go # registerAll() 聚合各子包 Register()
├── logger.go # zerolog 初始化
├── pkg/ # 公共工具包(详见 docs/zh_cn/developers/go-service-pkg.md)
│ # recogtarget / boolexpr / ocrnum / jsonclean / pienv /
│ # i18n / maafocus / resource / control / minicv / …
├── common/ # 通用 Custom 组件(subtask、clearhitcount 等)
├── taskersink/ # TaskerEventSink / ContextEventSink 实现
└── <business>/ # 业务子包(resell、essencefilter、autofight 等)
├── register.go # Register() —— 本包所有组件注册
└── *.go # 按职责拆分的实现文件每个子包必须有 register.go,只暴露一个 Register() 函数,在其中完成本包所有组件注册。
package mypkg
import maa "github.com/MaaXYZ/maa-framework-go/v4"
func Register() {
maa.AgentServerRegisterCustomAction("MyAction", &MyAction{})
maa.AgentServerRegisterCustomRecognition("MyRecognition", &MyRecognition{})
}注册名称和参数必须与 Pipeline JSON 中 custom_action / custom_recognition 的 name、param 一致。
子包的 Register() 必须在 register.go 的 registerAll() 中调用:
func registerAll() {
mypkg.Register()
// ...
}遗漏调用 = 组件不生效。
新增、修改、重命名或删除 Custom 组件时同步维护 Pipeline Schema:
tools/schema/custom.action.schema.json,Recognition 使用 tools/schema/custom.recognition.schema.json。enum;重命名或删除前先更新 Pipeline 中的用法。$ref。tools/schema/components/ 并通过 $ref 引用。tools/schema/pipeline.schema.json;该文件已引用上述两个 Custom Schema。所有注册类型必须在定义该类型的文件中包含编译期校验,不要集中放在 register.go:
var _ maa.CustomActionRunner = &MyAction{}
var _ maa.CustomRecognitionRunner = &MyRecognition{}
var _ maa.TaskerEventSink = &MySink{}
var _ maa.ContextEventSink = &MySink{}回调(Custom 的 Run、EventSink 的各方法)里拿到的 *maa.Context、*maa.Tasker、*maa.Controller、*maa.Resource 都是借用视图,必须遵守:
ctx.GetTasker() / ctx.Clone() 返回 nil,其余方法返回 maa.ErrClosed。禁止存进包级变量或跨回调存活的结构体,禁止交给回调返回后仍在运行的 goroutine。Tasker.GetController() / GetResource() 每调用一次,agent 侧就会销毁上一次返回的对象;继续使用旧对象是释放后使用,表现为 go-service 随机崩溃。辅助函数需要 controller 时接收 *maa.Controller 参数,不要自己再从 ctx 取。PostXxx() 返回的 Job 紧接着 .Wait()。 Job 绑定在取它的那个 controller 上,不要隔着另一次 GetController() 再等。GetTasker() / GetController() / GetResource() 返回 nil;绑定的回调里没有 recover,空指针 panic 会直接结束 go-service 进程。Destroy(),也不要把它们传给 BindResource / BindController,二者都返回 maa.ErrBorrowed。pienv.ControllerType() / pienv.ControllerName()。 不要为此去取 controller 调 GetInfo();GetInfo() 只在需要窗口句柄等 PI 没有的信息时使用。nil, false。 返回非 nil 的 result 时,即使第二个返回值为 false,Box 与 Detail 也会交给 MaaFramework 写进识别详情;只有确实要带诊断信息时才这么做。// ❌ 辅助函数里又取了一次,Run 手里的 ctrl 随即失效
func (a *MyAction) Run(ctx *maa.Context, arg *maa.CustomActionArg) bool {
ctrl := ctx.GetTasker().GetController()
img := capture(ctx) // 内部再次 ctx.GetTasker().GetController()
ctrl.PostClick(x, y).Wait() // 释放后使用
return img != nil
}
// ✅ 入口取一次并判空,往下传
func (a *MyAction) Run(ctx *maa.Context, arg *maa.CustomActionArg) bool {
tasker := ctx.GetTasker()
if tasker == nil {
return false
}
ctrl := tasker.GetController()
if ctrl == nil {
return false
}
img := capture(ctrl)
ctrl.PostClick(x, y).Wait()
return img != nil
}ctx.RunTask 等触发的嵌套 Custom 回调有各自独立的 ctx,不受外层持有的 controller 影响,反之亦然。
.go(register.go + 功能文件),保持单文件行数可控。xxxParam)放在实现文件中,紧跟类型定义。统一 zerolog,禁止 log.Printf / log.Println。
log.Info().
Str("component", "MyComponent").
Str("step", "Step1").
Msg("short description")
log.Error().
Err(err).
Str("component", "MyComponent").
Msg("what failed")Msg。.Err(err)、.Int("x", x))。go doc),说明用途、参数、返回值。package mypkg
import (
"encoding/json"
maa "github.com/MaaXYZ/maa-framework-go/v4"
"github.com/rs/zerolog/log"
)
var _ maa.CustomActionRunner = &MyAction{}
type myActionParam struct {
Target string `json:"target"`
}
// MyAction does X when Pipeline calls custom_action "MyAction".
type MyAction struct{}
func (a *MyAction) Run(ctx *maa.Context, arg *maa.CustomActionArg) bool {
var params myActionParam
if err := json.Unmarshal([]byte(arg.CustomActionParam), ¶ms); err != nil {
log.Error().
Err(err).
Str("component", "MyAction").
Msg("failed to parse params")
return false
}
// ... 业务逻辑 ...
return true
}package mypkg
import (
"encoding/json"
maa "github.com/MaaXYZ/maa-framework-go/v4"
"github.com/rs/zerolog/log"
)
var _ maa.CustomRecognitionRunner = &MyRecognition{}
type myRecognitionParam struct {
Threshold float64 `json:"threshold"`
}
// MyRecognition performs X recognition.
type MyRecognition struct{}
func (r *MyRecognition) Run(ctx *maa.Context, arg *maa.CustomRecognitionArg) (*maa.CustomRecognitionResult, bool) {
var params myRecognitionParam
if err := json.Unmarshal([]byte(arg.CustomRecognitionParam), ¶ms); err != nil {
log.Error().
Err(err).
Str("component", "MyRecognition").
Msg("failed to parse params")
return nil, false
}
// ... 识别逻辑,使用 arg.Img ...
matched := true // 判断是否命中
if !matched {
return nil, false
}
return &maa.CustomRecognitionResult{
Box: arg.Roi,
Detail: "...",
}, true
}package mypkg
import maa "github.com/MaaXYZ/maa-framework-go/v4"
var _ maa.TaskerEventSink = &MySink{}
// MySink does X on task lifecycle events.
type MySink struct{}
func (s *MySink) OnTaskerTask(tasker *maa.Tasker, event maa.EventStatus, detail maa.TaskerTaskDetail) {
if event != maa.EventStatusStarting {
return
}
// ...
}如需同时监听 Context 事件,实现 maa.ContextEventSink 并通过 maa.AgentServerAddContextSink 注册。未使用的回调方法写空实现。
name / param 一致Register() 已在 registerAll() 中调用tools/schema/custom.action.schema.json 的 enumtools/schema/custom.recognition.schema.json 的 enumtools/schema/components/,删除内容已清理旧规则和 $refctx / tasker / controller / resource 留到回调返回之后使用nil, falselog.Printf,上下文不拼进 Msgtime.Sleep(有明确用途注释的除外)AGENTS.mdagent/go-service/register.go + 各子包 register.godocs/zh_cn/developers/custom.mddocs/zh_cn/developers/go-service-pkg.md(pkg/recogtarget、boolexpr、ocrnum、i18n 等)vendor/github.com/MaaXYZ/maa-framework-go/v4/© MaaEnd, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/go-service-guide of MaaEnd/MaaEnd.
Open the folder on GitHubat commit 43eb28a
Go Service Guide 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 |
|---|---|---|---|---|---|---|
| Go Service Guide this skillMaaEnd/MaaEnd | 4k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| React Native Best Practicesvercel-labs/openreview | 1.7k | 17 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Swiftui Protwostraws/SwiftUI-Agent-Skill | 5.2k | 2 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Kortix Brandkortix-ai/suna | 20k | — | ~4k | Automated safety check: Pass | Custom licence | |
| Ip As LogoKartikLabhshetwar/better-shot | 2.4k | 1 repos | ~4.3k | Automated safety check: Pass | MIT | |
| Compose Multiplatform Patternsmonta-app/ocpp-emulator | 180 | 5 repos | ~2k | Automated safety check: Pass | Apache-2.0 |
vercel-labs/openreview
A prioritized rule set for React Native and Expo apps covering list performance, animation, navigation, UI patterns, state, rendering, monorepos and configuration.
twostraws/SwiftUI-Agent-Skill
Comprehensively reviews SwiftUI code for best practices on modern APIs, maintainability, and performance.
kortix-ai/suna
Load FIRST for anything that carries the Kortix look or voice: product or mobile UI, copy of any kind, decks, social, images, email, CLI output, anything with the logo, and reviews of these.
KartikLabhshetwar/better-shot
Generate extremely simple, cute, personified square character images with rounded heavy forms, two purposeful character colors, one solid background color, and a dominant lower-corner composition.
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
adamlyttleapps/claude-skill-aso-appstore-screenshots
Generate high-converting App Store screenshots by analyzing your app's codebase, discovering core benefits, and creating ASO-optimized screenshot images using Nano Banana Pro.
MaaEnd/MaaEnd
MaaFramework 日志宏用法指南,适用于 MaaEnd cpp-algo。Use when writing logging code, using LogInfo/LogError/LogWarn/LogDebug/LogTrace, outputting containers or custom types to logs, or when the user asks about…
MaaEnd/MaaEnd
为 MaaEnd 添加、导入或补充节点识别测试截图,并按仓库约定脱敏图片、放入 tests/MaaEndTestset、维护 tests//test.json 和运行 pnpm check/pnpm test 验证。用户提到“添加测试图片/截图”“把截图加入 ADB 或 Win32 测试集”“给节点补正例或反例”“更新 hits/box”“UID…
MaaEnd/MaaEnd
Guide for using the meojson C++ JSON library in MaaEnd cpp-algo.
MaaEnd/MaaEnd
新增或改写 MaaEnd 的 AutoCollect 自动采集路线说明。默认包含路线文件创建、AutoCollect 主入口接线、任务选项注册和多语言文案补充。适用于“参考现有 AutoCollect 路线新建一条采集线”“给定传送点与路径点位生成 AutoCollectRouteX.json 并注册到任务中”“用户已经写好路线文件,只需要补注册接口”等场景。注意:本 skill 仅适用于参考…
MaaEnd/MaaEnd
仅分析 AutoStockStapleMain 的 MaaEnd 日志。用于还原该任务实际购买了什么、购买所对应的证据、逐步剩余账单(券/账单)数值时间线,以及在 pipeline 或 go-service 中应当加日志/埋点的位置。适用于用户询问 AutoStockStapleMain、AutoStockStaple、武陵/四号谷地的稳定需求物资购买,或该任务内账单数值变化原因等场景。
MaaEnd/MaaEnd
MaaEnd cpp-algo C++ 编码风格与工程规范指南。参考 MaaFramework 的优秀实践,规范命名、头文件、公共工具、错误处理、日志、CMake 等方面。在编写、修改或审查 agent/cpp-algo/ 下的 C++ 代码时使用。
Categories
MaaEnd go-service 编写指南。为 agent/go-service/ 下的 Go 代码提供架构、注册、命名、日志、注释等编码规范和模式参考。在编写、修改或审查 Go 自定义识别器、动作、EventSink,或需要了解 go-service 项目结构与 MaaFramework Go 集成方式时使用。. Go Service Guide is an agent skill from MaaEnd/MaaEnd.
Go Service Guide fits situations like: mobile work in your project.
Run `npx skills add MaaEnd/MaaEnd --skill go-service-guide -a claude-code`. Or copy the skill folder (.agents/skills/go-service-guide in MaaEnd/MaaEnd) into .claude/skills/go-service-guide in your project. Claude Code loads it when a task matches its description.
Run `npx skills add MaaEnd/MaaEnd --skill go-service-guide -a codex`. Or copy the skill folder (.agents/skills/go-service-guide in MaaEnd/MaaEnd) into .agents/skills/go-service-guide 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 MaaEnd/MaaEnd --skill go-service-guide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/go-service-guide, .gemini/skills/go-service-guide, .github/skills/go-service-guide and .opencode/skills/go-service-guide in your project.
Going by SKILL.md and its folder, Go Service Guide needs the command-line tools its instructions call (go).
SKILL.md names 2 domains. As links in the text: github.com and go.dev. 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.
Go Service Guide is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Go Service Guide: React Native Best Practices (vercel-labs/openreview, 1.7k stars), Swiftui Pro (twostraws/SwiftUI-Agent-Skill, 5.2k stars), Kortix Brand (kortix-ai/suna, 20k stars) and Ip As Logo (KartikLabhshetwar/better-shot, 2.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
MaaEnd (a GitHub organization) maintains it in MaaEnd/MaaEnd, which has 3,995 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.
Source: MaaEnd/MaaEnd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.