Overview
When your internet dies, Uplink diagnoses it on-device, fixes what it can, and calls your provider for you. I built it in one day at the Devin Hackathon, Hackerhouse @ GT (Georgia Tech, Atlanta), on Oct 24, 2026, with five Devin sessions building its slices in parallel.
Problem
When the internet goes down, someone has to work out which hop failed, try the fixes on their side, then phone the provider, read out the account details, push back when the rep blames the router, and wait to hear back.
What it does
Watches every hop. Wi-Fi, router, DNS, the provider's edge and the internet are each probed every 1.5 s.Diagnoses on the laptop. The fault is pinned down on-device. A local Llama 3.2 3B model (Ollama) wakes only during an outage, explains it in plain English, then unloads.Fixes what's on your side. Repair plugins flush DNS, switch resolver, renew DHCP and reconnect Wi-Fi, re-probing after each one. They rehearse by default and apply only with opt-in admin rights.Calls the provider. When the provider is at fault and the outage persists (3 min by default; 8 s in the demo), an AI voice agent — Vapi, GPT-4o, on a real Twilio number — phones the provider's support line with the account details and the evidence. It pushes back when the rep blames the router, and comes back with a ticket number, the cause, an ETA, a credit and anything the customer must do, like paying a bill.Calls you back. Then it phones the customer with that update — only when there is news. Both calls wait for the person who picks up to speak first.Works with no internet
Everything up to the phone call runs on the laptop. For the call itself, a cloud watchdog — a Cloudflare Worker with a Durable Object — stands by.
The laptop checks in every 5 s, and each check-in carries a ready-to-place call.After 20 s of silence, the watchdog places the provider call itself, follows it, and phones the customer when it ends with news — all while the house is still offline.When the laptop is back online, it picks up both calls.Exactly one side ever dials the customer: the cloud claims the call before dialing, and the laptop takes over only after the cloud confirms it stood down.How Devin built it
I wrote one shared typed contract, then ran five Devin sessions in parallel, one slice each:
A — network monitor and diagnosisB — repair pluginsC — the voice-call agentD — the mission-control dashboardE — the Devin runtime clientTogether with the repair Devin opened at runtime, Devin's commits were about 73% of the code at submission: 4,796 of 6,596 lines.
Devin runs inside it
A fault the playbook can't handle goes to the Devin API (v3) with the evidence. Devin writes a new repair plugin with tests and opens a pull request.
PR #1 — an IPv6 black hole, with 10 tests — was opened about 2½ minutes after the fault, and is merged.PR #2 — a path-MTU black hole: slow HTTPS behind a healthy ping — came from a real fault on our team's hotspot.With no internet, the request queues and goes out once a connection returns.A 6-hour guard stops repeat sessions for a chronic fault, and sessions have an ACU cap.Measured in a real rehearsal
A real firewall outage, with real phones:
Diagnosed on the laptop 13 s after the outage.The provider's phone rang 18 s after the outage — placed by the cloud, with the laptop offline.The customer's phone rang 7 s after the provider call ended, with the house still offline.0 duplicate calls.Demo controls
Imitate outage — a real outage: the macOS pf firewall blocks everything past the router while the router still answers.Calling on/off — off means no phone rings: calls fall back to a scripted mock and the cloud is disarmed. The setting is saved across restarts.A native macOS app (Swift/AppKit) wraps the dashboard in a window, puts a status dot in the menu bar, adds Demo menu shortcuts, and starts the local server itself.My Contributions
I was the architect, integrator and PM.
Wrote the shared typed contract the five Devin sessions built againstRan the five Devin sessions and integrated their slicesBuilt the orchestrator loop, the outage switch and the cloud watchdog integrationBuilt the native macOS appRan the live demo; Hussain played the customer and made the demo videoStack
App: Next.js 15 (App Router), TypeScript, Tailwind CSS v4, framer-motion, lucide-react
Tests: Vitest — 206 tests, no network calls
On-device AI: Ollama + Llama 3.2 3B
Voice: Vapi + Twilio
Cloud watchdog: Cloudflare Workers + Durable Objects (wrangler)
Self-repair: Devin API v3
Desktop: Swift/AppKit + WKWebView macOS app
Demo outage: macOS pf firewall
Links
Live dashboard — the hosted page is the dashboard UI; the real product runs on your laptop, because it probes the local networkDevin Hackathon project postingSource on GitHubPR #1 — Devin's IPv6 black-hole repair plugin