# @craftsamo/github-tools 中文文档

规范地址：https://npmcn.com/package/%40craftsamo/github-tools/

版本：0\.11\.0
npm 元数据更新时间：2026-11-08T08:45:26.491Z
中文译文更新时间：2026-11-10T23:01:50.137Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40craftsamo/github-tools
原文对照：https://npmcn.com/package/%40craftsamo/github-tools/?lang=original
项目主页：https://github.com/craft-agent/github-tools#readme
源码仓库：https://github.com/craft-agent/github-tools

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：4.3 MB，30 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=24
- 运行依赖：0 个
- 首次发布：2026-11-04T09:27:27.040Z
- 最新版本发布：2026-11-08T08:45:26.166Z
- 近 30 天下载量：3182（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

GitHub 编码代理工具:问题,项目板,拉出请求,寄存器,发布和动作.

## 安装

```sh
npm install @craftsamo/github-tools
```

也可以使用：`pnpm add @craftsamo/github-tools`、`yarn add @craftsamo/github-tools`、`bun add @craftsamo/github-tools`

## README

# gi-工具

用于编码代理的 GitHub 工具: 问题、项目板、拉取请求、, 储存、释放和行动。 一次执行,每次执行 用最适合它的方式使用.

| 节奏 | 交付 | 被钉住 |
| --- | --- | --- |
| 打开代码 V2 | 本地插件( npm 包, 有技能) | 软件包中的版本 |
| 打开代码 V1 | 本地插件( npm 软件包, 无技能) | 软件包中的版本 |
| 克劳德代码 | 插件: MCP 服务器和技能 | 释放标记,作为参考 |
| 代码 | 插件: MCP 服务器和技能 | 释放标记,作为参考 |
| Grok 构建 | 插件: MCP 服务器和技能 | 释放标签, 如 `@ref` |
| 反重力 | 插件: MCP 服务器和技能 | 释放标记树 URL |
| 赫尔墨斯探员 | 本地插件( Python, 调用命令行) | 释放承诺,如SHA |
| 其他 MCP 主机 | Npm 的 MCP 服务器 | 软件包中的版本 |

0.3.0 从 `craftsamo/agent-github` 改为 `craft-agent/github-tools` 并重新命名为: npm `@craftsamo/github-tools` (曾经是) `@craftsamo/agent-github`,现在从 npm 中删除),插件和 MCP 服务器 `github-tools`,程序 `github-tools` 财务报告和审定财务报表 `github-tools-cli`,设置 `GITHUB_TOOLS_*`。允许规则、插件安装和MCP配置,以0.2.0修改;工具ID不修改.

工具需要 [节点.js](https://nodejs.org/) 24岁或以后 [GitHub 缩写](https://cli.github.com/)被认证为你. [`docs/conventions.md`](https://npmcn.com/package/%40craftsamo/github-tools/docs/conventions.md) 描述工具的名称 他们的行为.

## 安装

从释放中安装, 绝不从默认分支安装: 释放是一个标签 承诺背负建造 `dist/`,而默认分支则没有。 在那个 下方的命令, `<version>` 是一个发行版本( e)`1.2.3`和 `<sha>` 这是 输入标签名称 :

```sh
gh api repos/craft-agent/github-tools/commits/v<version> --jq .sha
```

### 打开代码

OpenCode V2 在 `opencode.json`数字 :

```json
{
  "plugins": [
    {
      "package": "@craftsamo/github-tools@<version>",
      "options": { "toolsets": ["issues", "pull_requests", "projects"] }
    }
  ],
  "permissions": [{ "action": "github_*", "resource": "*", "effect": "ask" }]
}
```

OpenCode V1 将软件包作为字符串,或与其选项相配:

```json
{
  "plugin": [["@craftsamo/github-tools@<version>", { "toolsets": ["issues", "pull_requests", "projects"] }]],
  "permission": { "github_*": "ask" }
}
```

OpenCode 允许任何没有规则名的动作, 因此该插件的请求获得批准 除非规则说 `ask`。阅读工具从不问,所以 `github_*` 阴影 这是安全的.

V1没有技能。 解开包并复制其 `skills/*` 文件夹进入 `~/.config/opencode/skills/`数字 :

```sh
npm pack @craftsamo/github-tools@<version>
tar -xzf craftsamo-github-tools-<version>.tgz
mkdir -p ~/.config/opencode/skills
cp -r package/skills/* ~/.config/opencode/skills/
rm -rf package craftsamo-github-tools-<version>.tgz
```

### 克劳德代码

```sh
claude plugin marketplace add craft-agent/github-tools#v<version>
claude plugin install github-tools@craft-agent
```

### 代码

```sh
codex plugin marketplace add craft-agent/github-tools --ref v<version>
codex plugin add github-tools@craft-agent
```

代码旋转 `-` 输入 `_` 在服务器名称中,它显示为 `mcp__github_tools__github_issue_*`在插件中启动 MCP 服务器 安装目录, 因此名称问题为 `owner/repo#N` 或通过 `repo` (空数) 却有一条话说不通.

### Grok 构建

```sh
grok plugin install craft-agent/github-tools@v<version> --trust
```

Grok 在会话工作目录中启动 MCP 服务器, 因此在克隆内部 一个空的发号 命名了一个寄存器的问题.

### 反重力

从释放标记的树上安装, 绝不从默认分支中安装, 而该分支 没有构建 `dist/`; 反重力克隆标记 `~/.gemini/config/plugins/github-tools`。 。 。 .

```sh
agy plugin install https://github.com/craft-agent/github-tools/tree/v<version>
```

### 赫尔墨斯探员

Hermes 安装承诺而非标记,插件安装禁用:

```sh
hermes plugins install craft-agent/github-tools --ref <sha>
hermes plugins enable github-tools
```

如果一个 Hermes 网关已经运行, 请重新启动它(`hermes gateway restart`改为: 装入插件.

### 任何其他 MCP 主机

将服务器添加到主机的MCP配置中. 旗帜进入 `args`数字 :

```json
{
  "mcpServers": {
    "github-tools": {
      "command": "npx",
      "args": ["-y", "@craftsamo/github-tools@<version>", "--toolsets", "issues,pull_requests,projects"]
    }
  }
}
```

## 工具和技能

每个工具箱都有一个技能 告诉一个特工如何使用工具.

### 问题`issues`(中文(简体) )

| 工具 | 它会做什么 | 类 |
| --- | --- | --- |
| `github_issue_read` | `view` 全文,或 `list` 寄存器的问题或父子的问题,及其问题领域 | 读取 |
| `github_issue_create` | 创建与同类、标签、受让人、里程碑、母体和被封禁的问题、问题字段和董事会有关的问题 | 添加 |
| `github_issue_edit` | 更改标题、正文(或附件)、类型、标签、受让人、里程碑或发行字段 | 覆盖 |
| `github_issue_comment` | 关于某一问题的评论 | 添加 |
| `github_issue_close` | 与理由相近(`completed`, (中文(简体) ), `not_planned`, (中文(简体) ), `duplicate`(中文(简体) ) | 覆盖 |
| `github_issue_reopen` | 重新讨论一个已解决的问题 | 覆盖 |
| `github_issue_relate` | 设置父、子问题、被阻断和阻断问题,只发送不同之处 | 专有 |
| `github_issue_develop` | 在 GitHub 上创建链接到问题的分支, 或返回已经链接的分支 | 专有 |

技术是 [`github-issues`](https://npmcn.com/package/%40craftsamo/github-tools/skills/github-issues/SKILL.md),显示为 `github-tools:github-issues` 在克劳德法典和 `github-tools:issues` 在赫尔墨斯. 问题的类型是组织在定义名称时的问题类型 一个,否则 `type:<kind>` 标签。 问题领域(优先、努力、开始) 日期、目标日期和任何其他日期)是该组织的,所以只有一个 各组织的储存库有这些设备; `list` 由一个过滤器 `field.<name>:<value>` 内 `query`。 。 。 .

### 拖动请求和堆栈( R)`pull_requests`(中文(简体) )

| 工具 | 它会做什么 | 类 |
| --- | --- | --- |
| `github_pr_read` | `view` 一个拉动请求完全, `list` 一个仓库的拉动请求,读取它的 `checks` (最多45秒,工作日志失效) `diff` | 读取 |
| `github_pr_create` | 打开一个被推动的分支的拉动请求,其中包含标签、受让人、审查者、里程碑、结账问题、董事会和附件 | 添加 |
| `github_pr_edit` | 更改标题、正文(或附件)、基底、标签、受让人、审查人、里程碑或结账问题 | 覆盖 |
| `github_pr_comment` | 注释,附有附件 | 添加 |
| `github_pr_review` | 核准、请求修改或评论,并附上行评论 | 添加 |
| `github_pr_ready` | 标记已准备好供审查,或改为草案 | 专有 |
| `github_pr_close` | 关闭 | 覆盖 |
| `github_pr_reopen` | 重开闭合拉动请求 | 覆盖 |
| `github_pr_merge` | 合并, 当被问及时, 其下方的开口层以堆栈形式 | 行政 |
| `github_stack_read` | `view` 以数字表示的本地堆栈或其中的拉取请求,或 `list` 仓库堆栈 | 读取 |
| `github_stack_link` | 将请求合并到一个堆栈中, 或添加到一个上方 | 专有 |
| `github_stack_unlink` | 溶解堆栈, 打开拖放请求 | 覆盖 |

技术是 [`github-pull-requests`](https://npmcn.com/package/%40craftsamo/github-tools/skills/github-pull-requests/SKILL.md),显示为 `github-tools:github-pull-requests` 在克劳德法典和 `github-tools:pull-requests` 在赫尔墨斯。 工具不推动: 推动分支 首先通过承诺 它被推为 `head_sha`,所以拉请求打开,是 检查或合并了确切的承诺。 结 论 保留为 `Closes #N` 因为GitHub没有其他方法可以把它们连接起来 堆栈使用 GitHub 的 REST 堆栈端点, 所以 `gh stack` 不需要扩展. 附文需要gh 2.99 或更新.

### 项目委员会`projects`(中文(简体) )

| 工具 | 它会做什么 | 类 |
| --- | --- | --- |
| `github_project_read` | `view` 具有其领域和观点的董事会, `list` 董事会,或 `item_list` a 董事会项目 | 读取 |
| `github_project_create` | 创建有标准字段和视图的棋盘, 或重用该标题之一 | 专有 |
| `github_project_field_ensure` | 添加字段,或者缺少单个选择的选项 | 专有 |
| `github_project_view_ensure` | 添加保存的视图及其字段、列、组和排序 | 专有 |
| `github_project_link` | 将棋盘链接到同一所有者的仓库 | 专有 |
| `github_project_unlink` | 解除棋盘与寄存器的联系 | 专有 |
| `github_project_item_add` | 向棋盘上放出问题或拉出请求,或以字段值返回其项目 | 专有 |
| `github_project_item_create` | 创建带有字段值的项目草稿 | 添加 |
| `github_project_item_edit` | 设置或清晰的字段值,并修改草案的标题和正文 | 覆盖 |
| `github_project_item_archive` | 归档项目 | 覆盖 |
| `github_project_item_unarchive` | 将存档项目带回 | 覆盖 |
| `github_project_item_convert` | 将草案变成一个问题,包括此类问题、标签和里程碑 | 添加 |

技术是 [`github-projects`](https://npmcn.com/package/%40craftsamo/github-tools/skills/github-projects/SKILL.md),显示为 `github-tools:github-projects` 在克劳德法典和 `github-tools:projects` 内 赫尔墨斯 董事会由它的号码命名, `owner/N`、 URL 或标题 (`Roadmap` 何时 在与储存库相连的板块中发现,然后是储存库 组织,然后是观众。 标志需要 `project` 范围 (单位:千美元)`gh auth refresh -s project`) (中文(简体) ). 没有 API 设置路线图视图的日期字段, 所以 之后 `github_project_create` 设置路线图视图的“日期字段”以启动和 目标在网络UI。 反映一个组织的问题领域的一栏是 读取和任何其他一样,但它的价值是问题本身:董事会工具拒绝 设置或清除它,以及 `github_issue_edit` 两者兼有. `github_project_field_ensure` 与 `issue_field: true` 添加这样的一栏,以及 `github_project_create` 与 `dates: "issue_fields"` 开始 日期和目标日期作为组织理事会的日期.

### 仓库( R)`repos`(中文(简体) )

| 工具 | 它会做什么 | 类 |
| --- | --- | --- |
| `github_repo_read` | `view` 寄存器的设置、特性、合并设置和查看器的权限,或 `list` 拥有者的仓库 | 读取 |
| `github_repo_create` | 创建仓库, 空的或从模板创建 | 行政 |
| `github_repo_edit` | 更改描述、主页、默认分支、主题、特性或合并设置 | 覆盖 |
| `github_repo_visibility` | \* 公开、私人或内部储存库 | 行政 |
| `github_repo_archive` | 归档仓库 | 行政 |
| `github_repo_unarchive` | 取消仓库的存档 | 覆盖 |
| `github_label_read` | `list` 仓库的标签 | 读取 |
| `github_label_create` | 创建标签 | 添加 |
| `github_label_edit` | 重命名、重彩或重写标签 | 覆盖 |
| `github_label_delete` | 删除标签, 从每期中删除并拉动请求 | 行政 |
| `github_milestone_read` | `list` 存储器的里程碑, 并有进展 | 读取 |
| `github_milestone_create` | 创建一个里程碑 | 添加 |
| `github_milestone_edit` | 更改里程碑的标题、到期日期或描述,或关闭或重新打开 | 覆盖 |
| `github_ruleset_read` | `list` 规则和经典分支保护,或 `view` 一个规则 | 读取 |
| `github_ruleset_create` | 创建一个带有参考、规则和绕行角色的规则集 | 行政 |
| `github_ruleset_edit` | 替换规则片段,停止为 `stale` 当它被读到后改变了 | 行政 |
| `github_ruleset_delete` | 删除规则集 | 行政 |

工具集默认关闭: 添加 `repos` 改为 `toolsets`技术是 [`github-repos`](https://npmcn.com/package/%40craftsamo/github-tools/skills/github-repos/SKILL.md),显示为 `github-tools:github-repos` 在克劳德法典和 `github-tools:repos` 在赫尔墨斯. 大多数设置更改需要寄存器上的管理员权限,以及规则 私人仓库需要付费计划。 删除、更名、转让或 伪造寄存器留给用户.

### 释放(`releases`(中文(简体) )

| 工具 | 它会做什么 | 类 |
| --- | --- | --- |
| `github_release_read` | `list` 储存库的释放,包括草稿,或 `view` 随笔记和承诺 | 读取 |
| `github_release_create` | 创建草稿发布, 可选择使用生成的注释 | 添加 |
| `github_release_edit` | 更改标题、注释、预释旗帜、最新状况或草案目标 | 覆盖 |
| `github_release_publish` | 发布草稿,停止为 `stale` 当它的行为不同于 `head_sha` | 行政 |
| `github_release_delete` | 删除释放及其资产,保留其标记 | 行政 |

工具集默认关闭: 添加 `releases` 改为 `toolsets`技术是 [`github-releases`](https://npmcn.com/package/%40craftsamo/github-tools/skills/github-releases/SKILL.md),显示为 `github-tools:github-releases` 在克劳德法典和 `github-tools:releases` 内 赫尔墨斯 新的释放总是草案;资产尚未涵盖.

### 行动( E)`actions`(中文(简体) )

| 工具 | 它会做什么 | 类 |
| --- | --- | --- |
| `github_workflow_read` | `list` 存储库的工作流程,包括已禁用的工作流程,或 `view` 一个在分行或标签上的文件 | 读取 |
| `github_run_read` | `list` 按分支、工作流程、状况、事件或承诺运行的工作流程,或 `view` 一个有它的工作和失败的日志,在它运行时等待 | 读取 |
| `github_workflow_run` | 随输入手动启动工作流程,停止为 `stale` 当裁判与 `head_sha` | 行政 |
| `github_run_rerun` | 重新运行一个完成的运行失败的工作, 每个工作, 或者一个工作 | 行政 |
| `github_run_cancel` | 取消已队列或运行的运行 | 行政 |

工具集默认关闭: 添加 `actions` 改为 `toolsets`技术是 [`github-actions`](https://npmcn.com/package/%40craftsamo/github-tools/skills/github-actions/SKILL.md),显示为 `github-tools:github-actions` 在克劳德法典和 `github-tools:actions` 内 赫尔墨斯 每个动作每次都会问,因为一个工作流程可以部署或 出版它的名字。 启用或取消工作流程,删除 a 运行和下载的文物尚未覆盖.

## 阅读和写作

每个读取的工具都命名 `github_<domain>_read`。阅读可以不经询问运行;写入 被绳子所证实.

| 节奏 | 阅读而不询问 |
| --- | --- |
| 打开代码 | 总是; 插件仅在写前询问 |
| 克劳德代码 | 规则 `mcp__plugin_github-tools_github-tools__*_read` 内 `permissions.allow` 联 合 国 `~/.claude/settings.json` 或项目 |
| 代码 | 总是; Codex 运行宣布的工具 `readOnlyHint` 未询问, 如读取工具所做的 |
| Grok 构建 | `grok --allow 'MCPTool(github-tools__*_read)' --allow 'MCPTool(github_*_read)'` (两项规则;见下文) |
| 反重力 | 规则 `mcp(github-tools_github-tools/github_issue_read)` 内 `permissions.allow` 联 合 国 `~/.gemini/antigravity-cli/settings.json`,每个已读工具一个 |
| 赫尔墨斯 | 总是; 插件仅在写前询问 |

凡所问之作文,而所不取之作文:

-   **打开代码** 不允许任何动作没有规则名称, 因此未询问写入运行, 除非 规则要求: `github_*` 规则如下 [打开代码](https://npmcn.com/package/%40craftsamo/github-tools/#readme-opencode)。 。 。 .
-   **代码** 下级 `codex exec`,以及 **Grok 构建** 下级 `grok -p`,拒绝 除非事前允许,否则他们不能写信询问.
-   **Grok 构建** 通过插件调用工具 `use_tool` 工具,以及 代理机常常在不先使用其服务器的情况下命名工具( s)`github_project_read`) (中文(简体) ). Grok根据给定的名字检查规则,所以服务器合格规则 单枪匹马和第一次通话不相符 `grok -p` 拒绝就停下来 而不是让代理重试 `github-tools__github_project_read`。 。 。 . 第二条规则与短名相匹配;一则写法仍然不匹配.
-   **反重力** 在任何 MCP 工具之前询问 规则不允许、 读取包含,以及 命名插件的服务器 `github-tools_github-tools` (插图,然后是服务器). `agy -p` 拒绝它不能要求的工具; `--dangerously-skip-permissions` 运行所有未询问的工具.
-   **赫尔墨斯** `hermes chat -q` 拒绝它不能要求的写作; `hermes -z` 财务报告和审定财务报表 `--yolo` 跳过批准, 所以写然后运行未询问.

## 设置

每个切入点都采用相同的设置. 旗帜胜过环境 变量,而选项或设置也胜过变量.

| 设置 | 旗帜 | 变量 | 含义 |
| --- | --- | --- | --- |
| `toolsets` | `--toolsets` | `GITHUB_TOOLS_TOOLSETS` | `issues`, (中文(简体) ), `pull_requests`, (中文(简体) ), `projects`, (中文(简体) ), `repos`, (中文(简体) ), `releases`, (中文(简体) ), `actions` 或者说 `all`; 默认 `issues`, (中文(简体) ), `pull_requests` 财务报告和审定财务报表 `projects` |
| `read_only` | `--read-only` | `GITHUB_TOOLS_READ_ONLY` | 没有记录写入的工具; 胜过其他设置 |
| `tools` | `--tools` | `GITHUB_TOOLS_TOOLS` | 用 ID 添加的单个工具, 不管它们的工具集 |
| `exclude_tools` | `--exclude-tools` | `GITHUB_TOOLS_EXCLUDE_TOOLS` | 用 ID 删除的单一工具; 胜出 `tools` 财务报告和审定财务报表 `toolsets` |
| `confirm` | `--confirm` | `GITHUB_TOOLS_CONFIRM` | 只有 MCP 服务器 : `harness` (违约)或 `elicitation`,作为 `docs/conventions.md` 描述 |

列表在旗帜或变量中被逗号分隔. GitHub 动作不允许 隐藏或配置变量被命名 `GITHUB_*`,所以在一个工作流程 通过一个 通过数值 `env:` 从另一个名字的秘密,例如. `GITHUB_TOOLS_READ_ONLY: ${{ secrets.TOOLS_READ_ONLY }}` (设立这样一个机构) 环境变量 `env:` 页:1 每根绳子都会读出:

-   **打开代码** 选择插件 `options` 列表为数组和 `read_only` 像个布尔人 回到变量上 V2 运行插件在 其背景服务,它维持它开始的环境:a 变量设置 `opencode run` 在服务生效前启动无效 在此环境中重新开始( e)`opencode service restart`。 V1 运行插件 在自己的过程中.
    
-   **赫尔墨斯** 带 `plugins.entries.github-tools.settings` 内 `config.yaml`数字 :
    
    ```yaml
    plugins:
      entries:
        github-tools:
          settings:
            toolsets: [issues, pull_requests, projects]
            read_only: false
            exclude_tools: [github_pr_merge]
    ```
    
    插件将自己的环境传递到它运行的命令行,所以 变量也起作用。 运行的网关保持它开始的环境; 重新启动( e)`hermes gateway restart`) 在换了后.
    
-   **Claude Code, Grok 建筑和反重力** 启动插件的服务器,无需 标记并传递客户端的环境,所以将变量设置在 环境 绳子运行在.
    
-   **代码** 仅通过插件的 MCP 服务器的几个基本变量( 如 `PATH` 财务报告和审定财务报表 `HOME`)和插件的显示名称,即 以上变量:将其设置在环境代码运行中。 变量 除设置外还读取的工具 `TOOL_VARIABLES` 内 `src/entry/settings.ts`· ; `pnpm run manifests` 在仪表上加载它 设置变量。 传递旗帜,或给服务器一个变量 软件包不命名, 将服务器添加到 `[mcp_servers]` 在代码x中 `config.toml` 而不是使用插件: 标记进入 `args`, (中文(简体) ), `env_vars` 命名要从 Codex 环境中转发的变量,以及 `env` 套装 固定值.
    
    ```toml
    [mcp_servers.github-tools]
    command = "npx"
    args = ["-y", "@craftsamo/github-tools@<version>", "--toolsets", "issues,pull_requests,projects"]
    env_vars = ["GITHUB_TOOLS_READ_ONLY"]
    ```
    

## 版式

-   `src/core/` 工具,没有绳子.
-   `src/mcp/` —— MCP 服务器,用于 `dist/mcp.js` 运行于 `github-tools`。 。 。 .
-   `src/opencode/` —— OpenCode 插件,构建为 `dist/opencode.js`。 。 。 .
-   `src/cli/` ——赫尔墨斯插件调用的命令行,构建为 `dist/cli.js` 运行于 `github-tools-cli`。 。 。 .
-   `src/hermes/`, (中文(简体) ), `plugin.yaml` 财务报告和审定财务报表 `__init__.py` ——赫尔墨斯插件.
-   `skills/` - 每个工具箱一个技能, `skills/<name>/SKILL.md`,每个 从软件包或插件根取出技能负载的绳索.
-   `.claude-plugin/`, (中文(简体) ), `.codex-plugin/`, (中文(简体) ), `.agents/plugins/`, (中文(简体) ), `.mcp.json`, (中文(简体) ), `.antigravity-plugin/` 财务报告和审定财务报表 `mcp_config.json` ——插件显示 其他绳子。 代码读取 `.codex-plugin/plugin.json`; 一个根 `plugin.json` 使其装入插件为代理插件,其工具 预算隐藏了超过固定大小的工具。 词根 `.mcp.json` 这是 配置 Grok 构建读取( 使用 `${CLAUDE_PLUGIN_ROOT}`变量 grok Build 和 Claude 代码扩展) Claude Code 拒绝它从文件提供的MCP服务器项目.

如何释放是在 [`RELEASING.md`](https://npmcn.com/package/%40craftsamo/github-tools/RELEASING.md)。 。 。 .

## 许可证

[麻省理工学院](https://npmcn.com/package/%40craftsamo/github-tools/LICENSE)

## 常见问题

### @craftsamo/github-tools 是什么？

GitHub 编码代理工具:问题,项目板,拉出请求,寄存器,发布和动作\.

### 如何安装 @craftsamo/github-tools？

在项目目录运行 npm install @craftsamo/github-tools，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 github-tools、github-tools-cli，可以用 npx github-tools 直接运行。

### @craftsamo/github-tools 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/craftsamo\_\_github-tools 是否存在。

### @craftsamo/github-tools 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @craftsamo/github-tools 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @craftsamo/github-tools 可以商用吗？

@craftsamo/github-tools 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @craftsamo/github-tools 的下载量有多少？

根据 npm 官方下载统计，@craftsamo/github-tools 在 2026/10/11 – 2026/11/09 这 30 天内被下载 3,182 次，日均约 106 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @craftsamo/github-tools 还在维护吗？

最新版本 0\.11\.0 发布于 2026/11/08（2 天前）；至今共发布 14 个版本，其中过去 12 个月发布了 14 个；首次发布于 2026/11/04。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

