Vitals - A tiny macOS process monitor lives in the menu bar, keeping track of resource usage

Overview

Vitals

A tiny macOS process monitor.

Vitals screenshot

Vitals lives in the menu bar, keeping track of resource usage in the background so you can summon it instantly at any time.

While other tools like Activity Monitor show you each process' current CPU usage, Vitals shows a per-process CPU graph covering the last 60 seconds. This makes it much easier to track down apps that misbehave sporadically.

Read more about why this exists in the introductory blog post.

Install

If you have Homebrew, you can install it from my tap:

$ brew tap hmarr/tap
$ brew install vitals

Otherwise, you can download the latest release manually:

  1. Download and extract the zip file from the latest GitHub release.
  2. Drag the file called Vitals into your computer's Applications folder.
  3. Within the Applications folder, right-click the app, then select β€œOpen” from the menu that pops up. (It's not notarised, which is why you'll need to right-click.)

Usage

Vitals runs in the background, and lives in your Mac's menu bar. The icon looks like a little "V" in a circle. Click that to open Vitals. To quit, right-click the menu bar icon and select "Quit Vitals" from the menu that appears.

Comments
  • CPU usage for certain processes doesn't match Activity Monitor

    CPU usage for certain processes doesn't match Activity Monitor

    See this example:

    image

    Google Chrome Helper (Renderer) displays 36% but vitals shows a steady 7%. I watched it for some time and both numbers stayed roughly stable.

    Running macOS 11.2.2

    opened by nickrw 8
  • Menu bar icon can't be dragged/re-ordered

    Menu bar icon can't be dragged/re-ordered

    Thanks for creating this neat little app! I've faced a similar problem to what you outlined in your blog post, and I'm excited that I found Vitals.

    I'm not sure what causes this behavior, but I can't seem to drag-n-drop the Vitals icon to reorder it among my other menu bar apps. I use a ton of them (iStat Menus, Dropbox, Alfred, BlueJeans, 1Password, to name a few) - all of them can be reordered if I hold down CMD and click to drag. Vitals seems to treat this as a regular click (and opens the main processes window.

    I may poke around to see if I can figure it out, but I have no experience with menu bar apps so I don't expect to find a solution quickly πŸ˜…

    opened by erawhctim 7
  • Buttons changing the metrics display with question marks

    Buttons changing the metrics display with question marks

    First thanks for your effort to create such a compact and useful utility!

    I am using it with macOS Catalina. In version 0.5 there are two buttons supposed to change what metrics display and they work, but they both show question marks indicating the font used in this version of macOS doesn't have them. Screen Shot 2021-07-19 at 01 35 17

    opened by gkarag 3
  • Render in an NSMenuItem instead of an NSPopover

    Render in an NSMenuItem instead of an NSPopover

    Replace the popover with a menu item that has a custom view.

    Pros:

    • Simplifies the code a fair bit
    • Native behaviour comes for free (e.g. press and hold menu item to show temporarily rather than toggling)
    • Looks better?

    Cons:

    • View dimensions are hard-coded
    • Looks worse?

    Thoughts on whether the new look is a "pro" or a "con" welcome!

    opened by hmarr 3
  • vitals uses significant power

    vitals uses significant power

    Pretty much the title. Somewhat concerning since I always have vitals running so being a bit power hungry could have a nontrivial effect on battery life.

    I wonder if this is because vitals now tracks 3 or 4 different resources instead of just CPU. I'd be willing to look into creating a setting to toggle the resources a user wants to track which might allow users to mitigate this. Lmk if that sounds like a pull request you think you'd accept.

    Environment

    • Vitals version 0.7
    • Device: MacBook Air (Retina, 13-inch, 2018)
    • OS version: macOS Monterey 12.0.1 (21A559)

    Images

    Screen Shot 2022-01-16 at 7 38 35 PM Screen Shot 2022-01-16 at 7 44 15 PM
    opened by garyemerson 2
  • Fix ResourceType cycle buttons for dark mode on macOS 11+

    Fix ResourceType cycle buttons for dark mode on macOS 11+

    Hello! Thanks for Vitals.

    I noticed that the two buttons to cycle between resources don't look good on dark mode with a dark background. I replaced the images with the same SF symbols when on macOS 11+ (docs), which adapt to the theme used.

    | Before | After | | :--------: | ---------: | | screenshot_2021-08-08_22-22-27 | screenshot_2021-08-08_22-22-32 |

    opened by angristan 2
  • Sometimes hang when switching between pages

    Sometimes hang when switching between pages

    (really enjoy using the app when I have to btw. Thanks, for making and sharing it!)

    Description

    Sometimes when clicking to switch to a different resource page the app hangs and the infamous spinning wheel appears. Interestingly, all that is required to "unhang" is to move the cursor and the app will instantly become responsive again and switch resource pages (see video for more clear demo).

    Steps to reproduce

    1. Click thru resource pages without moving the cursor, just clicking
    2. Take note of the resource heading label (e.g. "CPU", "Memory" etc) and when you see that the page hasn't change but you have clicked then wait a few seconds and observe the spinning wheel and the page never changing
    3. Move cursor and observe spinning wheel disappearing and resource page changing appropriately

    Environment

    • Vitals version 0.7
    • Device: MacBook Air (Retina, 13-inch, 2018)
    • OS version: macOS Monterey 12.0.1 (21A559)

    Video demo

    (please excuse the annoying popup for the trial software I downloaded to show my mouse clicks)

    https://user-images.githubusercontent.com/5726308/141922180-15a24ac5-f480-4e76-8b6e-c18e68bb1a58.mp4

    Instruments trace

    I also recorded a trace using the instruments app while repro'ing this issue and attached it below. If you open it in instruments you can see when the "spinning" event happened and what function calls were most present in the samples. Lots of things to do with mouse events and it doesn't look like the CPU usage is very high so it might be erroneously waiting on an event.

    vitals.trace.zip

    opened by garyemerson 1
  • Does not seem to start

    Does not seem to start

    Problem

    I downloaded and ran the application (allowing it in the Security and Privacy) but nothing seems to happen

    Details:

    Installation Method: brew OS Version: MacOS Big Sur 11.2.3

    Additional Context

    Love the idea, just need to get it to work, please let me know if you need more information

    opened by Spazzy757 1
  • Increase popover size to match ContentView

    Increase popover size to match ContentView

    Fixes #7 on macOS 11 (Big Sur).

    Screenshot 2021-03-25 at 00 11 56

    This is quite a straight-forward fix for the height issue, it just sets popover.contentSize's height to 492. This is equal to (20 process name heights * 16 px) + (19 VStack spacing * 8 px) + (2 VStack padding * 10 px).

    It unfortunately introduces some coupling but, from my testing, it seems unavoidable if we want to avoid scrolling. From what I've seen online, the alternative would be calling VStack.fixedSize(horizontal: false, vertical: true) to avoid clipping height, but in my tests this bizarrely sets the NSHostingView height to 4284 px...

    Screenshot 2021-03-25 at 00 07 19
    opened by jlledo 1
  • Make it `brew install`able

    Make it `brew install`able

    It looks pretty easy to add a cask.

    Given the homebrew rejection criteria, it might be worth waiting to see if adoption grows a bit before submitting to the core casks repo. In the meantime, publishing to my homebrew tap might be good enough.

    opened by hmarr 1
  • Show network IO

    Show network IO

    It looks like nettop should return what we need. The command would look something like this:

    nettop -P -L 1 -k time,interface,state,rx_dupe,rx_ooo,re-tx,rtt_avg,rcvsize,tx_win,tc_class,tc_mgt,cc_algo,P,C,R,W,arch
    

    The chart component would probably need a way of showing ingress and egress IO separately.

    enhancement 
    opened by hmarr 1
Releases(v0.9)
Owner
Harry Marr
I work here! :octocat:
Harry Marr
MobilePillowTalkLite - An iOS & SwiftUI server monitor tool for linux based machines using remote proc file system with script execution

# PillowTalk - iOS/Lite bbtop PillowTalk -> ζž•ε€΄ι€Όι€Ό -> bbtop! An iOS & SwiftUI serv

Lakr Aream 416 Dec 16, 2022
πŸš€ It Makes easy to track your task πŸ”₯ Beautiful & Animated UIπŸ‘¨πŸ»β€πŸ’» . Contributions are always welcome πŸ€—

Taskey ?? What is Taskey ?? ? Taskey is an application build in SwiftUI to track your task with a beautiful animations and UI . Also used core data to

Mohd Yasir 36 Nov 20, 2022
Swiftui-animation-observer - Track SwiftUI animation progress and completion via callbacks

SwiftUI Animation Observer Track SwiftUI animation progress and completion via c

Gordan GlavaΕ‘ 9 Nov 5, 2022
πŸš€ It Makes easy to track your task πŸ”₯ Beautiful & Animated UIπŸ‘¨πŸ»β€πŸ’» . Contributions are always welcome πŸ€—

Taskey ?? What is Taskey ?? ? Taskey is an application build in SwiftUI to track your task with a beautiful animations and UI . Also used core data to

AppLobby 36 Nov 20, 2022
This repo contains swift collection of gui, games, menu, animations, music, payment, etc... for iOS, macOS, watchOS and tvOS

Swift-Collections About: This repo contains a collection of projects built using swift and objective-c Contains projects for macOS iOS iPad watchOS tv

Krisna Pranav 6 Nov 15, 2022
A simple animated progress bar in Swift

DSGradientProgressView Introduction DSGradientProgressView is a simple and customizable animated progress bar written in Swift. Inspired by GradientPr

Dhol Studio 445 Oct 13, 2022
Simple and powerful animated progress bar with dots

Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements iOS 8.0+ Swift 3.0+ Installatio

Nikola Corlija 42 Dec 5, 2022
Fully customizable circular progress bar written in Swift.

Fully customizable, circular progress bar written in Swift. Example To run the example project, clone the repo, and run pod install from the Example d

Lionheart Software 137 Nov 11, 2022
Physics-based animations for iOS, tvOS, and macOS.

Advance An animation library for iOS, tvOS, and macOS that uses physics-based animations (including springs) to power interactions that move and respo

Tim Donnelly 4.5k Dec 29, 2022
Genie - A Playground to recreate the macOS Genie Effect.

Genie A Playground to recreate the macOS Genie Effect. For more information, please read the accompanying blog post: Recreating the macOS Genie Effect

Harshil Shah 66 Nov 18, 2022
A port of SwiftUILab's Advanced Animations that also supports macOS

SwiftUILab Advanced Animations on the Mac as well A port of SwiftUILab's Advanced Animations that also supports macOS Here's the Ghist of the original

Mihaela Mihaljevic Jakic 10 Jan 2, 2023
Swift animation library for iOS, tvOS and macOS.

anim is an animation library written in Swift with a simple, declarative API in mind. // moves box to 100,100 with default settings anim { self.bo

Onur Ersel 555 Dec 12, 2022
jasu 29 Dec 20, 2022
This library for animating text. Developed with SwiftUI. This library supports iOS/macOS.

AnimateText This library for animating text. Developed with SwiftUI. This library supports iOS/macOS. Screenshot AnimateText.mp4 Example https://fabul

jasu 123 Jan 2, 2023
LottieUI - A library developed to make Lottie easy to implement. It supports iOS and macOS

LottieUI It is a library developed to make Lottie easy to implement. It supports

jasu 51 Dec 24, 2022
Flip is a book tracking app built for iOS and iPadOS. Coming soon to watchOS and macOS.

Flip Flip is a project aimed at helping users manage their library of books. It has a clean user interface, allows users to sort and filter their libr

Jesal 4 Dec 8, 2022
Resource monitor - A flutter plugin for Android and IOS to monitor CPU and RAM usage of device.

resource_monitor A flutter plugin for Android and IOS to monitor CPU and RAM usage of device. TODO Implement Android Side of this plugin. Add listener

Skandar Munir 1 Nov 11, 2022
Barber lives in your macOS menu bar and keeps track of what needs to be updated.

Barber Barber is a macOS application to keep track of application updates easily. It lives in your menu bar, and uses homebrew to determine what's out

Max Ainatchi 1 Nov 30, 2021
Monitor for displaying process traffic on Mac Status bar

ITraffic-monitor-for-mac Monitor for displaying process traffic on Mac Status bar MacOS version required The macOS version should >= 10.15, since the

foam 455 Dec 29, 2022
iOS app for keeping track of tasks using to-do lists

ToDo ToDo is a simple app that helps you keep track of tasks. Requirements iOS 15+ iPadOS 15+ License Distributed under the GPLv3 license. See LICENSE

Daniil 3 Apr 23, 2022