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

Last update: Jun 16, 2022

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.

GitHub

https://github.com/hmarr/vitals
Comments
  • 1. 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

    Reviewed by nickrw at 2021-03-24 18:36
  • 2. 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 πŸ˜…

    Reviewed by erawhctim at 2021-03-22 20:58
  • 3. 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

    Reviewed by gkarag at 2021-07-18 23:39
  • 4. 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!

    Reviewed by hmarr at 2021-03-26 02:00
  • 5. 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
    Reviewed by garyemerson at 2022-01-17 03:54
  • 6. 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 |

    Reviewed by angristan at 2021-08-08 20:26
  • 7. 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

    Reviewed by garyemerson at 2021-11-16 04:52
  • 8. 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

    Reviewed by Spazzy757 at 2021-04-21 11:02
  • 9. 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
    Reviewed by jlledo at 2021-03-24 23:15
  • 10. 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.

    Reviewed by hmarr at 2021-03-22 21:48
  • 11. 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.

    Reviewed by hmarr at 2021-03-21 15:50
πŸš€ It Makes easy to track your task πŸ”₯ Beautiful & Animated UIπŸ‘¨πŸ»β€πŸ’» . Contributions are always welcome πŸ€—
πŸš€  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

Apr 25, 2022
Swiftui-animation-observer - Track SwiftUI animation progress and completion via callbacks
Swiftui-animation-observer - Track SwiftUI animation progress and completion via callbacks

SwiftUI Animation Observer Track SwiftUI animation progress and completion via c

Jun 13, 2022
πŸš€ It Makes easy to track your task πŸ”₯ Beautiful & Animated UIπŸ‘¨πŸ»β€πŸ’» . Contributions are always welcome πŸ€—
πŸš€  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

Apr 25, 2022
A simple animated progress bar in Swift
A simple animated progress bar in Swift

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

May 16, 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

Apr 1, 2021
Fully customizable circular progress bar written in Swift.
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

May 27, 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

Jun 21, 2022
Genie - A Playground to recreate the macOS Genie Effect.
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

Jun 3, 2022
A port of SwiftUILab's Advanced Animations that also supports macOS
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

Apr 27, 2022
Swift animation library for iOS, tvOS and macOS.
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

May 24, 2022
May 15, 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

Jun 15, 2022
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

Jun 13, 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

Jan 4, 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

Nov 30, 2021
Monitor for displaying process traffic on Mac Status bar
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

Jun 21, 2022
iOS app for keeping track of tasks using to-do lists
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

Apr 23, 2022
A Meetings app where the user is presented with the number of meetings created , join any them , edit the varied details also keeping the track of the history of the meetings.
A Meetings app where the user is presented with the number of meetings created , join any them , edit the varied details also keeping the track of the history of the meetings.

Meetings A Meetings app where the user is presented with the number of meetings created , join any them , edit the varied details also keeping the tra

Oct 18, 2021
a simple macOS menu bar application that shows you the lyrics of current playing spotify track.

lyricsify a simple macOS menu bar application that shows you the lyrics of current playing spotify track.

Sep 16, 2021
A tiny menu bar app detecting the chords of the songs you are listening on iTunes or Spotify.
A tiny menu bar app detecting the chords of the songs you are listening on iTunes or Spotify.

ChordDetector A tiny menu bar app that listens iTunes and Spotify to detect chords of songs! Demo Features iTunes and Spotify support. Saves up to 20

Jun 22, 2022