Using Claude to manage static IP assignments

gherlein1 pts0 comments

Hey Claude, Set the IP address and name for the new BrightSign Player? · Greg Herlein

Herlein

Home

Posts

About Me

Projects

Resume

Staffing

© 2018-2026. All rights reserved.

Built with Hugo<br>Theme Blackburn

Hey Claude, Set the IP address and name for the new BrightSign Player?

19 Jul 2026, 00:00

ai /

claude /

unifi /

homelab /

brightsign /

go /

automation /

skills

Here&rsquo;s a tiny, stupid problem that has stolen an embarrassing amount of my life: I plug a BrightSign player into my network, it grabs whatever dynamic IP the UniFi controller feels like handing out, and now I have to go find that IP before I can SSH in and do actual work. Claude skills and a new tool to the rescue!

It&rsquo;s a thirty-second task. I&rsquo;ve done it a thousand times. Log into the UniFi console, click into clients, squint at the list, find the thing that appeared in the last few minutes, copy the IP, paste it into a terminal. Thirty seconds. Maybe a minute if it grabbed a lease I didn&rsquo;t expect and I have to hunt. That&rsquo;s if the Unifi console updates - sometimes it does not seem up to date.

Thirty seconds, a thousand times, is not thirty seconds. It&rsquo;s a slow leak. And every one of those little context-switches — leave the terminal, go to the browser, dig, come back — costs more than the clock says, because it yanks me out of whatever I was actually doing.

I finally fixed it. Not with a script I have to remember the syntax for. I fixed it by talking to Claude Code.

The New Workflow

These days the whole thing is a conversation:

Me: Is there a new device on my network?

Claude: Yes — a device from &ldquo;BrightSign&rdquo; just showed up at 192.168.1.147, MAC xx:xx:xx:..., first seen two minutes ago.

Me: Give it a fixed IP and call it xt5-lab.

Claude: Here&rsquo;s the reservation I&rsquo;ll add (shows me the host block and a dry-run). Apply it?

Me: Yes.

Done. That player now has a stable name and address forever. From that moment on I ssh xt5-lab and I&rsquo;m in. No hunting. No console. No copy-paste. And the next time I re-flash it or move it, it comes back to the same address because the reservation is keyed to its MAC.

Think about what just happened there. I described what I wanted in plain English, and the machine did the network administration. That&rsquo;s the whole thing.

Describe what you want. The machine does the network admin.

Two Layers: The Tool and the Skill

This works because of two pieces I built that stack on top of each other.

The bottom layer is gofi — a Go module and CLI toolkit I wrote for driving a UniFi controller (a UDM Pro, in my case) from code instead of the web UI. It wraps the UniFi REST and WebSocket APIs behind a clean, type-safe Go interface, and it ships two small CLIs that do the actual work here:

gofimac — lists the clients on the network: MAC, IP, hostname, and manufacturer (it does an IEEE OUI lookup, which is how it knows a device is a &ldquo;BrightSign&rdquo; and not just some anonymous MAC). It can also show you devices seen in the last window, or ones that have gone away — --since 7d, --gone, that kind of thing. That&rsquo;s the &ldquo;is there a new device, and what is it?&rdquo; half.

gofips — reads and writes the fixed-IP reservations (DHCP reservations), using standard ISC DHCP host {} blocks as its file format. That&rsquo;s the &ldquo;give it a fixed IP and a name&rdquo; half.

It&rsquo;s MIT-licensed and it&rsquo;s out there. (You know how I feel about giving it back.)

The top layer is the unifi-fixed-hosts skill in my Claude Code plugin. This is the part that turns &ldquo;I built a CLI tool&rdquo; into &ldquo;I just talk to my network.&rdquo;

A skill is basically a little packet of knowledge that teaches Claude Code how to use a tool correctly — when to reach for it, which flags mean what, what the safe workflow is, and where the sharp edges are. Without the skill, I&rsquo;d have to remember that gofimac -a means &ldquo;all clients&rdquo; but gofips -a means &ldquo;add a host&rdquo; (yes, the same short flag means different things across the two tools — I know, I know). With the skill, Claude already knows all of that. It knows to find the MAC with gofimac --json, snapshot the current reservations with gofips --get, edit the host file, and preview with --dry-run before touching anything.

Automation That Doesn&rsquo;t Nuke Your Network

Here&rsquo;s the part I&rsquo;m actually proud of, and it&rsquo;s not the flashy part.

The skill has a hard review gate baked into it. Changing DHCP reservations is mutating live network config — get it wrong and you can hand two devices the same address, or knock something important off the network. So the skill flat-out refuses to apply a change until it has shown me the full host file and the dry-run output, and I&rsquo;ve explicitly said &ldquo;yes.&rdquo; Asking Claude to make the edit is not the same as approving the apply. That distinction is written right into the...

rsquo claude network ldquo rdquo unifi

Related Articles