[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"public-config":3,"i-flag:ph-4x3":14,"i-flag:us-4x3":19,"i-flag:de-4x3":21,"i-flag:hk-4x3":23,"i-tabler:lifebuoy":25,"i-tabler:timeline":28,"i-tabler:apps":30,"i-tabler:package":32,"i-tabler:circle-half-2":34,"i-tabler:sun":36,"i-tabler:moon":38,"i-tabler:menu-2":40,"i-tabler:user":42,"i-tabler:notebook":44,"i-simple-icons:forgejo":46,"i-tabler:shield-lock":48,"i-tabler:tools":50,"i-tabler:calendar":52,"i-tabler:x":54,"$f2ngosunesk9p9":56,"i-tabler:arrow-left":75,"i-tabler:tag":77},{"matomo":4,"booking":7,"site":9,"blog":11,"newsletter":12},{"enabled":5,"siteId":6},true,"7",{"enabled":5,"url":8},"https:\u002F\u002Fcal.com\u002Fjdbungart",{"url":10},"https:\u002F\u002Fjdneer.com",{"enabled":5},{"enabled":13},false,{"left":15,"top":15,"width":16,"height":17,"rotate":15,"vFlip":13,"hFlip":13,"body":18},0,640,480,"\u003Cpath fill=\"#0038a8\" d=\"M0 0h640v240H0z\"\u002F>\u003Cpath fill=\"#ce1126\" d=\"M0 240h640v240H0z\"\u002F>\u003Cpath fill=\"#fff\" d=\"M415.7 240L0 480V0\"\u002F>\u003Cpath fill=\"#fcd116\" d=\"M26.7 42.4L41 55l16.6-9.2l-7.4 17.5l14 13l-19-1.6l-8.1 17.2l-4.3-18.5L14 71l16.3-10zm323.8 172.3l.4 19l18 6.3l-18 6.2l-.4 19l-11.5-15.1l-18.2 5.5l10.8-15.6l-10.8-15.6l18.2 5.5zM37.2 388.1l8 17.2l19-1.6l-13.9 13l7.4 17.5l-16.6-9.1l-14.4 12.4l3.6-18.7L14 409l18.9-2.4zm114.2-249l-6.2 6.2l3.1 47l-3 .3l-5.7-42.9l-5.1 5l7.6 38.4a48 48 0 0 0-17.2 7.1l-21.7-32.4H96l26.4 34.3l-2.4 2l-31.1-35.5h-8.8v8.8l35.4 31l-2 2.5l-34.3-26.3v7.1l32.5 21.7q-5.2 7.8-7.1 17.2L66.3 223l-5.1 5l42.9 5.7q-.3 1.6-.3 3.1l-47-3l-6.2 6.2l6.2 6.2l47-3.1l.3 3.1l-42.9 5.7l5 5l38.4-7.6a48 48 0 0 0 7.1 17.2l-32.5 21.7v7.2l34.3-26.3l2 2.4l-35.4 31v8.8H89l31-35.4l2.5 2L96 312.2h7.2l21.7-32.5q7.8 5.2 17.2 7.1l-7.6 38.4l5 5l5.7-42.9q1.5.3 3.1.3l-3 47l6.1 6.2l6.3-6.2l-3.1-47l3-.3l5.7 43l5.1-5.1l-7.6-38.4a48 48 0 0 0 17.2-7.1l21.7 32.5h7.2l-26.4-34.3l2.4-2l31.1 35.4h8.8v-8.8l-35.4-31l2-2.4l34.3 26.3v-7.2l-32.5-21.7q5.2-7.8 7.1-17.2l38.3 7.6l5.1-5l-42.9-5.7q.3-1.5.3-3.1l47 3l6.2-6.1l-6.2-6.2l-47 3l-.3-3l42.9-5.7l-5-5l-38.4 7.5a48 48 0 0 0-7.1-17.2l32.5-21.7v-7.1l-34.3 26.3l-2-2.4l35.4-31v-8.9H214l-31 35.5l-2.5-2l26.4-34.3h-7.2L178 200.2q-7.8-5.2-17.2-7.1l7.6-38.3l-5-5l-5.7 42.8l-3.1-.3l3-47z\"\u002F>",{"left":15,"top":15,"width":16,"height":17,"rotate":15,"vFlip":13,"hFlip":13,"body":20},"\u003Cpath fill=\"#bd3d44\" d=\"M0 0h640v480H0\"\u002F>\u003Cpath stroke=\"#fff\" stroke-width=\"37\" d=\"M0 55.3h640M0 129h640M0 203h640M0 277h640M0 351h640M0 425h640\"\u002F>\u003Cpath fill=\"#192f5d\" d=\"M0 0h364.8v258.5H0\"\u002F>\u003Cmarker id=\"SVGEq3dreKJ\" markerHeight=\"30\" markerWidth=\"30\">\u003Cpath fill=\"#fff\" d=\"m14 0l9 27L0 10h28L5 27z\"\u002F>\u003C\u002Fmarker>\u003Cpath fill=\"none\" marker-mid=\"url(#SVGEq3dreKJ)\" d=\"m0 0l16 11h61h61h61h61h60L47 37h61h61h60h61L16 63h61h61h61h61h60L47 89h61h61h60h61L16 115h61h61h61h61h60L47 141h61h61h60h61L16 166h61h61h61h61h60L47 192h61h61h60h61L16 218h61h61h61h61h60z\"\u002F>",{"left":15,"top":15,"width":16,"height":17,"rotate":15,"vFlip":13,"hFlip":13,"body":22},"\u003Cpath fill=\"#fc0\" d=\"M0 320h640v160H0z\"\u002F>\u003Cpath fill=\"#000001\" d=\"M0 0h640v160H0z\"\u002F>\u003Cpath fill=\"red\" d=\"M0 160h640v160H0z\"\u002F>",{"left":15,"top":15,"width":16,"height":17,"rotate":15,"vFlip":13,"hFlip":13,"body":24},"\u003Cpath fill=\"#ec1b2e\" d=\"M0 0h640v480H0\"\u002F>\u003Cpath id=\"SVG5tfvBPpj\" fill=\"#fff\" d=\"M346.3 103.1C267 98 230.6 201.9 305.6 240.3c-26-22.4-20.6-55.3-10.1-72.4l1.9 1.1c-13.8 23.5-11.2 52.7 11.1 71c-12.7-12.3-9.5-39 12.1-48.9s23.6-39.3 16.4-49.1q-14.7-25.6 9.3-38.9M307.9 164l-4.7 7.4l-1.8-8.6l-8.6-2.3l7.8-4.3l-.6-8.9l6.5 6.1l8.3-3.3l-3.7 8.1l5.6 6.8z\"\u002F>\u003Cuse href=\"#SVG5tfvBPpj\" transform=\"rotate(72 312.5 243.5)\"\u002F>\u003Cuse href=\"#SVG5tfvBPpj\" transform=\"rotate(144 312.5 243.5)\"\u002F>\u003Cuse href=\"#SVG5tfvBPpj\" transform=\"rotate(216 312.5 243.5)\"\u002F>\u003Cuse href=\"#SVG5tfvBPpj\" transform=\"rotate(288 312.5 243.5)\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":27},24,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M8 12a4 4 0 1 0 8 0a4 4 0 1 0-8 0\"\u002F>\u003Cpath d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m12 3l3.35 3.35M9 15l-3.35 3.35m0-12.7L9 9m9.35-3.35L15 9\"\u002F>\u003C\u002Fg>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":29},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m4 16l6-7l5 5l5-6\"\u002F>\u003Cpath d=\"M14 14a1 1 0 1 0 2 0a1 1 0 1 0-2 0M9 9a1 1 0 1 0 2 0a1 1 0 1 0-2 0m-6 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m16-8a1 1 0 1 0 2 0a1 1 0 1 0-2 0\"\u002F>\u003C\u002Fg>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":31},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm0 10a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1zm0-8h6m-3-3v6\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":33},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 3l8 4.5v9L12 21l-8-4.5v-9zm0 9l8-4.5M12 12v9m0-9L4 7.5m12-2.25l-8 4.5\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":35},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m9-9v18m0-7l7-7m-7 12l8.5-8.5M12 9l4.5-4.5\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":37},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 12a4 4 0 1 0 8 0a4 4 0 1 0-8 0m-5 0h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7l-.7.7m0 11.4l.7.7m-12.1-.7l-.7.7\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":39},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 3h.393a7.5 7.5 0 0 0 7.92 12.446A9 9 0 1 1 12 2.992z\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":41},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":43},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":45},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 4h11a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m3 0v18m4-14h2m-2 4h2\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":47},"\u003Cpath fill=\"currentColor\" d=\"M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.08 7.08 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422a2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24A2.9 2.9 0 0 1 5.8 18.57V8.589a7.11 7.11 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0M7.223 19.905a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.389m9.554-10.464a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.39m0-7.735a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.389\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":49},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 3a12 12 0 0 0 8.5 3A12 12 0 0 1 12 21A12 12 0 0 1 3.5 6A12 12 0 0 0 12 3\"\u002F>\u003Cpath d=\"M11 11a1 1 0 1 0 2 0a1 1 0 1 0-2 0m1 1v2.5\"\u002F>\u003C\u002Fg>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":51},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 21h4L20 8a1.5 1.5 0 0 0-4-4L3 17zM14.5 5.5l4 4\"\u002F>\u003Cpath d=\"M12 8L7 3L3 7l5 5M7 8L5.5 9.5M16 12l5 5l-4 4l-5-5m4 1l-1.5 1.5\"\u002F>\u003C\u002Fg>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":53},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm12-4v4M8 3v4m-4 4h16m-9 4h1m0 0v3\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":55},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M18 6L6 18M6 6l12 12\"\u002F>",{"slug":57,"title":58,"excerpt":59,"image":60,"publishedAt":61,"topics":62,"readMinutes":63,"html":64,"metaTitle":58,"metaDescription":65,"shareImage":66,"updatedAt":70,"author":71,"related":74},"frigate-top-v1-0-0-htop-for-your-frigate-nvr","frigate-top v1.0.0: htop for Your Frigate NVR","I've released frigate-top v1.0.0, an htop-style terminal dashboard for Frigate NVR hosts. It shows CPU, memory, I\u002FO wait, disk, NVIDIA GPU, and network errors alongside skipped frames, detector inference time, camera status, recent detections, and an estimated camera capacity.","\u002Fcontent\u002Fimages\u002F2026\u002F07\u002Fscreenshot.png","2026-07-13T13:11:32.000+08:00",[],4,"\u003Ch1 id=\"frigate-top-v100-htop-for-your-frigate-nvr\">frigate-top v1.0.0: htop for Your Frigate NVR\u003C\u002Fh1>\n\u003Cp>I have released \u003Cstrong>frigate-top v1.0.0\u003C\u002Fstrong>, a real-time, interactive terminal dashboard for \u003Ca href=\"https:\u002F\u002Ffrigate.video\u002F?ref=ghost.jdneer.com\">Frigate NVR\u003C\u002Fa> hosts.\u003C\u002Fp>\n\u003Cp>For those unfamiliar with it, \u003Ca href=\"https:\u002F\u002Ffrigate.video\u002F?ref=ghost.jdneer.com\">Frigate\u003C\u002Fa> is an open-source network video recorder built around real-time AI object detection for IP cameras. Video processing and object detection run locally on your own hardware rather than depending on a cloud service. Frigate can use CPUs, GPUs, and dedicated AI accelerators to process camera streams, identify tracked objects, and integrate with platforms such as Home Assistant.\u003C\u002Fp>\n\u003Cp>The official Frigate website, documentation, and upstream project are available here:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ffrigate.video\u002F?ref=ghost.jdneer.com\">Frigate project website\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.frigate.video\u002F?ref=ghost.jdneer.com\">Frigate documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblakeblackshear\u002Ffrigate?ref=ghost.jdneer.com\">Frigate source code and community discussions\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The simplest description of \u003Ccode>frigate-top\u003C\u002Fcode> is \u003Cstrong>htop for your Frigate box\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Frigate provides a solid interface for cameras, events, recordings, and object detection, but diagnosing the host itself often requires jumping between several tools. CPU load may look fine while I\u002FO wait is climbing. A detector may still be running while inference latency is getting worse. Cameras may remain connected while frames are being skipped. Storage, network errors, GPU load, and Frigate statistics all need to be considered together.\u003C\u002Fp>\n\u003Cp>\u003Ccode>frigate-top\u003C\u002Fcode> puts those signals into one terminal view.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Ffrigate-top\u002Fmedia\u002Fbranch\u002Fmain\u002Fdoc\u002Fscreenshot.png\" alt=\"frigate-top v1.0.0 terminal dashboard\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\u003Ch2 id=\"one-dashboard-for-the-host-and-frigate\">One dashboard for the host and Frigate\u003C\u002Fh2>\n\u003Cp>The interface is divided into three groups: \u003Cstrong>SYSTEM\u003C\u002Fstrong>, \u003Cstrong>NETWORK\u003C\u002Fstrong>, and \u003Cstrong>FRIGATE\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>The system section covers CPU usage, memory pressure, CPU I\u002FO wait, one-minute load, disk reads and writes, and NVIDIA GPU utilization, memory use, and temperature. Multiple NVIDIA GPUs are detected and displayed separately.\u003C\u002Fp>\n\u003Cp>The network section shows receive and transmit throughput together with interface errors and dropped packets. Non-zero network errors are highlighted immediately because they should not be treated as normal background noise.\u003C\u002Fp>\n\u003Cp>The Frigate section includes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>skipped frames\u003C\u002Fli>\n\u003Cli>detector inference time\u003C\u002Fli>\n\u003Cli>detection FPS\u003C\u002Fli>\n\u003Cli>aggregate camera FPS\u003C\u002Fli>\n\u003Cli>online and offline camera counts\u003C\u002Fli>\n\u003Cli>recent tracked-object activity\u003C\u002Fli>\n\u003Cli>an estimated detector-supported camera count\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The detections summary is pulled from Frigate's \u003Ccode>\u002Fapi\u002Fevents\u003C\u002Fcode> endpoint and breaks recent activity down into people, vehicles, animals, recognised faces, recognised plates, and other tracked objects.\u003C\u002Fp>\n\u003Ch2 id=\"detector-capacity-at-a-glance\">Detector capacity at a glance\u003C\u002Fh2>\n\u003Cp>One of the more useful fields is the \u003Cstrong>supported cameras estimate\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>This is calculated from detector throughput, the configured detection frame rate, and a configurable safety margin. It avoids using the live detection rate, which changes with motion and would make the result misleading.\u003C\u002Fp>\n\u003Cp>The estimate is not a promise that every possible camera configuration will work, but it provides a useful capacity indicator while tuning or expanding a Frigate system.\u003C\u002Fp>\n\u003Cp>The safety margin can be adjusted with \u003Ccode>--detector-headroom\u003C\u002Fcode>. The default is \u003Ccode>0.75\u003C\u002Fcode>, meaning the estimate reserves 25 percent of the detector's calculated throughput instead of sizing directly against the theoretical limit.\u003C\u002Fp>\n\u003Ch2 id=\"designed-to-be-easy-to-deploy\">Designed to be easy to deploy\u003C\u002Fh2>\n\u003Cp>\u003Ccode>frigate-top\u003C\u002Fcode> is a single Python module and has \u003Cstrong>no required third-party dependencies\u003C\u002Fstrong>. It runs on Linux with Python 3.7 or newer and reads most host statistics directly from \u003Ccode>\u002Fproc\u003C\u002Fcode> and \u003Ccode>\u002Fsys\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Optional integrations are detected at runtime:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>nvidia-smi\u003C\u002Fcode> provides NVIDIA GPU telemetry\u003C\u002Fli>\n\u003Cli>Docker or Podman provides Frigate container status\u003C\u002Fli>\n\u003Cli>PyYAML provides richer Frigate configuration parsing\u003C\u002Fli>\n\u003Cli>the Frigate API provides camera, detector, and event statistics\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Without PyYAML, the tool uses a minimal fallback parser for the configuration values it needs.\u003C\u002Fp>\n\u003Cp>It can automatically locate Frigate on common HTTP and HTTPS ports, select the busiest network interface, identify the active disk device, and discover all available NVIDIA GPUs. Explicit overrides are available for installations where auto-detection is not appropriate.\u003C\u002Fp>\n\u003Ch2 id=\"installation\">Installation\u003C\u002Fh2>\n\u003Cp>The easiest way to deploy it locally is to fetch the release file and place it on your system path:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">sudo curl -fsSL https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Ffrigate-top\u002Fraw\u002Ftag\u002Fv1.0.0\u002Ffrigate_top.py \\\n  -o \u002Fusr\u002Flocal\u002Fbin\u002Ffrigate-top\n\nsudo chmod +x \u002Fusr\u002Flocal\u002Fbin\u002Ffrigate-top\n\nfrigate-top\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>See the \u003Ca href=\"https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Ffrigate-top?ref=ghost.jdneer.com#install\">installation documentation\u003C\u002Fa> for additional installation options.\u003C\u002Fp>\n\u003Ch2 id=\"basic-usage\">Basic usage\u003C\u002Fh2>\n\u003Cp>Start the dashboard with a one-minute history and one-second refresh interval:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">frigate-top\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Use a longer history window:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">frigate-top --timeframe 10\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Specify the Frigate API and configuration file explicitly:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">frigate-top \\\n  --frigate-url http:\u002F\u002Flocalhost:5000 \\\n  --config \u002Fconfig\u002Fconfig.yml\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Pin the network interface and disk device:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">frigate-top --net-iface eth0 --disk nvme0n1\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Export collected samples to CSV:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">frigate-top --csv \u002Ftmp\u002Ffrigate-top.csv\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Generate a one-off, non-interactive reading for scripts, cron jobs, or health checks:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">frigate-top --snapshot\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The default renderer uses terminal block characters. Dense Braille graphs and plain ASCII output are also available:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">frigate-top --braille\nfrigate-top --ascii --no-color\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"interactive-controls\">Interactive controls\u003C\u002Fh2>\n\u003Cp>While the dashboard is running, the history window can be changed with \u003Ccode>1\u003C\u002Fcode>, \u003Ccode>5\u003C\u002Fcode>, \u003Ccode>p\u003C\u002Fcode>, or \u003Ccode>t\u003C\u002Fcode> for one minute, five minutes, fifteen minutes, or a custom duration.\u003C\u002Fp>\n\u003Cp>The \u003Ccode>s\u003C\u002Fcode>, \u003Ccode>w\u003C\u002Fcode>, and \u003Ccode>f\u003C\u002Fcode> keys collapse or expand the System, Network, and Frigate sections. Memory can be switched between percentage and byte views with \u003Ccode>m\u003C\u002Fcode>, while network units can be toggled between Mbps and MB\u002Fs with \u003Ccode>n\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Press \u003Ccode>q\u003C\u002Fcode> to exit.\u003C\u002Fp>\n\u003Ch2 id=\"operational-and-security-choices\">Operational and security choices\u003C\u002Fh2>\n\u003Cp>The tool is read-only. Subprocess calls use fixed argument lists without invoking a shell, YAML is parsed with \u003Ccode>safe_load\u003C\u002Fcode>, and optional debug logs are created in a per-user runtime directory with protection against symbolic-link replacement.\u003C\u002Fp>\n\u003Cp>TLS certificates are verified when connecting to remote HTTPS Frigate instances. Verification is relaxed automatically only for loopback connections, where self-signed certificates are common, or explicitly with \u003Ccode>--insecure\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"source-licence-and-feedback\">Source, licence, and feedback\u003C\u002Fh2>\n\u003Cp>The source code, documentation, release notes, and issue tracker for \u003Ccode>frigate-top\u003C\u002Fcode> are available here:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Ffrigate-top?ref=ghost.jdneer.com\">git.jdneer.com\u002Fjd\u002Ffrigate-top\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Ccode>frigate-top\u003C\u002Fcode> is released under the \u003Cstrong>Apache License 2.0\u003C\u002Fstrong>. Bug reports, compatibility feedback, and sensible feature requests are welcome through the \u003Ca href=\"https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Ffrigate-top\u002Fissues?ref=ghost.jdneer.com\">\u003Ccode>frigate-top\u003C\u002Fcode> issue tracker\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>For questions about installing, configuring, or troubleshooting Frigate itself, refer to the upstream resources:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.frigate.video\u002F?ref=ghost.jdneer.com\">Official Frigate documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblakeblackshear\u002Ffrigate\u002Fdiscussions?ref=ghost.jdneer.com\">Frigate GitHub discussions\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblakeblackshear\u002Ffrigate\u002Fissues?ref=ghost.jdneer.com\">Frigate GitHub issue tracker\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This is the initial public release. The immediate goal was a useful, low-dependency operational view that can be copied onto a Frigate host and run without deploying another monitoring platform.\u003C\u002Fp>\n\u003Cp>\u003Ccode>frigate-top\u003C\u002Fcode> is an independent project and is not affiliated with or endorsed by the Frigate NVR project, NVIDIA, Google, or Docker.\u003C\u002Fp>","I've released frigate-top v1.0.0, an htop-style terminal dashboard for Frigate NVR hosts. It shows CPU, memory, I\u002FO wait, disk, NVIDIA GPU, and network...",{"src":60,"width":67,"height":68,"type":69},1145,953,"image\u002Fpng","2026-10-12T21:50:17.000+08:00",{"name":72,"url":73,"owner":13},"Aiko Tanaka",null,[],{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":76},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14M5 12l6 6m-6-6l6-6\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":78},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0-2 0\"\u002F>\u003Cpath d=\"M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592-5.592a2.41 2.41 0 0 0 0-3.408l-7.71-7.71A2 2 0 0 0 11.172 3H6a3 3 0 0 0-3 3\"\u002F>\u003C\u002Fg>"]