如何配置 Oh My Posh GitHub Copilot 段落认证并显示配额用量?
2026/9/14 18:28:20 网站建设 项目流程

如何配置 Oh My Posh GitHub Copilot 段落认证并显示配额用量?

【免费下载链接】oh-my-poshThe most customisable and low-latency cross platform/shell prompt renderer项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-posh

如果你想在 shell 提示符里直接看到 GitHub Copilot 的配额消耗——包括 premium interactions(高级交互)、inline completions(行内补全)和 chat(聊天)三项用量——就需要配置 Oh My Posh 的copilot段落。这个段落通过 GitHub 接口拉取你的 Copilot 用量统计,因此有一个明确的前置条件:必须先用内置的 OAuth 设备码流程完成 GitHub 认证,认证通过后段落才能获取并展示配额数据。本文的适用对象是已经安装了 Oh My Posh 的任意 shell 用户,目标是完成"认证 + 配置段落 + 验证提示符显示配额"这一条连续路径。

第一步:用设备码流程完成 GitHub 认证

copilot段落要求先通过 GitHub 认证才能访问用量数据,认证使用 Oh My Posh 内置的 OAuth device code flow:

oh-my-posh auth copilot

执行后会发生以下事情:

  1. 终端显示一个设备码(device code)和验证 URL;
  2. 打开浏览器跳转到 GitHub 的授权页面;
  3. 提示你输入设备码;
  4. 成功后访问令牌(access token)被安全存储,供后续自动使用。

令牌保存在本机安全存储中,之后每次段落渲染时会自动读取,无需在配置文件里手动填写 token,也不需要在配置中额外指定认证相关字段。如果认证过期或失败,重新运行一次上面的命令即可。

第二步:在配置文件中添加 copilot 段落

编辑你的config.omp.json,将下面的段落加入segments数组(示例来自官方文档,可按需调整颜色和字体字形):

{ "type": "copilot", "style": "diamond", "leading_diamond": "\ue0b6", "trailing_diamond": "\ue0b4", "foreground": "#111111", "background": "#fee898", "template": " \uec1e {{ .Premium.Percent.Gauge }} ", "cache": { "duration": "5m", "strategy": "session" }, "options": { "http_timeout": 1000 } }

各字段与当前任务相关的说明:

  • "type": "copilot"指定段落类型,是整个配置生效的前提;
  • template决定提示符里显示什么,示例使用默认模板\uec1e {{ .Premium.Percent.Gauge }},即 Copilot 图标加 premium 配额的用量仪表条;其中\uec1e等是字形码点,属于文档示例的默认值,你可以换成自己的模板表达式(见下一节);
  • cache"duration": "5m"表示用量数据最多 5 分钟刷新一次,避免每次渲染提示符都请求接口;
  • options.http_timeout是段落发起 HTTP 请求的超时时间(毫秒),默认值为20,示例中放宽到1000

自定义模板:显示具体配额数字

段落的模板可以使用以下数据属性(引自 copilot 段落文档):

属性类型含义
.PremiumCopilotUsagepremium interactions 用量数据
.Premium.Usedint已使用的 premium 交互次数
.Premium.Limitint可用的 premium 交互总次数
.Premium.PercentPercentage已用配额百分比(0-100)
.Premium.RemainingPercentage剩余配额百分比(0-100)
.Premium.Unlimitedboolpremium 配额是否无限制
.Inline.Used/.Inline.Limit/.Inline.Percent/.Inline.Remaining/.Inline.Unlimited同上inline completions 用量
.Chat.Used/.Chat.Limit/.Chat.Percent/.Chat.Remaining/.Chat.Unlimited同上chat 用量
.BillingCycleEndstring当前计费周期的结束日期

Percentage类型除了数值外还提供三个方法:

方法返回说明
.Gauge()string显示剩余容量的 5 格仪表条(如▰▰▰▰▱
.GaugeUsed()string显示已用容量的 5 格仪表条(如▰▱▱▱▱
.String()string数值百分比(如75

文档给出的仪表条可视化示例(表示剩余容量):

  • 0% 已用(100% 剩余):▰▰▰▰▰
  • 20% 已用(80% 剩余):▰▰▰▰▱
  • 40% 已用(60% 剩余):▰▰▰▱▱
  • 60% 已用(40% 剩余):▰▰▱▱▱
  • 80% 已用(20% 剩余):▰▱▱▱▱
  • 100% 已用(0% 剩余):▱▱▱▱▱

如果想在仪表条之外同时显示具体数字,可以用文档中的示例模板:

"template": "{{ .Premium.Percent.Gauge() }} {{ .Premium.Used }}/{{ .Premium.Limit }}"

或者用.GaugeUsed()显示"已用"方向的仪表条:

"template": "{{ .Premium.Percent.GaugeUsed() }} {{ .Premium.Used }}/{{ .Premium.Limit }}"

验证配置是否生效

保存配置后回到 shell,观察提示符:

  • 配置正确且认证有效时,copilot段落会显示上面对应的仪表条(或你自定义的模板输出),用量数据按cache设定定期刷新;
  • 如果提示符里看不到这个段落,最常见的原因是尚未认证。段落实现中在未找到令牌时会直接跳过渲染,错误信息为no access token available, use 'oh-my-posh auth copilot' to authenticate(见 src/segments/copilot.go),此时重新执行oh-my-posh auth copilot完成认证即可。

两点限制需要注意:

  • 认证和配额请求都依赖 GitHub 网络接口,接口不可达或响应中没有配额数据时段落不会显示;
  • http_timeout默认只有20毫秒,如果网络延迟较高而段落长时间不显示,可按示例把该值调大。

完成认证与段落配置后,提示符即可持续展示当前计费周期内的 Copilot 配额用量;如需查看完整的属性与模板写法,可参考 GitHub Copilot 段落文档 和 模板文档。

【免费下载链接】oh-my-poshThe most customisable and low-latency cross platform/shell prompt renderer项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-posh

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询