I gave my terminal an AI agent named Nura. She diagnoses my broken Ethiopian internet.
Source: Dev.to
What I Built
I live in Addis Ababa, Ethiopia. My internet dies multiple times a day. Not “slow YouTube” dies – your SSH session is gone, your git push vanished, and you’re staring at a blinking cursor dies.
I got tired of running ping, traceroute, and dig manually every single time. So I built an AI agent named Nura.
Nura watches your network 24/7. She tracks ping, DNS, HTTP, jitter, and packet loss in a beautiful full‑screen terminal dashboard with live sparkline charts. But here’s the thing – she doesn’t just show you numbers.
When something goes wrong, Nura investigates
Press [i] and Nura deploys nine real diagnostic tools on your actual network:
- extended ping
- traceroute
- dig with Google and Cloudflare DNS
- curl with full timing breakdown
- routing‑table analysis
She collects every byte of output, hands it to GitHub Copilot CLI for analysis, and writes you a plain‑English report: what’s broken, why, and how to fix it.
She’s not a dashboard. She’s your AI network agent.
The Stack
- Go – Elm Architecture for terminals
- Lip Gloss – CSS‑like declarative styling with thick borders, color gradients, animated bars
- GitHub Copilot CLI – Nura’s brain for analysis
- 9 system tools –
ping,traceroute,dig,curl,ip,nslookup, etc. (executed by Nura) - 2,500+ lines of Go – single binary, no runtime dependencies
What Nura Does
Real‑Time Dashboard (thick colored borders)
| Panel | Border color | Shows |
|---|---|---|
| PING | ![green] | latency, min/max, packet loss |
| DNS | ![blue] | name‑resolution speed |
| HTTP | ![orange] | full request timing + status code |
| HEALTH | ![magenta] | composite 0‑100 score with double‑thick gradient progress bar |
| Sparkline charts | – | trends over time |
| Activity Feed | – | every event Nura records |
AI Investigation ([i])
When you ask Nura to investigate, she performs the following steps:
| Step | Action |
|---|---|
| 1 | Runs extended ping (10 packets) |
| 2 | Traces the network route |
| 3 | Tests three DNS resolvers (system, Google 8.8.8.8, Cloudflare 1.1.1.1) |
| 4 | Measures HTTP with full timing breakdown (DNS / Connect / TLS / TTFB / Total) |
| 5 | Checks routing tables and network interfaces |
| 6 | Runs nslookup for verification |
| 7 | Feeds all raw output to GitHub Copilot CLI |
| 8 | Writes a structured report with diagnosis, findings, recommendations, and severity |
| 9 | Falls back to local analysis if Copilot CLI is unreachable (because the internet is broken) |
The investigation screen shows animated progress messages such as:
- “Nura is tracing the route your packets take…”
- “Nura is asking Copilot CLI for a second opinion…”
…with a thick animated progress bar.
Multiple Views
- Dashboard –
d - Events –
e - Investigation –
i - Help –
?
Demo
- Repository: (link not provided)
- Asciinema recording: (link not provided)
The demo shows:
- Dashboard with color‑cycling ASCII logo, thick‑bordered panels, live metrics
- Help view introducing Nura
- Events view
- Investigation view – animated progress bar, nine tools running, AI‑generated report
- Final dashboard with accumulated sparkline data
My Experience with GitHub Copilot CLI
1. Copilot CLI as Nura’s Brain (Runtime)
This is what makes the submission different. Copilot CLI isn’t just a dev tool – it’s the inference engine inside the application.
When Nura runs her nine diagnostic tools, she collects hundreds of lines of raw output (ping statistics, traceroute hops, DNS query times, HTTP timing breakdowns, routing tables). She writes it all to a structured prompt and feeds it to gh copilot explain.
Copilot CLI returns something a human can actually understand, e.g.:
“Your ISP’s gateway at hop 7 is dropping packets. Switch to Cloudflare DNS as a workaround.”
The key: Copilot CLI isn’t generating code here. It’s acting as a domain expert – a network engineer who can read raw diagnostic output and explain it in plain English. A developer who doesn’t know what a traceroute means can press [i] and get actionable advice.
Because the tool is designed for unreliable networks, Nura has a graceful fallback. If she can’t reach Copilot CLI (the internet is broken – the very reason you’re investigating), she runs a local pattern‑matching analysis on the raw output and still produces a report.
2. Copilot CLI as My Development Partner (Build Time)
I’m primarily a TypeScript developer; Go was new territory. Copilot CLI helped me through:
# Understanding the Elm‑style architecture used by Bubble Tea
gh copilot explain "Bubble Tea Model‑Update‑View pattern"
# Learning Go concurrency primitives
gh copilot explain "sync.RWMutex for concurrent goroutine access"
# Parsing command‑line tool output
gh copilot suggest -t shell "parse ping output for latency and packet loss"
# Creating thick borders with Lip Gloss
gh copilot explain "lipgloss thick border custom Border struct"
3. Why This Submission Stands Out
Most submissions use Copilot CLI to build something. That’s expected.
NetPulse/Nura uses Copilot CLI as a runtime AI engine – turning a coding assistant into a network‑diagnostics expert that anyone can use. Press a button, get a diagnosis. That kind of integration changes who can use developer tools.
And the whole thing was built because I actually need it. When your internet is flaky, you need an automated, AI‑powered assistant that can still operate locally. Nura delivers exactly that.
Our internet drops 5 times a day, and your livelihood depends on pushing code, so you build your own tools.
Tech Stack
- Go
- GitHub Copilot CLI — Nura’s analysis engine
- 9 system tools —
ping,traceroute,dig,curl,ip,nslookup, etc.
