MCPcopy Index your code
hub / github.com/Xfennec/progress

github.com/Xfennec/progress @v0.17

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.17 ↗ · + Follow
41 symbols 81 edges 6 files 1 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

progress - Coreutils Progress Viewer

What is it

This tool can be described as a tiny, dirty C command that looks for coreutils basic commands (cp, mv, dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays the percentage of copied data. It can also show estimated time and throughput, and provides a "top-like" mode (monitoring).

progress screenshot with cp and mv

(After many requests: the colors in the shell come from powerline-shell. Try it, it's cool.)

progress works on Linux, FreeBSD and macOS.

Formerly known as cv (Coreutils Viewer).

How do you install it

On deb-based systems (Debian, Ubuntu, Mint, etc.) run:

apt install progress

On Arch Linux, run:

pacman -S progress

On Fedora, run:

dnf install progress

On openSUSE, run:

zypper install progress

On macOS, with homebrew, run:

brew install progress

On macOS, with MacPorts, run:

port install progress

How do you build it from source

make && make install

On FreeBSD, substitute make with gmake.

It depends on the library ncurses, you may have to install corresponding packages (maybe something like 'libncurses5-dev', 'libncursesw6' or 'ncurses-devel').

How do you run it

Just launch the binary, progress.

What can I do with it

A few examples. You can:

  • monitor all current and upcoming instances of coreutils commands in a simple window:

    watch progress -q
    
  • see how your download is progressing:

    watch progress -wc firefox
    
  • look at your web server activity:

    progress -c httpd
    
  • launch and monitor any heavy command using $!:

    cp bigfile newfile & progress -mp $!
    

and much more.

How does it work

It simply scans /proc for interesting commands*, and then looks at directories fd and fdinfo to find opened files and seek positions, and reports status for the largest file.

It's very light and compatible with virtually any command.

(*) on macOS, it does the same thing using libproc

Core symbols most depended-on inside this repo

nfprintf
called by 12
progress.c
nperror
called by 9
progress.c
nprintf
called by 7
progress.c
format_size
called by 5
sizes.c
is_ignored_file
called by 4
progress.c
set_hlist_size
called by 2
hlist.c
find_pids_by_binary_name
called by 2
progress.c
get_fdinfo
called by 2
progress.c

Shape

Function 22
Class 19

Languages

C85%
C++15%

Modules by API surface

progress.c30 symbols
progress.h4 symbols
hlist.c4 symbols
hlist.h2 symbols
sizes.c1 symbols

For agents

$ claude mcp add progress \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact