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.
Python progress monitoring
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.
Simulated preview, runs entirely in your browser
How it works
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.
import runpeek
runpeek.patch()
from tqdm import tqdm
for batch in tqdm(dataloader):
train(batch)Setup
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.
pip install runpeek-sdkimport runpeek
runpeek.patch()
from tqdm import tqdm
for batch in tqdm(dataloader):
train(batch)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.
Live today. More progress libraries are on the horizon.
Pick up where your terminal left off.
Use cases
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.
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.
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.
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.
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
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.
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.
import runpeek
runpeek.start_run("training")
runpeek.patch()Pricing
Live links never need an account. Sign up to save runs to your dashboard, or go Pro for a full year of history.
Live links, nothing to sign up for
$0forever
Save runs to your dashboard
$0forever
A full year of history
$9per month
or $90/year, 2 months free
Yes. Patch your existing Python tqdm bars, or use the drop-in runpeek import. Other progress libraries are not supported yet.
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.
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.
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.