Token导航 LogoToken导航TokenDH.com
开发敏感数据github未标认证来源可访问许可证需确认审计异常

kuikly-network-and-jsonkuikly network AND JSON 命令行

Agent Skill

kuikly-network-and-json 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,088

周安装

44

GitHub Stars

69

下载量

341
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:kuikly-network-and-json(kuikly network AND JSON 命令行)
来源仓库:https://github.com/tencent-tds/kuiklyui-ai
仓库路径:skills/kuikly-network-and-json
安装命令:
npx skills add https://github.com/tencent-tds/kuiklyui-ai --skill kuikly-network-and-json
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/tencent-tds/kuiklyui-ai --skill kuikly-network-and-json

简介

kuikly-network-and-json 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合围绕仓库状态和协作事项进行整理。

  • 适用场景包括代码审查、项目进度跟踪、协作流程管理和仓库元数据分析等开发管理工作。
  • 核心能力涵盖仓库信息检索、变更追踪和协作事项归纳,支持多分支和多项目并行管理。
  • 可通过 npx skills add 命令从指定 GitHub 仓库安装,需确认权限范围和访问限制后再使用。
  • 使用前应检查是否会触发网络请求、API 调用或文件操作,避免越权访问或数据泄露风险。

SKILL.md

Kuikly 网络请求

Contents

Core Guidelines

  • 获取 NetworkModule:

- Kuikly DSL(Pager / ComposeView): 直接调用 acquireModule<NetworkModule>(NetworkModule.MODULE_NAME) 获取(找不到时抛异常),或用 getModule<NetworkModule>(NetworkModule.MODULE_NAME) 安全获取(找不到返回 null)。推荐 lazy 缓存实例。 - Compose DSL(@Composable 函数中): 通过 LocalActivity.current.getPager() 获取 Pager 实例,再调用 pager.acquireModule<NetworkModule>(NetworkModule.MODULE_NAME)。在 ComposeContainer 类内部(非 @Composable 上下文)可直接调用 acquireModule

  • 检查 success: 回调中先判断 success,为 true 时才安全使用 data。失败时通过 errorMsgresponse.statusCode(注意:Int? 可空)排查。
  • 设置超时: httpRequest / httpRequestBinary 可指定 timeout(秒),默认 30。
  • 非 JSON 回包: SDK 自动包装为 {"data": "原始内容"},通过 data.optString("data") 获取。

Workflow: HTTP Requests

方法选择:

场景方法
简单 GET(无自定义 headers)requestGet(url, param, callback)
简单 POST(无自定义 headers)requestPost(url, param, callback)
自定义 headers / Cookie / 超时httpRequest(url, isPost, param, headers, cookie, timeout, callback)
完整方法签名和参数说明见 NetworkModule API 参考

获取 NetworkModule

Kuikly DSL(在 Pager / ComposeView 中):

import com.tencent.kuikly.core.module.NetworkModule

// lazy 延迟初始化(推荐)
private val networkModule by lazy(LazyThreadSafetyMode.NONE) {
    acquireModule<NetworkModule>(NetworkModule.MODULE_NAME)
}

Compose DSL(在 @Composable 函数中):

import com.tencent.kuikly.core.module.NetworkModule
import com.tencent.kuikly.compose.ui.platform.LocalActivity
import com.tencent.kuikly.core.pager.Pager

@Composable
fun MyScreen() {
    val pager = LocalActivity.current.getPager() as Pager
    val networkModule = pager.acquireModule<NetworkModule>(NetworkModule.MODULE_NAME)
    // 使用 networkModule 发起请求...
}

Compose DSL(在 ComposeContainer 类内部):

@Page("MyComposePage")
class MyComposePage : ComposeContainer() {
    // ComposeContainer 继承自 Pager,可直接调用 acquireModule
    private val networkModule by lazy(LazyThreadSafetyMode.NONE) {
        acquireModule<NetworkModule>(NetworkModule.MODULE_NAME)
    }
}

GET 请求

networkModule.requestGet(
    "https://example.com/api/data",
    JSONObject().apply { put("key", "value") }
) { data, success, errorMsg, response ->
    if (success) {
        val name = data.optString("name")
        val count = data.optInt("count")
    } else {
        val statusCode = response.statusCode // Int? 可能为 null
    }
}

POST 请求

networkModule.requestPost(
    "https://example.com/api/submit",
    JSONObject().apply {
        put("username", "test")
        put("password", "123456")
    }
) { data, success, errorMsg, response ->
    if (success) {
        val result = data.optString("result")
    }
}

通用请求(httpRequest)

networkModule.httpRequest(
    url = "https://example.com/api/data",
    isPost = true,
    param = JSONObject().apply { put("id", 1) },
    headers = JSONObject().apply {
        put("Content-Type", "application/json")
        put("Authorization", "Bearer token")
    },
    cookie = "session_id=abc123",
    timeout = 30
) { data, success, errorMsg, response ->
    // response.statusCode   - HTTP 状态码(Int?)
    // response.headerFields - 响应头(JSONObject)
    if (success) { /* 处理数据 */ }
}

Workflow: Binary Requests

方法选择:

场景方法
下载二进制(GET)requestGetBinary(url, param, callback)
上传二进制(POST)requestPostBinary(url, bytes, callback)
自定义 headers / Cookie / 超时httpRequestBinary(url, isPost, bytes, param, headers, cookie, timeout, callback)
requestPostBinary 内部 param 传 null。若需同时传 binary body 和 query 参数,使用 httpRequestBinary

下载二进制(GET)

networkModule.requestGetBinary(
    "https://example.com/file.png",
    JSONObject()
) { data, success, errorMsg, response ->
    if (success) {
        val fileBytes: ByteArray = data
    }
}

上传二进制(POST)

networkModule.requestPostBinary(
    "https://example.com/upload",
    imageBytes
) { data, success, errorMsg, response ->
    if (success) {
        val responseBytes: ByteArray = data
    }
}

通用二进制请求(httpRequestBinary)

networkModule.httpRequestBinary(
    url = "https://example.com/api/binary",
    isPost = true,
    bytes = uploadBytes,
    param = JSONObject().apply { put("type", "image") },
    headers = JSONObject().apply { put("Content-Type", "application/octet-stream") },
    cookie = "session_id=abc123",
    timeout = 60
) { data, success, errorMsg, response ->
    if (success) {
        val responseBytes: ByteArray = data
    }
}

Workflow: Parsing JSON

使用 opt* 系列方法安全读取(不会抛异常,返回默认值)。

完整的 JSONObject/JSONArray API 列表见 JSON API 参考

核心用法示例

val jsonObj = JSONObject(jsonString)

// 安全读取(不存在时返回默认值)
val str = jsonObj.optString("key")             // 默认 ""
val num = jsonObj.optInt("key")                // 默认 0
val innerObj = jsonObj.optJSONObject("nested")  // JSONObject?
val array = jsonObj.optJSONArray("list")        // JSONArray?

// 写入
jsonObj.put("key", "value")

// 遍历所有 key
for (key in jsonObj.keys()) { /* ... */ }

JSONArray 遍历

val jsonArr = jsonObj.optJSONArray("list") ?: JSONArray()
for (i in 0 until jsonArr.length()) {
    val item = jsonArr.optJSONObject(i) ?: continue
    val name = item.optString("name")
}

参考资源

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.86%
按下载量换算122

Claude

31.23%
按下载量换算106

Cursor

17.28%
按下载量换算59

Gemini CLI

8.19%
按下载量换算28

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

未通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills