Skip to content
Kosse

« Kosse qui roule sur mon ordi ? »

Kossé ? is Québécois for “what’s that?”, the question you ask about a port you don’t recognize.

A menu-bar app that tells you what’s listening on your Mac, and which repo started it.

You start dev servers from terminals, scripts and coding agents. A day later there are a dozen listeners on ports you don’t remember, some from worktrees you forgot. Kosse lists them by repo, worktree and branch, and stops one only after you confirm exactly which process it is.

v1, macOS on Apple silicon. The repository isn’t public yet. Sources

What’s on :5175?

Pick a service in the menu or the window. Inspect shows why it’s in that project.

Made-up projects and processes
Kosse127.0.0.1:47831

6 running in 4 projects

storefrontmain~/code/storefront
  • webnode · apps/web
    :5173, :5174Reachable · 2002 h · 3.1% CPU · 182 MB2 h3.1%182 MB
  • apinode · apps/api
    :8787Reachable · 4042 h · 0.4% CPU · 96 MB2 h0.4%96 MB
storefrontfeat/checkoutworktree~/code/storefront-checkout
  • webnode · apps/web
    :5175Reachable · 2003 d · 0.0% CPU · 141 MB3 d0.0%141 MB
notesmain~/code/notes
  • notesnotes
    :3000Reachable · 20040 min · 0.2% CPU · 24 MB40 min0.2%24 MB
  • postgrespostgres
    :5432Listening · Not HTTP40 min · 0.1% CPU · 38 MB40 min0.1%38 MB
No project
  • ollamaollama
    :11434Listening · Not checked6 d · 0.0% CPU · 61 MB6 d0.0%61 MB

storefront · main

storefront · feat/checkout

notes · main

No project

How it works

Finds
Every TCP listener on your Mac and the process behind it, every three seconds. Nothing to register, and no change to how you start things.
Groups
From the process’s working directory up to its repo or worktree, with the branch. Two worktrees of the same repo stay apart, and the nearest package.json or Cargo.toml names the service.
Says what it saw
Listening means a socket is open. Reachable means an HTTP server answered, even with a 404. A database gets no Open link, and what Kosse can’t tell stays unknown.
Stops carefully
It checks the PID and start time again right before the signal, asks for a graceful stop first and forces only after a second confirmation. It never touches the parent, the process group or another user’s processes.
Stays local
The dashboard answers on loopback only and refuses requests from other websites. Secrets in command lines are redacted before anything shows them. No telemetry.
Stays light
One Rust process serves the menu, the dashboard and the CLI. On an M4 Pro, a scan of 30 services takes about 2.4 ms, and the server idles at under half a percent of one core.

Run it

kosse
The menu-bar app, and the dashboard on first launch.
http://127.0.0.1:47831/
The dashboard, in Kosse’s own window or any browser.
kosse list --json
The same snapshot, for scripts.
kosse serve --no-open
No menu, only the dashboard server.

Kosse runs on Apple silicon Macs and builds from source. The app isn’t signed, so allow it once in System Settings › Privacy & Security.

Sources

Last checked .

Status
v1, macOS on Apple silicon. Built from source and unsigned. The repository isn’t public yet.
  • Kosse README and product contractREADME.md and blueprint/product.md at 0f4177a and the Oct 28 working tree (not public yet)

    What it is, the five jobs (see, recognize, open, inspect, stop), grouping by repo, worktree and package, observations instead of health claims, the stop rules, local-only privacy, the name and tagline.

    Written while the code was being renamed from Stackscan. It describes v1; the page doesn’t quote output from the menu or the dashboard.

  • Architecture and verification gatesblueprint/architecture.md and blueprint/verification.md at 0f4177a and the Oct 28 working tree (not public yet)

    One Rust core shared by the menu, the dashboard and the CLI, the 3-second scan, PID plus start time as identity, HTTP probes on loopback only, the browser guards, the commands, and testing against real owned processes.

    A contract for the build. It says what each part must prove, not what a given machine sees.

  • Slice evidence S02 to S04docs/evidence/S02.md, S03.md and S04.md, Oct 28, 2026 (not public yet)

    Scan time with 30 test services in 10 worktrees (2.35 ms warm, median) and the idle cost of the headless server (0.4% of one core, about 14 MiB), both on an Apple M4 Pro.

    One machine, before the menu-bar app and the dashboard window were measured. Your numbers will differ.

  • Kosse brandbrand/BRAND.md, tokens.json and the SVG assets, Oct 28, 2026 (not public yet)

    The mark Le raccord, the Fleuve palette, the state colours, the menu-bar glyph and the voice of the stop confirmation, used on this page as the brand defines them.

    Brand artwork only. The menu and dashboard on this page are drawn for the demo, not captured from the app.