我给我的 terminal 配了一个名叫 Nura 的 AI agent。她诊断了我破碎的埃塞俄比亚互联网。

发布: (2026年2月16日 GMT+8 03:15)
8 分钟阅读
原文: Dev.to

Source: Dev.to

我构建的

我住在埃塞俄比亚的亚的斯亚贝巴。我的网络一天会多次中断。不是那种“慢速 YouTube”——你的 SSH 会话消失,git push 失败,你正盯着闪烁的光标的情况。

我厌倦了每次都手动运行 pingtraceroutedig。于是我构建了一个名为 Nura 的 AI 代理。

Nura 24/7 监控你的网络。她在一个美观的全屏终端仪表盘中实时跟踪 ping、DNS、HTTP、抖动和丢包,并以 sparkline 图表展示。但关键是——她不仅仅是显示数字。

当出现问题时,Nura 会进行调查

按下 [i],Nura 会在你的真实网络上部署九个真实的诊断工具:

  1. 扩展 ping
  2. traceroute
  3. 使用 Google 和 Cloudflare DNS 的 dig
  4. 带完整时间拆分的 curl
  5. 路由表分析

她收集所有输出字节,交给 GitHub Copilot CLI 进行分析,并为你生成一份简明的英文报告:哪里出了问题、原因以及如何修复。

她不是一个仪表盘。她是你的 AI 网络代理。

技术栈

  • Go – 终端的 Elm Architecture
  • Lip Gloss – 类 CSS 的声明式样式,支持粗边框、颜色渐变、动画条
  • GitHub Copilot CLI – Nura 的分析大脑
  • 9 个系统工具pingtraceroutedigcurlipnslookup 等(由 Nura 执行)
  • 2,500+ 行 Go – 单一二进制文件,无运行时依赖

Nura 的功能

实时仪表盘(粗彩色边框)

面板边框颜色显示内容
PING![green]延迟、最小/最大值、丢包率
DNS![blue]域名解析速度
HTTP![orange]完整请求时序 + 状态码
HEALTH![magenta]复合 0‑100 分数,带双粗渐变进度条
Sparkline 图表随时间的趋势
活动流Nura 记录的每一个事件

AI 调查([i]

当你请求 Nura 进行调查时,她会执行以下步骤:

步骤操作
1运行扩展 ping(10 个数据包)
2跟踪网络路由
3测试三个 DNS 解析器(系统、Google 8.8.8.8、Cloudflare 1.1.1.1)
4使用完整时序拆分测量 HTTP(DNS / Connect / TLS / TTFB / Total)
5检查路由表和网络接口
6运行 nslookup 进行验证
7所有 原始输出喂给 GitHub Copilot CLI
8编写结构化报告,包含诊断、发现、建议和严重程度
9若 Copilot CLI 无法访问(因为网络中断),则回退到本地分析

调查界面会显示动画进度信息,例如:

  • “Nura 正在追踪你的数据包路径…”
  • “Nura 正在向 Copilot CLI 征求第二意见…”

…并伴随一个粗大的动画进度条。

多视图

  • 仪表盘d
  • 事件e
  • 调查i
  • 帮助?

演示

Nura 演示

  • 仓库: (未提供链接)
  • Asciinema 录制: (未提供链接)

演示展示:

  • 带有循环颜色 ASCII 标志、粗边框面板、实时指标的仪表盘
  • 介绍 Nura 的帮助视图
  • 事件视图
  • 调查视图 – 动画进度条、九个工具运行、AI 生成的报告
  • 带有累计 sparkline 数据的最终仪表盘

Source:

我的 GitHub Copilot CLI 体验

1. Copilot CLI 作为 Nura 的“大脑”(运行时)

这就是本次提交与众不同的地方。Copilot CLI 不仅是一个开发工具——它是应用程序内部的推理引擎

当 Nura 运行她的九个诊断工具时,会收集数百行原始输出(ping 统计、traceroute 跳数、DNS 查询时间、HTTP 时延细分、路由表)。她把所有内容写成结构化提示并喂给 gh copilot explain

Copilot CLI 返回人类能够真正理解的结果,例如:

“您在第 7 跳的 ISP 网关正在丢包。可以切换到 Cloudflare DNS 作为临时解决方案。”

关键在于:Copilot CLI 此时并没有生成代码,而是充当领域专家——一个能够阅读原始诊断输出并用普通英语解释的网络工程师。不会 traceroute 的开发者只需按 [i] 就能得到可操作的建议。

由于该工具是为不可靠网络设计的,Nura 还有一个优雅的回退方案。如果她无法连接 Copilot CLI(网络中断——正是你正在调查的原因),她会在本地对原始输出进行模式匹配分析,仍然生成报告。

2. Copilot CLI 作为我的开发伙伴(构建时)

我主要是 TypeScript 开发者,Go 对我来说是新领域。Copilot CLI 在以下方面帮助了我:

# 理解 Bubble Tea 使用的 Elm‑style 架构
gh copilot explain "Bubble Tea Model‑Update‑View pattern"

# 学习 Go 并发原语
gh copilot explain "sync.RWMutex for concurrent goroutine access"

# 解析命令行工具输出
gh copilot suggest -t shell "parse ping output for latency and packet loss"

# 使用 Lip Gloss 创建粗边框
gh copilot explain "lipgloss thick border custom Border struct"

3. 为什么这个提交脱颖而出

大多数提交使用 Copilot CLI 来构建某些东西。这是预期的行为。

NetPulse/Nura 将 Copilot CLI 用作运行时 AI 引擎——把编码助手转变为任何人都能使用的网络诊断专家。按一下按钮,即可得到诊断报告。这种集成方式改变了开发者工具的使用人群。

而且整个系统是因为我真的需要它而构建的。当你的网络不稳定时,你需要一个能够在本地仍然运行的 AI 助手。Nura 正好提供了这一点。

我们的网络每天会掉线 5 次,而你的生计依赖于持续推送代码,所以你必须自己打造工具。

技术栈

  • Go
  • GitHub Copilot CLI — Nura 的分析引擎
  • 9 system toolspingtraceroutedigcurlipnslookup
0 浏览
Back to Blog

相关文章

阅读更多 »