Skip to content

Releases

v1.7.0

Choose a tag to compare

@serdarsalim serdarsalim released this 27 Oct 07:25

Everything since 1.4.0, in one download.

Running more than one stack

  • Projects can say exactly what Run means with an openport.json file. Handy when the dev command hides behind a launcher script.
  • A project with several stacks gets one row per stack, each with its own Play, Stop, status and logs.

Status you can trust

  • Run shows "starting" with a timer instead of calling a slow boot a crash.
  • The dashboard refreshes itself and notices servers you start or stop in a terminal.
  • Vite now uses the port OpenPort gives it.
  • A start that takes over 45 seconds says so and points you at the logs.

Less babysitting

  • Restart button, plus one automatic retry if a server dies right after Play.
  • If a port is taken, Play moves to the next free one.
  • After a crash or quit, the next launch offers to start your servers again.
  • Archive projects you never open. They give their port back.
  • Terminal tabs name themselves after what's running in them.

Fixes

  • Stop no longer kills your browser.
  • Quitting takes down everything OpenPort started, including terminal tabs.
  • The LAN launcher refuses cross-site requests.
  • Plenty of smaller process and port bugs.

First launch: right-click the app and choose Open. It isn't signed with a paid Apple certificate.

v1.4.0 — Clean Restart

Choose a tag to compare

@serdarsalim serdarsalim released this 24 Jun 13:31

Clean Restart — right-click any app row → Clean Restart to stop it, delete its framework build cache, free the port, and start fresh in one move.

This is the fix for a dev server that wedges on compile: port open, CPU pegged, but the page never loads — and a normal Stop→Run doesn't help because it reuses the same poisoned cache. OpenPort wipes the right cache per framework so you never have to drop into a terminal:

Framework Cache cleared
Next.js .next
Vite / SvelteKit node_modules/.vite, .svelte-kit
CRA node_modules/.cache

Plain Run is unchanged — the cache is only cleared when you explicitly choose Clean Restart, so day-to-day launches stay fast.

Also: dropped the redundant System theme mode (Auto already follows the system sun-based appearance).

v1.3.0 — LAN Launcher

Choose a tag to compare

@serdarsalim serdarsalim released this 14 Jun 13:27

LAN Launcher

Flip on the Wi-Fi icon in the footer (or Settings → LAN Launcher) and OpenPort serves a phone-friendly page at port 1453 that lists every app with:

  • a tap-to-open link built from your Mac's Wi-Fi IP, so it works from any device on the same network
  • a live status dot per app — running / stopped / localhost-only
  • Run / Stop buttons so you can start an app straight from your phone

Clicking the footer icon reveals a QR code pointing at the launcher itself, so you can pull the page up on a device in the first place.

Auto-expose on Run

While the launcher is on, apps you Run from OpenPort bind to all interfaces automatically (Vite --host, Next -H 0.0.0.0, CRA HOST=0.0.0.0), so the links actually work from your phone without editing each dev script. Apps already running bound to localhost are flagged localhost-only with a nudge to relaunch from OpenPort.

The per-app QR action now defaults off, since the launcher supersedes it.

🤖 Generated with Claude Code

v1.2.0 — Readable logs, auto appearance, backend awareness

Choose a tag to compare

@serdarsalim serdarsalim released this 10 Jun 11:50

What's new

  • Readable logs — the live logs viewer strips ANSI color codes, so output (and especially errors when a server won't start) reads as clean plain text instead of [36m / [2m noise.
  • Auto appearance — Light / Dark / Auto / System, where Auto follows the sun at your location (flips to dark at local sunset, back at sunrise). No geolocation prompt; it derives coordinates from your system timezone. Pick it from the footer appearance menu or Settings → General.
  • Backend awareness — detects when a project has a Convex or Supabase backend, whether the dev script already starts it, and whether it's a local process or a cloud connection. Each row shows a backend line with live status, and warns when a local backend has nothing to start it.
  • dev:backend sidecar — when a project splits frontend and backend into separate scripts, Run starts both so the frontend doesn't boot alone with failing data calls.
  • Node version pinning — respects a project's .nvmrc / .node-version, and drops Convex projects to a compatible Node when your default is too new, so the local backend stops failing to deploy "use node" actions silently.

First launch: macOS warns "unidentified developer" (the app isn't signed with a paid Apple cert). Right-click the app → Open → Open. macOS only asks once.

Requirements: macOS 14 (Sonoma)+ · Node.js installed

v1.1.0 — Terminal tabs, context-aware search, terminal profiles

Choose a tag to compare

@serdarsalim serdarsalim released this 07 May 06:03

What's new

  • In-app terminal tabs — click the terminal icon on any row (or the + in the tab bar) to open a real shell tab inside OpenPort, no more alt-tabbing to Terminal.app. Each tab runs your login shell, cd'd into the project folder.
  • Context-aware search — the title-bar search filters apps on the Dashboard and finds in scrollback when you're on a terminal tab; ▲▼ jump between matches; per-tab query memory.
  • Terminal profiles — Settings → Terminal lets you pick a theme (System, Dark, Light, Solarized Dark/Light, Dracula, Nord) and font size. Changes apply live to every open terminal.
  • Orphan reaper — process group kills + recursive descendant reap fix the EADDRINUSE bug after restart. Dead OpenPort sessions no longer leak convex / next / esbuild zombies for days.
  • Settings reorganized — sidebar layout (General / go/ links / Terminal / Rows). Portfolio folder moved here from the footer.
  • Custom title bar — bold OpenPort flush left, soft search pill flush right, traffic lights in the same strip (via NSTitlebarAccessoryViewController so drag/focus all behave correctly).
  • Quick launch redesign — menu bar dropdown is now a 3-column grid: status icon + name | port | globe button. Click anywhere on a row to start/stop, click the globe to open in your browser.
  • Footer cleanup — refresh + spinner sit next to Stop All; help / settings / theme cluster on the right; the unseen-changelog blue dot decorates the gear.
  • Use external Terminal.app toggle — Settings → Terminal lets you keep launching the row's terminal button into macOS Terminal.app if you prefer the old behavior.

Download

  • macOS 14 (Sonoma) or later
  • Right-click the app → Open → Open on first launch (unsigned)

OpenPort v1.0.0

Choose a tag to compare

@serdarsalim serdarsalim released this 05 May 08:57

OpenPort v1.0.0

First major release. Native macOS app for managing local dev servers across your portfolio.

⬇ Download openport-macos.zip — unzip, double-click, done.

What's new in v1.0

  • Live port detection — sees every dev server bound on your machine, not just ones it started. Match by working directory.
  • Multi-port awareness — green dot next to the port column when an app is bound to multiple ports (frontend + backend, HMR, debug). Click for the full list with command lines.
  • "Other ports in use" section — orphan dev servers running outside your portfolio. System processes (Tailscale, ssh tunnels, ControlCenter, Mac apps) filtered out so you can't accidentally kill them.
  • Live logs viewer — resizable modal with stdout + stderr from any running app. Search filter, auto-scroll, copy, clear. No more switching to terminal.
  • Customizable rows — hide any of the 7 action buttons (browser, copy, QR, logs, terminal, VS Code, Finder) per-app in Settings.
  • Detached state with real ports — if you started an app in a terminal on a different port, the row flips to detached and shows the actual port.
  • Settings & Help as draggable windows — keep them next to the main app instead of sheet-modal.
  • Help redesigned — sidebar TOC, search, 12 sections covering every feature.
  • What's new — discreet blue dot when there are unseen changes, hidden once viewed. Reachable from Settings or menu bar.
  • macOS switches everywhere — no more checkboxes.

Requirements

  • macOS 14 (Sonoma) or later
  • Node.js

First launch

macOS will warn "unidentified developer" because the app isn't signed. Right-click the app → Open → Open. macOS only asks once.

Localhost 3000 v0.1.0

Choose a tag to compare

@serdarsalim serdarsalim released this 17 Apr 04:56

First public macOS build of Localhost 3000.\n\nIncludes the signed app bundle zipped for download on a new Mac.