neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
pidlyse macOS 메뉴바 앱, 고아 프로세스·컨테이너 정리
pidlyse — a native macOS menu-bar app that hunts down stray dev processes (orphaned test runners, idle servers, zombie playwright-mcp instances) and Docker containers, and clears them in one click. Ri
개발 도구Swift · MakefileGitHub @fakeneuron온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Native macOS menu bar app that spots stray dev processes — orphaned test runners, idle servers, zombie helpers — and clears them in one click.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Native macOS menu bar app that spots stray dev processes and clears them in one click.
Sits beside the clock. Periodically scans for known process junk — orphaned test runners, idle servers, stale playwright-mcp instances, zombie Chrome helpers — and badges the icon when it finds them. Click to expand: a categorised list with per-row CPU%, RAM, and age; risk-tier color dots; kill buttons for obvious strays; and a "Needs review" section for anything that warrants a second look.README 전문 보기 ↗Native macOS menu bar app that spots stray dev processes and clears them in one click.
Sits beside the clock. Periodically scans for known process junk — orphaned test runners, idle servers, stale playwright-mcp instances, zombie Chrome helpers — and badges the icon with how many look forgotten. Click to expand: likely strays first, grouped by why (session ended, idle, duplicate), with risk-tier color dots and kill buttons; everything still in use folds into one "Running" line you can open by project.
pytest, vitest, vite, jest, npm, docker, uvicorn, playwright, playwright-mcp, Chrome (playwright-mcp), bun, node, Next.js, Astro, cargo, go run, Electron (dev), LLM server, MCP serverVite dev server, wrangler dev, import-scraper.js), the owning project (the git repo / working directory the process runs in, e.g. bidviz or bidviz/frontend; full path on hover), the PID, and a risk-tier color dot (green / orange / red). Click a row for the "why is this here?" inspector (CPU%, RAM, age, tty status, orphan flag, age criteria, why it reads as a stray or as in use, the full command line, and provenance hints: the registered port it listens on, its full parent chain up to launchd, the Docker container that owns it, and its open files + sockets)npm run dev → vite, uv run → uvicorn, next dev → next-server, playwright-mcp → its Chrome helpers) show as a single row with a ×N count; its kill takes down and verifies every member, and the row inspector lists themkilling…, then what actually happened: gone, respawned, didn't die, can't kill, or skipped. "Clean all" reports the tally (e.g. Cleaned 4 of 6 · 1 respawned · 1 didn't die · 1.2 GB reclaimed), and the URL scheme, Shortcuts, and pidlyse clean use the same line.kill <pid>, and reveal the process's working directory in Finder (clipboard / Finder only, no extra shell-out)docker stop when you kill it there @ ~/path), custom detection rules (one command substring → a friendly label; always Needs Review), protected projects (kept out of "Clean all"), per-kind scan toggles (switch off whole process categories), launch at login, notification alerts (opt-in)Open Pidlyse.xcodeproj in Xcode and run (⌘R). The app lives in the menu bar — no Dock icon (LSUIElement = YES). Left-click the icon to open the popover; right-click (or two-finger tap) for a quick Quit menu.
Run the test suite from the command line with make test. The same suite runs automatically on every push to main via GitHub Actions (.github/workflows/test.yml).
Build a Release .app with ad-hoc signing: make build-release (output: build/Release/Pidlyse.app). Copy it to /Applications with make install. Package a distributable DMG (drag-install, with /Applications symlink): make dmg (output: build/Pidlyse.dmg). Push a v* tag to trigger the release workflow (.github/workflows/release.yml), which builds the Release app, packages the DMG, and attaches it to a GitHub Release automatically.
A terminal companion, pidlyse, builds from the same core: make build-cli (output: Packages/PidlyseCore/.build/release/pidlyse), install with make install-cli. pidlyse list [--all] prints the likely strays the popover leads with (name first, then the reason each reads as one; --all adds the processes in use), pidlyse clean runs the same "Clean all" sweep (likely strays that aren't high-risk, minus protected projects, registered-port listeners, and other users' processes) and exits with status 1 if any swept item is not verified gone, and pidlyse kill <pid> kills one listed candidate — all with the app's settings and kill safeguards, and CLI cleans land in the app's "Cleaned" tab.
Pidlyse exposes its clean/scan actions to external launchers (PID-EPIC-58):
open pidlyse://clean sweeps likely strays that aren't high-risk, protected, on a registered port, or another user's, and posts a result notification; open pidlyse://scan re-enumerates. Any launcher that opens a URL can drive it.pidlyse://clean and pidlyse clean.integrations/raycast/ wrap the installed pidlyse CLI for users who prefer the terminal companion (make install-cli first).AppleScript is intentionally not supported — osascript users can do shell script "pidlyse clean" via the CLI.
| State | Icon | Badge |
|---|---|---|
| Clean | ghost outline | none |
| Safe kills available | filled icon | red count |
| Review items only | filled icon | yellow count |
| Scanning | spinner overlay | — |
The icon pulses once when a new stray appears (suppressed under Reduce Motion).
Pidlyse sends real kill signals, so its trust story matters. The source is public precisely so you can verify all of the below:
Darwin.kill(pid, …) and only succeed against your own processes; anything owned by another user (e.g. the root Docker daemon) returns EPERM and is left untouched — and because the owner is read at scan time, such rows show an "unkillable" badge in place of the kill button and are left out of "Clean all". Pidlyse never escalates, never asks for an admin password.~/Library/Application Support/Pidlyse/ports.json if the user-created file exists (the app never writes it). Its only disk writes are the settings plist via UserDefaults (~/Library/Preferences/com.fakeneuron.pidlyse.plist), the clean log ~/Library/Application Support/Pidlyse/clean-log.json — one entry per confirmed kill (process kind, short project label, memory size, timestamp; never a command line), capped at the newest 1,000 events, written by both the app and the pidlyse CLI — and that log's empty sibling lock file clean-log.json.lock, which serializes those two writers.SMAppService. The registration persists until the app is removed or you disable the option in Settings.lsof times out), the sweep pauses for that scan: "Clean all" and pidlyse clean take nothing until a scan reads ports again, so an unreadable port can't let a port-bound stray through, and every easy row reads as needs-review until then./bin/ps, /usr/sbin/lsof, and docker (/usr/local/bin/docker or /opt/homebrew/bin/docker) — always with arguments passed as an array, never via a shell string. There is no , no lookup of the binary, and no user input interpolated into a command. The resolved binary is also verified before exec — owned by root or you, and not world-writable — so a trojan planted in a world-writable or foreign-owned location won't run on a docker-kill. (Residual: is group-writable by on Intel by design, so a same-group attacker could still replace it there; closing that would silently break Docker detection on those machines, so it's left as a documented gap.) Read it for yourself in (the one place a subprocess is spawned, each under a hard deadline), , , , and .Release DMGs are ad-hoc signed, not yet Apple-notarized, so on first launch macOS Gatekeeper shows "Apple could not verify…". To open it: right-click the app → Open (once), or clear the quarantine flag with xattr -d com.apple.quarantine /Applications/Pidlyse.app. Because the source is public, you can also just build it yourself (make build-release). Each release publishes a SHA-256 checksum alongside the DMG — verify with shasum -a 256 Pidlyse.dmg and compare.
Drag Pidlyse.app to the Trash. The residue is ~/Library/Preferences/com.fakeneuron.pidlyse.plist (tiny settings file), the ~/Library/Application Support/Pidlyse/ folder (the clean log, plus your ports.json if you created one) and, if "Launch at login" was enabled, a login-item registration. Remove them manually with rm ~/Library/Preferences/com.fakeneuron.pidlyse.plist and rm -r ~/Library/Application\ Support/Pidlyse; the login-item clears on its own once the app is gone.
See SPEC.md for the full technical specification, scan logic, classification rules, and project structure.
See .flaitron/PLAN.md.
sh -c$PATHdockerdocker/usr/local/binadmin