惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
B
Blog
P
Proofpoint News Feed
美团技术团队
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
有赞技术团队
有赞技术团队
小众软件
小众软件
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
罗磊的独立博客
L
LangChain Blog
GbyAI
GbyAI
腾讯CDC
T
The Blog of Author Tim Ferriss
Microsoft Security Blog
Microsoft Security Blog

Hacker News

GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Bonsai 1-bit WebGPU - a Hugging Face Space by webml-community Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line
I Got Sick of Remembering Port Numbers
2026-04-29 · via Hacker News

I Got Sick of Remembering Port Numbers

I run a lot of stuff locally. Jekyll blogs, Flask APIs, Next.js apps, AI tools, little scripts that do one thing well. Each one lives on some port. Each session, I’d open a new browser tab and think: was that one on 3000? Or did I move it to 5173 because something else grabbed 3000? What about that Tailscale URL for my home server?

The real annoyance is that it wasn’t just one machine. It was layers. Local ports fighting each other. Hostnames I couldn’t remember. Scripts that would happily steal whatever port they wanted if I started them in the wrong order.

I wanted a simple launcher for all the things that aren’t traditional desktop apps. Not Finder, Alfred or Raycast. Something that understood localhost.

The problem is port rot: the slow accumulation of services, forgotten ports, and dead browser tabs that makes your local dev environment feel like a junk drawer. Worse many of these things don’t need to be running all the time. They should run when needed and then quietly spin down.

So I built local.vibe.

What it does

Tell your coding agent about local.vibe and it’ll drop a vibe.json in any project:

1
2
3
4
{
  "name": "blog",
  "cmd": "bundle exec jekyll s"
}

Run vibe start. Now https://blog.vibe works in any local browser. No more port numbers. No more “wait, which tab was that?”

It can auto-assigns a free port, passes it to your app as $PORT, and proxies the .vibe hostname to it. A local certificate gets trusted in your Keychain so HTTPS just works. The daemon watches the process; if it crashes or rebinds.

The dashboard lives at https://local.vibe and shows everything running at once.

local.vibe dashboard

Start, stop, edit, add an emoji icon. Switch between grid and list view.

Bookmarks work too. tailscale.vibe can redirect to your Tailscale machine. hass.vibe can proxy to your Home Assistant. Anything you’d type into a browser tab can become a .vibe name.

Why a single binary

It’s built in Go. Local.vibe is a single binary. One setup.sh, and it installs dnsmasq, a pf port-forwarding rule, and the local CA. After that, it’s just running.

The whole thing communicates over a Unix socket acting as a reverse proxy. No external services, no accounts, no telemetry.

The agent angle

One thing I didn’t expect to be useful but actually is: the setup guide endpoint.

1
curl http://localhost:7999/setup.md

Paste that into Claude Code or Cursor and the agent understands your local.vibe setup. It can register new routes, check what’s running, start and stop apps via the HTTP API. That turned out to be a genuinely useful integration to get projects onboarded quickly.

Try it

1
2
3
git clone https://github.com/graiz/local.vibe.git
cd local.vibe
./setup.sh

It’s open source, macOS only for now, MIT licensed. If you’re drowning in port numbers, give it a spin. I’d love to know what breaks, what’s missing, and whether the setup holds up on machines that aren’t mine. Drop a comment below or open an issue on GitHub.