Wow such top. So stats. More better than regular top.

Related tags

Command Line vtop
Overview

vtop

Greenkeeper badge Build Status

A graphical activity monitor for the command line.

How to install

If you haven't already got Node.js, then go get it.

npm install -g vtop

If you're on macOS, or get an error about file permissions, you may need to do sudo npm install -g vtop. Don't do this if you're using nvm.

Running

This is pretty simple too.

vtop

If you really like vtop, but your finger muscle memory means you keep typing 'top' then why not add an alias to ~/.bashrc.

alias top="vtop"
alias oldtop="/usr/bin/top"

Keyboard shortcuts

  • Press 'u' to update to the latest version of vtop.
  • Arrow up or k to move up the process list.
  • Arrow down or j to move down.
  • Arrow left or h to zoom the graphs in.
  • Arrow right or l to zoom the graphs out.
  • g to go to the top of the process list.
  • G to move to the end of the list.
  • dd to kill all the processes in that group

Mouse control

If your terminal supports mouse events (like iTerm) then you can click on the items in the process list. As well as use the scroll wheel. You can disable mouse control with the vtop --no-mouse option.

FAQs

How does it work?

It uses drawille to draw CPU and Memory charts with Unicode braille characters, helping you visualize spikes. We also group processes with the same name together.

I think the CPU % is coming out wrong.

We calculate the CPU percentage as a total of your overall system power. 100% is all cores and HyperThreads maxed out. This is different to how Apple Activity monitor works.

Can I change the color scheme?

Sure, just do:

vtop --theme wizard

This loads the theme file in themes/ with the same name. Make your own and send me a Pull Request :)

You could add this to your aliases if you'd like to use it always.

alias vtop="vtop --theme brew"

What about measuring server req/s, log entries, etc etc?

Yeah that's on the list :) Feel free to send a pull request though. Check out the sensors/ folder.

What license is this under?

MIT – do what you like with it :)

Contributing

Get stuck in – click the fork button, then clone to your local machine. Use the GitHub Desktop client if you don't know Git. Tinker with the code then run this from the command line:

./bin/vtop.js

When you push it'll run the Standard JS checker http://standardjs.com/. If you run 'npm test' in your own terminal too, this runs in Travis, your PR will fail the test if this command fails.

Standard - JavaScript Style Guide

Comments
  • SyntaxError crash

    SyntaxError crash

    Hi, I'm getting a SyntaxError crash when running vtop, the error message is as follows:

    evalmachine.<anonymous>:2
    [email protected] | MIT | deps: 10 | versions: 47
    ^
    
    SyntaxError: Invalid or unexpected token
        at new Script (vm.js:74:7)
        at createScript (vm.js:246:10)
        at Object.runInNewContext (vm.js:291:10)
        at safeEval (/usr/lib/node_modules/vtop/node_modules/safe-eval/index.js:13:6)
        at /usr/lib/node_modules/vtop/upgrade.js:25:24
        at ChildProcess.exithandler (child_process.js:273:7)
        at ChildProcess.emit (events.js:182:13)
        at maybeClose (internal/child_process.js:947:16)
        at Process.ChildProcess._handle.onexit (internal/child_process.js:236:5)
    
    opened by brookerose1312 15
  • Don't use `sudo`

    Don't use `sudo`

    Instead of telling people to use sudo under "How to install", we should rather tell them to fix their npm permissions instead.

    Globally installing npm packages using sudo is not considered a good practise. 😊

    opened by leo 8
  • Vtop gets crazy as soon as I move the mouse

    Vtop gets crazy as soon as I move the mouse

    As soon as I start moving my mouse, vtop quits (probably crashes) and I start to see what looks like the mouse coordinates in ASCII in the terminal input. It sometimes comes back to normal after a few moments, others I have to run reset. This happens on both terminator and xfce4-terminal. I haven't tried anything else.

    opened by Darkhogg 6
  • Memory percentage reported as NaN

    Memory percentage reported as NaN

    One of my programs consumes a massive amount of memory. For some reason, this gets reported as "NaN". Furthermore, the leading process character get chopped off of the process name.

    screen shot 2014-06-09 at 12 15 56 pm

    opened by danthegoodman 5
  • Detect

    Detect "real" memory usage on mac

    Detect "Real" memory usage on a mac, acts more like activity monitor.

    Honestly the code needs cleaning but I have not seen anyone else attempt this, This is what I have been using for a bit.

    opened by pfych 4
  • Fix reported memory usage on Linux

    Fix reported memory usage on Linux

    The os-utils module reports erroneous used memory percentage, in particular, it considers memory used by the kernel's disk caching subsystem as used memory, when it should in reality be considered free as it is transparently let go when memory is low. See http://linuxatemyram.com.

    This changeset fixes this by detecting if we're on Linux, and if so, runs free -m in a child process and screenscrapes its output. os-utils does provide a .freeCommand() function which is supposed to be doing this, but it also returns erroneous numbers.

    Before: screenshot from 2015-01-15 09 29 43 After: screenshot from 2015-01-15 09 30 18

    (shown with gnome-system-monitor on the side for comparison)

    opened by geomaster 4
  • vtop dies a silent death

    vtop dies a silent death

    This pertains to vtop not launching and instead returning to shell without a peep.

    Thank you very much for helping out. I'm more a n00b than I would like to be so I appreciate the patience.

    $nodejs -v
    v0.10.25
    
    $lsb_release -a
    No LSB modules are available.
    Distributer ID: Ubuntu
    Description: Ubuntu 14.04 LTS
    Release: 14.04
    Codename: trusty
    

    Per your request, 'export' output below:

    ptdecker@ptdecker-Satellite-L55-A:~$ export declare -x CLUTTER_IM_MODULE="xim" declare -x COLORTERM="gnome-terminal" declare -x COMPIZ_BIN_PATH="/usr/bin/" declare -x COMPIZ_CONFIG_PROFILE="ubuntu" declare -x COMP_WORDBREAKS="
    "'><;|&(:" declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-JexEHW5ZRs" declare -x DEFAULTS_PATH="/usr/share/gconf/ubuntu.default.path" declare -x DESKTOP_SESSION="ubuntu" declare -x DISPLAY=":0" declare -x GDMSESSION="ubuntu" declare -x GDM_LANG="en_US" declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated" declare -x GNOME_KEYRING_CONTROL="/run/user/1000/keyring-Y34XBy" declare -x GNOME_KEYRING_PID="1779" declare -x GPG_AGENT_INFO="/run/user/1000/keyring-Y34XBy/gpg:0:1" declare -x GTK_IM_MODULE="ibus" declare -x GTK_MODULES="overlay-scrollbar:unity-gtk-module" declare -x HOME="/home/ptdecker" declare -x IM_CONFIG_PHASE="1" declare -x INSTANCE="" declare -x JOB="dbus" declare -x LANG="en_US.UTF-8" declare -x LANGUAGE="en_US" declare -x LESSCLOSE="/usr/bin/lesspipe %s %s" declare -x LESSOPEN="| /usr/bin/lesspipe %s" declare -x LOGNAME="ptdecker" declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.arj=01;31:.taz=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.zip=01;31:.z=01;31:.Z=01;31:.dz=01;31:.gz=01;31:.lz=01;31:.xz=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.jpg=01;35:.jpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.axv=01;35:.anx=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.axa=00;36:.oga=00;36:.spx=00;36:.xspf=00;36:" declare -x MANDATORY_PATH="/usr/share/gconf/ubuntu.mandatory.path" declare -x OLDPWD declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" declare -x PWD="/home/ptdecker" declare -x QT4_IM_MODULE="xim" declare -x QT_IM_MODULE="ibus" declare -x QT_QPA_PLATFORMTHEME="appmenu-qt5" declare -x SELINUX_INIT="YES" declare -x SESSION="ubuntu" declare -x SESSIONTYPE="gnome-session" declare -x SESSION_MANAGER="local/ptdecker-Satellite-L55-A:@/tmp/.ICE-unix/1925,unix/ptdecker-Satellite-L55-A:/tmp/.ICE-unix/1925" declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_AGENT_LAUNCHER="upstart" declare -x SSH_AGENT_PID="1860" declare -x SSH_AUTH_SOCK="/run/user/1000/keyring-Y34XBy/ssh" declare -x TERM="xterm" declare -x TEXTDOMAIN="im-config" declare -x TEXTDOMAINDIR="/usr/share/locale/" declare -x UBUNTU_MENUPROXY="1" declare -x UPSTART_SESSION="unix:abstract=/com/ubuntu/upstart-session/1000/1781" declare -x USER="ptdecker" declare -x VTE_VERSION="3409" declare -x WINDOWID="27262987" declare -x XAUTHORITY="/home/ptdecker/.Xauthority" declare -x XDG_CONFIG_DIRS="/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg" declare -x XDG_CURRENT_DESKTOP="Unity" declare -x XDG_DATA_DIRS="/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/" declare -x XDG_GREETER_DATA_DIR="/var/lib/lightdm-data/ptdecker" declare -x XDG_MENU_PREFIX="gnome-" declare -x XDG_RUNTIME_DIR="/run/user/1000" declare -x XDG_SEAT="seat0" declare -x XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0" declare -x XDG_SESSION_ID="c2" declare -x XDG_SESSION_PATH="/org/freedesktop/DisplayManager/Session0" declare -x XDG_VTNR="7" declare -x XMODIFIERS="@im=ibus"

    opened by ptdecker 4
  • Error in vtop

    Error in vtop

    I've recently found about vtop, and from what I've seen it looked really cool. But after like 1 second of launching, the following error occured:

    SyntaxError: Unexpected token ILLEGAL
        at Object.exports.runInNewContext (vm.js:48:16)
        at safeEval (/usr/local/lib/node_modules/vtop/node_modules/safe-eval/index.js:13:6)
        at /usr/local/lib/node_modules/vtop/upgrade.js:25:24
        at ChildProcess.exithandler (child_process.js:191:7)
        at emitTwo (events.js:87:13)
        at ChildProcess.emit (events.js:172:7)
        at maybeClose (internal/child_process.js:862:16)
        at Process.ChildProcess._handle.onexit (internal/child_process.js:222:5)```
    
    opened by Sleedyak 3
  • vtop consumes processor's time

    vtop consumes processor's time

    hi first, I want to think you for the project, I find it cool :) But I have a little problem, I don't if you too have the same problem, vtop uses processor more than htop, as you can see on the picture, 51% vs 3% screenshot vtop vs htop

    opened by ghost 3
  • Fixes bg/fg colors on table

    Fixes bg/fg colors on table

    I didn't realize that this commit sort of broke the colors on the table. When I booted it into the dark theme, it looked hideous. Now they look nice and beautiful again.

    Note: I'm aware that the commit added necessary fields, but it didn't honestly look like the color scheme was chosen well. No offense intended towards James.

    Thanks :)

    opened by brendanashworth 3
  • error on newly installed version of vtop

    error on newly installed version of vtop

    evalmachine.<anonymous>:2
    [email protected] | MIT | deps: 10 | versions: 47
    ^
    
    SyntaxError: Invalid or unexpected token
        at new Script (vm.js:74:7)
        at createScript (vm.js:246:10)
        at Object.runInNewContext (vm.js:291:10)
        at safeEval (/usr/local/lib/node_modules/vtop/node_modules/safe-eval/index.js:13:6)
        at /usr/local/lib/node_modules/vtop/upgrade.js:25:24
        at ChildProcess.exithandler (child_process.js:273:7)
        at ChildProcess.emit (events.js:182:13)
        at maybeClose (internal/child_process.js:957:16)
        at Socket.stream.socket.on (internal/child_process.js:378:11)
        at Socket.emit (events.js:182:13)
    
    opened by ishanSrt 2
  • command not found (using shell)

    command not found (using shell)

    I've successfully installed node-0.10.48 and vtop-0.5.7 on a legacy armv7 Linux device. However, when attempting to exec the vtop command I receive a command not found error. After reviewing the vtop wrapper, I'm beginning to believe it's an incompatibility issue with shell (sh). Shell contains the builtin exec command (# type exec), but it doesn't have the builtin command command (# type command). Is this a known compatibility issue? Thank you for your assistance.

    opened by garycnew 1
  • interpreting the cpu data from the process plugin

    interpreting the cpu data from the process plugin

    @MrRio was hoping you could advise me on using this package as a lib rather than a gui. I wan't to periodically log some CPU stats, which is fairly easy to do (thanks!). I'm just trying to understand the output a little. Here's an example of some:

    {
      Command: 'Google Chrome Helper (Renderer)',
      Count: 18,
      'CPU %': '0.8',
      'Memory %': '7.3',
      cpu: 4.5,
      mem: 7.3
    }
    {
      Command: 'com.apple.WebKit.WebContent',
      Count: 41,
      'CPU %': '3.7',
      'Memory %': '26.9',
      cpu: 22.100000000000005,
      mem: 26.900000000000002
    }
    {
      Command: 'node',
      Count: 6,
      'CPU %': '1.2',
      'Memory %': '1.6',
      cpu: 7,
      mem: 1.6
    }
    {
      Command: 'webstorm',
      Count: 1,
      'CPU %': '0.9',
      'Memory %': '8.5',
      cpu: '5.6',
      mem: '8.5'
    }
    

    My question is, what's the difference between CPU % and cpu?

    opened by npomfret 0
  • Is it possible to configure the key bindings?

    Is it possible to configure the key bindings?

    From what I searched the answer is no.

    But I still need it, I use a custom keyboard and needs to remap hjkl to the correct keys. Is it possible to edit the code maybe and change the keys to the correct ones? It shouldn't be a great change. Searching the code I found where the display text is defined but not where the action is mapped. Help?

    opened by Figuera 1
  • VTOP in Docker Container

    VTOP in Docker Container

    I created a Dockerfile which creates an image for vtop and can be accessed at snpranav/vtop. The reason behind doing this was to make vtop more cross-platform. This also lets people use vtop without having to install Node.js on their host machine (All you need is docker).

    I have also updated the README with instructions on how to run vtop as a docker container.

    opened by snpranav 0
Releases(0.1.8)
  • 0.1.8(Jun 10, 2014)

    This version fixes:

    • Truncation of process name and 'NaN' showing for some users - #7 #6 #5
    • Fix for systems that return commas instead of dots
    Source code(tar.gz)
    Source code(zip)
A better `npm publish`

np A better npm publish Why Interactive UI Ensures you are publishing from your release branch (main and master by default) Ensures the working direct

Sindre Sorhus 6.9k Jan 2, 2023
We need a better Markdown previewer.

We need a better Markdown previewer. pen is a Markdown previewer written in JavaScript, aiming to just work. There are literally tons of Markdown prev

null 327 Dec 30, 2022
Generate a daily digest of top posts from Product Hunt 💡

Product Hunt Digest This open-source project generates a daily digest of top performing products on Product Hunt directly to your Slack. Setup is very

Ran Ribenzaft 16 Nov 16, 2021
Infinite Red's cutting edge React Native project boilerplate, along with a CLI, component/model generators, and more!

Ignite - the hottest React Native boilerplate Battle-tested React Native boilerplate The culmination of five years of constant React Native developmen

Infinite Red, Inc. 14.7k Dec 29, 2022
A terminal for a more modern age

Downloads: Latest release Repositories: Debian/Ubuntu-based, RPM-based Latest nightly build This README is also available in: Korean 简体中文 Tabby (forme

null 41.8k Dec 30, 2022
Data-tip.css - Wow, such tooltip, with pure css!

Notice: hint.css has been much better since I complained about it months ago, so try out its new features instead of this one! data-tip.css Wow, such

EGOIST 117 May 26, 2021
✨ View all of your GitHub stats and compare your stats with friends, made using nextjs and tailwind.

Octotastic All of your GitHub Stats in one place. Features: View your own stats or any other user's stats. View advanced stats using graphs and charts

ashish 10 Sep 6, 2022
Better than twitter....I guess....

Twister Description Welsome to Twister! It is a social networking site with a very original name. You can broadcast your thoughts through a small post

Ostap Trush 5 Nov 8, 2022
An extension for rating the web and making your browsing experience better than ever.

Hookmark An extension for rating the web and making your browsing experience better than ever. Read more about it here Update Firefox extension was un

Haridarshan Choudhary 9 Sep 17, 2022
NodeJS PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more.

Node Postgres Extras NodeJS port of Heroku PG Extras with several additions and improvements. The goal of this project is to provide powerful insights

Paweł Urbanek 68 Nov 14, 2022
Explore units, stats and more

AoE 4 Explorer An useful visualization and UI to explore units, their stats and abilities and all possible upgrades and technologies for Age Of Empire

AoE4 World 20 Dec 8, 2022
A fun and functional way to write regular expressions (RegExp)

funexp A fun and functional way to write regular expressions (RegExp). FunExp is a useful tool for larger projects that depends on RegExp to do heavy

Matheus Giovani 2 Feb 7, 2022
A library for validate a string using regular expressions.

Fogex Form Regex Quickly and easily check if the content is valid. Installation npm install fogex or yarn add fogex Usage import fogex from 'fogex';

null 5 May 5, 2022
A JavaScript / WebAssembly library for generating regular expressions from user-provided test cases

1. What does this library do? grex is a library that is meant to simplify the often complicated and tedious task of creating regular expressions. It d

Peter M. Stahl 164 Dec 30, 2022
A regular table library, for async and virtual data models.

A Javascript library for the browser, regular-table exports a custom element named <regular-table>, which renders a regular HTML <table> to a sticky p

J.P. Morgan Chase & Co. 285 Dec 16, 2022
Regular expression for Character classes

Regular expression for Character classes

言葉 7 Aug 21, 2022
This package is for developers to be able to easily integrate bad word checking into their projects.\r This package can return bad words in array or regular expression (regex) form.

Vietnamese Bad Words This package is for developers to be able to easily integrate bad word checking into their projects. This package can return bad

Nguyễn Quang Sáng 8 Nov 3, 2022
microregex is an open source and highly curated catalog of regular expression patterns. It offers programmers RegEx snippets that can be quickly exported into a variety of programming languages and distributed around teams.

microregex - A catalog of RegEx patterns View Demo · Report Bug · Request Feature Loved the tool? Please consider contributing ✍️ to help it improve!

Sunit Shirke 4 Oct 25, 2022
Plain functions for a more functional Deku approach to creating stateless React components, with functional goodies such as compose, memoize, etc... for free.

"Keo" is the Vietnamese translation for glue. Plain functions for a more functional Deku approach to creating stateless React components, with functio

Adam Timberlake 225 Sep 24, 2022
Tritan is a Discord.js bot that has many general-purpose features such as logging, moderation, image manipulation, music, and much more!

Tritan Bot Tritan Bot is a Discord Verified general purpose bot built with discord.js and express (yes, it has a dashboard included). Please read thro

Dylan J. 0 Jul 3, 2022