Skip to content

Python progress monitoring

Watch long runs live
in a browser dashboard

For anyone whose Python jobs run for hours.
Every progress bar gets a page in the browser.
Check a training run from your phone or laptop.
Run alerts go to Discord or Slack.

  • Live progress
  • Elapsed time
  • Output
  • Optional notifications
Get started
train.pySimulated
resnet-finetunePreparing
  1. 1Prepare
  2. 2Train
  3. 3Validate
  4. 4Save
Run progress0%
Loading dataset24,000 images
Training loss
-
Elapsed
0:00
ETA
4:16
CONSOLE OUTPUTstdout
  1. 0:00Preparing image dataset...

Simulated preview, runs entirely in your browser

How it works

A patch wraps the progress bar

Runpeek hooks into tqdm's progress reporting at runtime. Its updates feed the browser view as the loop advances.

You can check the run from a phone or laptop while the Python process continues on the machine doing the work.

train.pyPython
import runpeek
runpeek.patch()
from tqdm import tqdm

for batch in tqdm(dataloader):
    train(batch)

Setup

From patched code to live progress

Call the patch before creating the tqdm progress bar, then start your script as usual. Open the link printed in your console to follow it in the browser.

Install from PyPIPython 3.8 or newer
TerminalShell
pip install runpeek-sdk

Add the patch

train.pyPython
import runpeek
runpeek.patch()
from tqdm import tqdm

for batch in tqdm(dataloader):
    train(batch)
That's it. Your progress is now visible in Runpeek.

The live view

train.pySimulated snapshot
resnet-finetuneTraining
Run progress43%
Epoch 2 / 3Batch 60 / 120
Training loss
0.504
Elapsed
1:52
ETA
2:24
CONSOLE OUTPUTstdout
  1. 1:20Epoch 2/3 started
  2. 1:36Batch 30/120, loss 0.592
  3. 1:52Batch 60/120, loss 0.504

Simulated preview

For live output too, run your script with runpeek run -- python train.py. The wrapper streams stdout and stderr; use --no-logs to leave them out.

Start with tqdm

Live today. More progress libraries are on the horizon.

Use cases

Built for jobs
that run for hours

A useful progress bar counts completed work: batches written, files processed, or training steps finished. Choose the unit that lets you judge how much of the job remains.

ML training and fine-tuning

Steps give you a closer view within an epoch; epochs give you a broader view of training. With CLI log streaming, you can read printed loss or validation scores alongside progress.

Data pipelines

For a pipeline that writes output in chunks, count each chunk after the write completes. Reporting the current stage in your program's output gives you context when progress slows.

Backend and batch jobs

For a long import or a scheduled cleanup, check how far the current invocation has got. Include item names in your program's output to give yourself something to investigate if it stops.

Research and experimentation

Share a running experiment with a collaborator while you check whether the setup behaves as expected. They can help interpret unexpected output before you commit more time to the trial.

Notifications

Get told when a run
finishes or fails

Send overnight updates to Discord, or use Slack when other people are waiting on the result. You can leave notifications off for runs you're already following live.

  • Discord
  • Slack
  • Webhooks
Connect notifications

Start a named run before your loop, then add a Discord, Slack, or HTTPS webhook in its browser viewer. Optional stall alerts are available there too.

notify.pyPython
import runpeek
runpeek.start_run("training")
runpeek.patch()
Open your run link

Pricing

Free to watch.
$9 a month to keep.

Live links never need an account. Sign up to save runs to your dashboard, or go Pro for a full year of history.

No account

Live links, nothing to sign up for

$0forever

  • A live share link for every run
  • The last 500 lines of output
  • Expires 30 minutes after the last update

Free account

Save runs to your dashboard

$0forever

  • 7-day run history
  • 1,000 saved runs a month
  • 500 log lines per run
  • 3 alert rules for Discord, Slack and webhooks

Frequently asked questions

Does it work with my existing code?

Yes. Patch your existing Python tqdm bars, or use the drop-in runpeek import. Other progress libraries are not supported yet.

Will it slow things down?

Updates are throttled and sent in a background thread, but monitoring still adds work. Compare a representative run with and without Runpeek. Telemetry failures do not interrupt your loop.

Is it secure?

Anyone with a link can open its run or bar, and links use random, unguessable IDs. Keep sensitive data out of your output. Anonymous runs expire 30 minutes after the last update; saved runs stay in your dashboard for your plan's history.

Can I use it for team projects?

Share a run link so teammates can check progress without asking for another update. Nobody needs an account to watch a live link, and a free account saves your runs to a dashboard.