DEV Community

Cover image for The AI That Fixed My Life in Ethiopia: Meet Nura.
Natnael Getenew
Natnael Getenew

Posted on

The AI That Fixed My Life in Ethiopia: Meet Nura.

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

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.

In Ethiopia, a dropped connection is a lost revenue. Every minute my SSH session hangs is a minute I'm not building my next startup. I couldn't wait for the ISP, so I built an expert.

I got tired of running ping and 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 9 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.

By feeding raw, messy output from 9 different system utilities into Copilot CLI, Nura transforms "Traceroute Hop 7 Timeout" into "Your ISP gateway is congested—switch to Cloudflare DNS.

The Stack

Built in 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 (executed by Nura)

2,500+ lines of Go. Single binary. No runtime dependencies.

What Nura Does

Real-Time Dashboard with thick colored borders:

  • PING (green border) -- latency, min/max, packet loss
  • DNS (blue border) -- name resolution speed
  • HTTP (orange border) -- full request timing + status code
  • HEALTH (magenta border) -- composite 0-100 score with double-thick gradient progress bar
  • Sparkline charts showing trends over time
  • Nura's Activity Feed tracking every event

AI Investigation (press [i]):

When you ask Nura to investigate, she:

Step What Nura Does
1 Runs extended ping (10 packets)
2 Traces the network route
3 Tests 3 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, severity
9 Falls back to local analysis if Copilot CLI is unreachable (because broken internet)

The investigation screen shows animated progress: "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), Nura's Investigation (i), Help (?)

Demo

Nura

Repository: https://github.com/Garinmckayl/nura

Asciinema Recording: https://asciinema.org/a/Af3OJHZRkdcIpCYx

The demo shows:

  1. Dashboard with color-cycling ASCII logo, thick-bordered panels, live metrics
  2. Help view introducing Nura
  3. Events view
  4. Nura's investigation animated progress bar, 9 tools running, full AI report
  5. 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 9 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 comes back with something a human can actually understand: "Your ISP's gateway at hop 7 is dropping packets. Switch to Cloudflare DNS as a workaround."

That's 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.

And because the tool is designed for unreliable networks, Nura has a graceful fallback. If she can't reach Copilot CLI (because the internet is broken the whole reason you're investigating), she runs a local pattern-matching analysis on the raw output and still gives you a report.

2. Copilot CLI as My Development Partner (Build Time)

I'm primarily a TypeScript developer. Go was new territory. Copilot CLI got me through:

  • gh copilot explain "Bubble Tea Model-Update-View pattern" - understanding the Elm Architecture
  • gh copilot explain "sync.RWMutex for concurrent goroutine access" - the threading model for real-time probe data
  • gh copilot suggest -t shell "parse ping output for latency and packet loss" - output parsing for all 9 diagnostic tools
  • gh copilot explain "lipgloss thick border custom Border struct" - creating the thick ┏━━━┓ borders

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's the kind of integration that changes who can use developer tools.

And the whole thing was built because I actually need it. When your internet drops 5 times a day and your livelihood depends on pushing code, you build your own tools.

Tech Stack

  • Go
  • GitHub Copilot CLI - Nura's analysis engine
  • 9 system tools -- ping, traceroute, dig, curl, ip, nslookup

Top comments (0)