<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>PortForge | Premium Port Intelligence for Local Development</title>
<meta
name="description"
content="PortForge is a fast cross-platform port inspector for developers, with a polished TUI, optional web dashboard, project detection, Docker context, health checks, and safe cleanup workflows."
/>
<meta name="robots" content="index, follow, max-image-preview:large" />
<meta name="author" content="Kamba" />
<meta name="theme-color" content="#0b1020" />
<meta name="color-scheme" content="dark" />
<meta
name="keywords"
content="port inspector, developer tools, rust cli, port manager, process monitor, docker ports, port scanner"
/>
<link rel="canonical" href="https://kabudu.github.io/portforge/" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;700&family=JetBrains+Mono:wght@400;500;700&display=swap"
rel="stylesheet"
/>
<link rel="icon" type="image/png" href="assets/logo.png" />
<link rel="apple-touch-icon" href="assets/logo.png" />
<link rel="stylesheet" href="css/style.css" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="PortForge" />
<meta property="og:url" content="https://kabudu.github.io/portforge/" />
<meta
property="og:title"
content="PortForge | Premium Port Intelligence for Local Development"
/>
<meta
property="og:description"
content="Inspect, identify, and clean up local ports with project-aware context, health checks, Docker metadata, and a polished Rust-native workflow."
/>
<meta
property="og:image"
content="https://kabudu.github.io/portforge/assets/dashboard_preview.png"
/>
<meta
property="og:image:alt"
content="PortForge dashboard showing rich port details and project context."
/>
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="PortForge | Premium Port Intelligence for Local Development"
/>
<meta
name="twitter:description"
content="A Rust-native port inspector with TUI and optional web UI for developers who need instant clarity across local services."
/>
<meta
name="twitter:image"
content="https://kabudu.github.io/portforge/assets/dashboard_preview.png"
/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"name": "PortForge",
"url": "https://kabudu.github.io/portforge/",
"description": "Premium port intelligence for local development.",
"publisher": {
"@type": "Person",
"name": "Kamba"
}
},
{
"@type": "SoftwareApplication",
"name": "PortForge",
"applicationCategory": "DeveloperApplication",
"operatingSystem": "macOS, Linux, Windows",
"softwareVersion": "0.1.2",
"description": "Cross-platform port inspector and manager for developers with project detection, Docker integration, health checks, export support, and a TUI-first workflow.",
"url": "https://kabudu.github.io/portforge/",
"downloadUrl": "https://github.com/kabudu/portforge/releases",
"codeRepository": "https://github.com/kabudu/portforge",
"license": "https://github.com/kabudu/portforge/blob/master/LICENSE",
"programmingLanguage": "Rust"
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What does PortForge do?",
"acceptedAnswer": {
"@type": "Answer",
"text": "PortForge shows what is running on your local ports, identifies the owning process and project, adds health and Docker context, and helps you clean up stale processes safely."
}
},
{
"@type": "Question",
"name": "Who is PortForge for?",
"acceptedAnswer": {
"@type": "Answer",
"text": "PortForge is built for developers working across local apps, containers, and services who need instant visibility into port usage and process ownership."
}
},
{
"@type": "Question",
"name": "Does PortForge include a web dashboard?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. PortForge ships with an optional web dashboard behind the web feature flag while keeping the default experience fast and terminal-first."
}
}
]
}
]
}
</script>
</head>
<body>
<a class="skip-link" href="#main-content">Skip to content</a>
<header class="site-header" data-header>
<div class="container header-shell">
<a class="brand" href="#top" aria-label="PortForge home">
<img
src="assets/logo.png"
alt="PortForge logo"
width="44"
height="44"
/>
<span class="brand-copy">
<span class="brand-name">PortForge</span>
<span class="brand-tag"
>Port intelligence for local development</span
>
</span>
</a>
<button
class="nav-toggle"
type="button"
aria-expanded="false"
aria-controls="site-nav"
data-nav-toggle
>
<span class="sr-only">Toggle navigation</span>
<span></span>
<span></span>
</button>
<nav
id="site-nav"
class="site-nav"
aria-label="Primary navigation"
data-nav
>
<a href="#capabilities">Capabilities</a>
<a href="#workflow">Workflow</a>
<a href="#install">Install</a>
<a href="#faq">FAQ</a>
<a
class="button button-secondary nav-cta"
href="https://github.com/kabudu/portforge/releases"
target="_blank"
rel="noreferrer"
>Releases</a
>
</nav>
</div>
</header>
<main id="main-content">
<section class="hero section" id="top">
<div class="hero-backdrop" aria-hidden="true"></div>
<div class="container hero-grid">
<div class="hero-copy">
<p class="eyebrow">Rust-native clarity for crowded dev machines</p>
<h1>
Know exactly what owns every port before it wastes your time.
</h1>
<p class="hero-text">
PortForge gives developers a fast, project-aware view of local
ports with process ownership, framework detection, Git context,
Docker metadata, health probes, and safe cleanup workflows.
</p>
<div class="hero-actions">
<a class="button button-primary" href="#install"
>Install PortForge</a
>
<a
class="button button-secondary"
href="https://github.com/kabudu/portforge"
target="_blank"
rel="noreferrer"
>View on GitHub</a
>
</div>
<ul class="hero-signals" aria-label="Key product signals">
<li><strong><50ms</strong><span>cold start</span></li>
<li><strong>20+</strong><span>language detectors</span></li>
<li><strong>40+</strong><span>framework heuristics</span></li>
</ul>
<div class="hero-command-panel" aria-labelledby="command-title">
<div class="panel-header">
<p id="command-title">Command preview</p>
<span class="status-pill">Terminal-first</span>
</div>
<div
class="command-switcher"
role="tablist"
aria-label="PortForge command examples"
>
<button
type="button"
role="tab"
aria-selected="true"
aria-controls="command-panel"
id="command-tab-default"
class="command-chip is-active"
data-command-tab
data-command-key="default"
>
portforge
</button>
<button
type="button"
role="tab"
aria-selected="false"
aria-controls="command-panel"
id="command-tab-all"
class="command-chip"
data-command-tab
data-command-key="all"
>
portforge --all
</button>
<button
type="button"
role="tab"
aria-selected="false"
aria-controls="command-panel"
id="command-tab-inspect"
class="command-chip"
data-command-tab
data-command-key="inspect"
>
portforge inspect 3000
</button>
</div>
<pre
id="command-panel"
class="command-output"
role="tabpanel"
tabindex="0"
aria-labelledby="command-tab-default"
data-command-output
></pre>
</div>
</div>
<div class="hero-media">
<figure class="showcase-frame showcase-primary">
<img
src="assets/dashboard_preview.png"
alt="PortForge web dashboard showing process, project, Git, and health details for a port."
/>
</figure>
<aside
class="metric-card metric-card-top"
aria-label="Project-aware port visibility"
>
<strong>Project-aware results</strong>
<p>
Processes, framework versions, branch state, and health checks
in one view.
</p>
</aside>
<aside
class="metric-card metric-card-bottom"
aria-label="Safe cleanup workflows"
>
<strong>Safe cleanup</strong>
<p>
Dry-run orphan detection before you terminate the wrong service.
</p>
</aside>
</div>
</div>
</section>
<section class="proof-bar" aria-label="PortForge proof points">
<div class="container proof-grid">
<article>
<p class="proof-value">Cross-platform</p>
<p class="proof-label">
Built for macOS, Linux, and Windows developer workflows.
</p>
</article>
<article>
<p class="proof-value">Single static binary</p>
<p class="proof-label">
Small footprint without sacrificing Docker, Git, and health
context.
</p>
</article>
<article>
<p class="proof-value">TUI first, web optional</p>
<p class="proof-label">
Fast in the terminal, with a dashboard when you need browser
visibility.
</p>
</article>
</div>
</section>
<section
class="section section-capabilities"
id="capabilities"
aria-labelledby="capabilities-title"
>
<div class="container">
<div class="section-heading narrow">
<p class="eyebrow">Why it feels different</p>
<h2 id="capabilities-title">
Port inspection with engineering context, not just a PID list.
</h2>
<p>
PortForge is designed for the real work behind local development:
tracing ownership, understanding health, spotting container
mappings, and cleaning up drift without guessing.
</p>
</div>
<div class="capability-grid">
<article class="capability-card">
<h3>Project detection</h3>
<p>
Maps ports back to frameworks and repositories so you can tell a
Next.js dev server from a FastAPI worker instantly.
</p>
</article>
<article class="capability-card">
<h3>Git and Docker awareness</h3>
<p>
Surfaces branch state, dirty repos, and container mappings so
the right environment is obvious before you kill anything.
</p>
</article>
<article class="capability-card">
<h3>Health probes</h3>
<p>
Checks whether a port is truly serving, not merely listening,
with framework-aware defaults and per-port overrides.
</p>
</article>
<article class="capability-card">
<h3>Resource visibility</h3>
<p>
See memory, CPU, and uptime to catch runaway processes and
duplicate app instances before they snowball.
</p>
</article>
<article class="capability-card">
<h3>Safe cleanup workflows</h3>
<p>
Dry-run cleanup and process inspection help you remove orphans
and zombies with less risk to active work.
</p>
</article>
<article class="capability-card">
<h3>Export-ready output</h3>
<p>
Use the TUI for speed, then switch to JSON, CSV, or table output
for automation, reports, and debugging trails.
</p>
</article>
</div>
</div>
</section>
<section
class="section section-workflow"
id="workflow"
aria-labelledby="workflow-title"
>
<div class="container workflow-grid">
<div class="section-heading">
<p class="eyebrow">Workflow surfaces</p>
<h2 id="workflow-title">
Built for terminal-heavy teams, without trapping you in the
terminal.
</h2>
<p>
The core experience is a polished Ratatui interface with fast
inspection paths and keyboard-driven navigation. When you want a
browser view, the optional dashboard exposes the same operational
context in a cleaner visual surface.
</p>
<ul class="workflow-points">
<li>Interactive TUI with discoverable keybindings</li>
<li>Optional Axum-powered dashboard behind a feature flag</li>
<li>Clean handoff between interactive use and scripted output</li>
</ul>
</div>
<div class="workflow-showcase">
<figure class="showcase-frame">
<img
src="assets/tui_preview.png"
alt="PortForge terminal interface listing active ports with status and detail panels."
/>
<figcaption>TUI view for fast local triage.</figcaption>
</figure>
<figure class="showcase-frame showcase-secondary">
<img
src="assets/dashboard_preview.png"
alt="PortForge dashboard modal showing process, project, Git, and health details."
/>
<figcaption>
Optional browser dashboard for richer inspection.
</figcaption>
</figure>
</div>
</div>
</section>
<section
class="section section-install"
id="install"
aria-labelledby="install-title"
>
<div class="container install-shell">
<div class="section-heading narrow left-aligned">
<p class="eyebrow">Install</p>
<h2 id="install-title">
Ship it to your machine in under a minute.
</h2>
<p>
Use Cargo for the simplest path, download binaries from releases,
or build from source with the optional web dashboard enabled.
</p>
</div>
<div class="install-panel">
<div
class="install-tabs"
role="tablist"
aria-label="Installation methods"
>
<button
type="button"
class="install-tab is-active"
role="tab"
id="tab-cargo"
aria-selected="true"
aria-controls="panel-cargo"
data-install-tab="cargo"
>
Cargo
</button>
<button
type="button"
class="install-tab"
role="tab"
id="tab-binary"
aria-selected="false"
aria-controls="panel-binary"
data-install-tab="binary"
>
Binary
</button>
<button
type="button"
class="install-tab"
role="tab"
id="tab-source"
aria-selected="false"
aria-controls="panel-source"
data-install-tab="source"
>
Source
</button>
</div>
<section
class="install-content is-active"
id="panel-cargo"
role="tabpanel"
tabindex="0"
aria-labelledby="tab-cargo"
data-install-panel="cargo"
>
<div class="code-card">
<div class="panel-header">
<p>Install via Cargo</p>
<button
type="button"
class="copy-button"
data-copy-target="cargo-install"
>
Copy
</button>
</div>
<pre id="cargo-install">cargo install portforge</pre>
</div>
</section>
<section
class="install-content"
id="panel-binary"
role="tabpanel"
tabindex="0"
aria-labelledby="tab-binary"
data-install-panel="binary"
hidden
>
<div class="code-card">
<div class="panel-header">
<p>Download the latest release</p>
<button
type="button"
class="copy-button"
data-copy-target="binary-install"
>
Copy
</button>
</div>
<pre id="binary-install">
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
[ "$OS" = "darwin" ] && OS="macos"
ARCH=$(uname -m)
[ "$ARCH" = "arm64" ] && ARCH="aarch64"
curl -L "https://github.com/kabudu/portforge/releases/latest/download/portforge-${OS}-${ARCH}.tar.gz" | tar xz
sudo mv portforge /usr/local/bin/</pre
>
</div>
</section>
<section
class="install-content"
id="panel-source"
role="tabpanel"
tabindex="0"
aria-labelledby="tab-source"
data-install-panel="source"
hidden
>
<div class="code-card">
<div class="panel-header">
<p>Build from source</p>
<button
type="button"
class="copy-button"
data-copy-target="source-install"
>
Copy
</button>
</div>
<pre id="source-install">
git clone https://github.com/kabudu/portforge.git
cd portforge
cargo build --release
# optional web dashboard
cargo build --release --features web</pre
>
</div>
</section>
<p class="install-note">
Release artifacts are available for platform-specific installs.
The optional dashboard is enabled with the
<code>web</code> feature flag.
</p>
</div>
</div>
</section>
<section class="section section-faq" id="faq" aria-labelledby="faq-title">
<div class="container faq-shell">
<div class="section-heading narrow">
<p class="eyebrow">FAQ</p>
<h2 id="faq-title">
The questions developers usually ask before adopting a tool like
this.
</h2>
</div>
<div class="faq-list">
<details>
<summary>
What makes PortForge different from a standard port scanner?
</summary>
<p>
It adds developer context: project detection, framework
heuristics, Git branch state, Docker mappings, health probes,
resource usage, and safer cleanup paths.
</p>
</details>
<details>
<summary>Can I use it without the web dashboard?</summary>
<p>
Yes. The default experience is the terminal UI and CLI. The web
dashboard is optional and enabled only when you build with the
<code>web</code> feature.
</p>
</details>
<details>
<summary>
Does PortForge help with stale or orphaned processes?
</summary>
<p>
Yes. It includes cleanup workflows and dry-run support so you
can review likely orphans before terminating them.
</p>
</details>
<details>
<summary>
Is it suitable for automation as well as interactive use?
</summary>
<p>
Yes. You can inspect interactively in the TUI and export
structured output as JSON or CSV for scripts and operational
tooling.
</p>
</details>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="container footer-shell">
<div>
<a class="brand footer-brand" href="#top">
<img
src="assets/logo.png"
alt="PortForge logo"
width="40"
height="40"
/>
<span class="brand-copy">
<span class="brand-name">PortForge</span>
<span class="brand-tag">Know what owns your ports.</span>
</span>
</a>
<p class="footer-copy">
A premium open source workflow for inspecting local ports, tracing
process ownership, and cleaning up environments safely.
</p>
</div>
<nav class="footer-links" aria-label="Footer navigation">
<a href="https://github.com/kabudu/portforge">GitHub</a>
<a href="https://github.com/kabudu/portforge/releases">Releases</a>
<a href="https://github.com/kabudu/portforge/blob/master/README.md"
>Documentation</a
>
<a href="https://github.com/kabudu/portforge/blob/master/ROADMAP.md"
>Roadmap</a
>
<a href="https://github.com/kabudu/portforge/blob/master/SECURITY.md"
>Security</a
>
</nav>
</div>
<p class="footer-meta">
MIT licensed. Built in Rust. Hosted with GitHub Pages.
</p>
</footer>
<div class="sr-only" aria-live="polite" data-copy-status></div>
<script src="js/app.js" defer></script>
</body>
</html>