{
  "@context": [
    "https://schema.org",
    {
      "nuanyue": "https://www.nuanyue.com/ns#"
    }
  ],
  "@type": "SoftwareApplication",
  "@id": "https://www.nuanyue.com/software/portkiller/#software",
  "name": "PortKiller",
  "description": "Find what is holding a port, then kill it — plus Kubernetes port-forwards and Cloudflare tunnels.",
  "url": "https://www.nuanyue.com/software/portkiller/",
  "mainEntityOfPage": "https://www.nuanyue.com/software/portkiller/",
  "operatingSystem": "macOS",
  "applicationCategory": "DeveloperApplication",
  "publisher": {
    "name": "葛 姜"
  },
  "sameAs": [
    "https://github.com/productdevbook/port-killer",
    "https://apps.apple.com/us/app/portkiller/id6762044878?mt=12&uo=4"
  ],
  "softwareVersion": "3.3.3",
  "license": "MIT",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  },
  "nuanyue:record": {
    "schemaVersion": 1,
    "id": "software:portkiller",
    "slug": "portkiller",
    "name": "PortKiller",
    "type": "SoftwareApplication",
    "entityType": "port manager",
    "description": "Find what is holding a port, then kill it — plus Kubernetes port-forwards and Cloudflare tunnels.",
    "shortDescription": "Find and kill the process holding a port, with kubectl port-forwards and tunnels.",
    "answer": "PortKiller is a cross-platform port management tool for developers. It auto-discovers every listening TCP port, then terminates the process holding it with one click, choosing between a graceful and a force kill. Beyond plain ports it manages `kubectl port-forward` sessions with auto-reconnect, and shows and manages active Cloudflare Tunnel connections. It runs on macOS (menu bar) and Windows (system tray) with a native UI on each. It is free and open source under the MIT licence.",
    "page": "https://www.nuanyue.com/software/portkiller/",
    "dataUrl": "https://www.nuanyue.com/data/software/portkiller.json",
    "categories": [
      "developer-tools"
    ],
    "tags": [],
    "platform": [
      "macOS"
    ],
    "minOsVersion": "macOS 26.2",
    "architecture": [],
    "featured": false,
    "pricing": "open-source",
    "license": "MIT",
    "currentVersion": "3.3.3",
    "releaseDate": "2026-06-21",
    "openSource": true,
    "website": "https://github.com/productdevbook/port-killer",
    "github": "https://github.com/productdevbook/port-killer",
    "appStore": "https://apps.apple.com/us/app/portkiller/id6762044878?mt=12&uo=4",
    "download": "https://github.com/productdevbook/port-killer/releases/download/v3.3.3/PortKiller-v3.3.3-macos.dmg",
    "developer": {
      "name": "葛 姜"
    },
    "icon": "/apps/portkiller.png",
    "features": [
      "Auto-discovers all listening TCP ports",
      "One-click process termination, with graceful and force kill",
      "Create and manage kubectl port-forward sessions, with auto-reconnect",
      "View and manage active Cloudflare Tunnel connections",
      "Search and filter by port number or process name",
      "Smart categorisation: web server, database, development, system"
    ],
    "useCases": [
      "Finding which process is holding port 3000 and stopping it",
      "Keeping a kubectl port-forward alive across a connection drop"
    ],
    "formats": [],
    "integrations": [],
    "pros": [
      {
        "text": "Free and open source under the MIT licence, with no account and no paid tier.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "Manages kubectl port-forward sessions with auto-reconnect on connection loss, which plain `kubectl` does not do.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "Shows and manages active Cloudflare Tunnel connections, so a tunnel is visible rather than invisible in a terminal.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "Auto-discovers every listening TCP port and categorises them — web server, database, development, system — rather than listing raw output.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      }
    ],
    "cons": [
      {
        "text": "The README states macOS 15.0 or later, while the Mac App Store build reports macOS 26.2 as its minimum — the two disagree, so the version that applies depends on which build you install.",
        "status": "editorially-reviewed",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "It manages ports, not traffic — inspecting what actually moves over them needs a proxy such as Proxyman.",
        "status": "editorially-reviewed",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "text": "Force kill is available alongside graceful termination, so an impatient click can terminate a process that would have exited cleanly.",
        "status": "editorially-reviewed",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      }
    ],
    "whoIsItFor": [
      "Developers who run local servers and lose ports to processes they cannot name",
      "Anyone who works with Kubernetes port-forwards and wants them visible"
    ],
    "notFor": [
      "Users who want to inspect packets or traffic — PortKiller manages ports, not what moves through them"
    ],
    "limitations": [],
    "updates": [],
    "faq": [
      {
        "question": "How do I find what is using a port?",
        "answer": "PortKiller auto-discovers all listening TCP ports, and you can search or filter by port number or process name.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "question": "Does it support Kubernetes port-forwarding?",
        "answer": "Yes. You can create and manage kubectl port-forward sessions, and it reconnects automatically when the connection drops.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "question": "Which platforms does PortKiller support?",
        "answer": "macOS 15.0 or later, with a menu bar integration, and Windows 10 or later with a system tray app. Linux is not listed.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "question": "How do I install PortKiller?",
        "answer": "With Homebrew: brew install --cask productdevbook/tap/portkiller, or download the .dmg from GitHub Releases.",
        "status": "verified",
        "source": "repository",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      }
    ],
    "relationships": [
      {
        "target": "bye-appquit",
        "type": "alternative",
        "reason": "Both stop running processes from the menu bar. Bye AppQuit lists whatever apps you quit; PortKiller finds the process by the port it is holding.",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "target": "vorssaint",
        "type": "complements",
        "reason": "Vorssaint offers menu-bar system monitoring and window control; PortKiller covers the specific job of finding what holds a port.",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      },
      {
        "target": "proxyman",
        "type": "complements",
        "reason": "PortKiller manages which ports are open and which forwards are running; Proxyman inspects the traffic that moves through them.",
        "verifiedAt": "2026-10-16T00:00:00.000Z"
      }
    ],
    "sources": [
      {
        "id": "portkiller:app-store",
        "type": "app_store",
        "url": "https://apps.apple.com/us/app/portkiller/id6762044878?mt=12&uo=4",
        "title": "PortKiller on the Mac App Store",
        "trustLevel": "A",
        "accessedAt": null
      },
      {
        "id": "portkiller:official",
        "type": "official_website",
        "url": "https://github.com/productdevbook/port-killer",
        "title": "PortKiller — official website",
        "trustLevel": "B",
        "accessedAt": null
      },
      {
        "id": "portkiller:repository",
        "type": "github",
        "url": "https://github.com/productdevbook/port-killer",
        "title": "PortKiller — source repository",
        "trustLevel": "D",
        "accessedAt": null
      }
    ],
    "claims": [
      {
        "id": "software:portkiller.isA",
        "subject": "software:portkiller",
        "predicate": "isA",
        "value": "port manager",
        "status": "editorially-reviewed",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.supportsPlatform",
        "subject": "software:portkiller",
        "predicate": "supportsPlatform",
        "value": [
          "macOS"
        ],
        "status": "verified",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.officialWebsite",
        "subject": "software:portkiller",
        "predicate": "officialWebsite",
        "value": "https://github.com/productdevbook/port-killer",
        "status": "verified",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.listedInCategory",
        "subject": "software:portkiller",
        "predicate": "listedInCategory",
        "value": [
          "developer-tools"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.pricingModel",
        "subject": "software:portkiller",
        "predicate": "pricingModel",
        "value": "Open source",
        "status": "developer-stated",
        "sourceIds": [
          "portkiller:app-store",
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.developedBy",
        "subject": "software:portkiller",
        "predicate": "developedBy",
        "value": "葛 姜",
        "status": "developer-stated",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.ownership",
        "subject": "software:portkiller",
        "predicate": "ownership",
        "value": "Third-party product — not published by Nuanyue",
        "status": "editorially-reviewed",
        "sourceIds": [],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.isOpenSource",
        "subject": "software:portkiller",
        "predicate": "isOpenSource",
        "value": true,
        "status": "verified",
        "sourceIds": [
          "portkiller:repository",
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.licensedUnder",
        "subject": "software:portkiller",
        "predicate": "licensedUnder",
        "value": "MIT",
        "status": "verified",
        "sourceIds": [
          "portkiller:repository",
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.currentVersion",
        "subject": "software:portkiller",
        "predicate": "currentVersion",
        "value": "3.3.3",
        "status": "developer-stated",
        "sourceIds": [
          "portkiller:app-store",
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.hasFeature",
        "subject": "software:portkiller",
        "predicate": "hasFeature",
        "value": [
          "Auto-discovers all listening TCP ports",
          "One-click process termination, with graceful and force kill",
          "Create and manage kubectl port-forward sessions, with auto-reconnect",
          "View and manage active Cloudflare Tunnel connections",
          "Search and filter by port number or process name",
          "Smart categorisation: web server, database, development, system"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.usedFor",
        "subject": "software:portkiller",
        "predicate": "usedFor",
        "value": [
          "Finding which process is holding port 3000 and stopping it",
          "Keeping a kubectl port-forward alive across a connection drop"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.audienceFor",
        "subject": "software:portkiller",
        "predicate": "audienceFor",
        "value": [
          "Developers who run local servers and lose ports to processes they cannot name",
          "Anyone who works with Kubernetes port-forwards and wants them visible"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.audienceNotFor",
        "subject": "software:portkiller",
        "predicate": "audienceNotFor",
        "value": [
          "Users who want to inspect packets or traffic — PortKiller manages ports, not what moves through them"
        ],
        "status": "editorially-reviewed",
        "sourceIds": [
          "portkiller:official"
        ],
        "lastVerified": null
      },
      {
        "id": "software:portkiller.advantage.0",
        "subject": "software:portkiller",
        "predicate": "advantage",
        "value": "Free and open source under the MIT licence, with no account and no paid tier.",
        "status": "verified",
        "sourceIds": [
          "portkiller:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:portkiller.advantage.1",
        "subject": "software:portkiller",
        "predicate": "advantage",
        "value": "Manages kubectl port-forward sessions with auto-reconnect on connection loss, which plain `kubectl` does not do.",
        "status": "verified",
        "sourceIds": [
          "portkiller:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:portkiller.advantage.2",
        "subject": "software:portkiller",
        "predicate": "advantage",
        "value": "Shows and manages active Cloudflare Tunnel connections, so a tunnel is visible rather than invisible in a terminal.",
        "status": "verified",
        "sourceIds": [
          "portkiller:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:portkiller.advantage.3",
        "subject": "software:portkiller",
        "predicate": "advantage",
        "value": "Auto-discovers every listening TCP port and categorises them — web server, database, development, system — rather than listing raw output.",
        "status": "verified",
        "sourceIds": [
          "portkiller:repository"
        ],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:portkiller.drawback.0",
        "subject": "software:portkiller",
        "predicate": "drawback",
        "value": "The README states macOS 15.0 or later, while the Mac App Store build reports macOS 26.2 as its minimum — the two disagree, so the version that applies depends on which build you install.",
        "status": "editorially-reviewed",
        "sourceIds": [],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:portkiller.drawback.1",
        "subject": "software:portkiller",
        "predicate": "drawback",
        "value": "It manages ports, not traffic — inspecting what actually moves over them needs a proxy such as Proxyman.",
        "status": "editorially-reviewed",
        "sourceIds": [],
        "lastVerified": "2026-10-16"
      },
      {
        "id": "software:portkiller.drawback.2",
        "subject": "software:portkiller",
        "predicate": "drawback",
        "value": "Force kill is available alongside graceful termination, so an impatient click can terminate a process that would have exited cleanly.",
        "status": "editorially-reviewed",
        "sourceIds": [],
        "lastVerified": "2026-10-16"
      }
    ],
    "lastUpdated": "2026-10-16T00:00:00.000Z",
    "lastReviewedAt": null
  }
}