Show HN: Pbar.io – Distributed progress bars that work in terminals and browsers (pbar.io)

25 points by clav88 ↗ HN
I built pbar.io because I was tired of SSH'ing into servers to check if my data processing scripts were still running, or worse, having them finish/crash without knowing.

It's a simple REST API that lets you create and update progress bars from anywhere. The same progress bar can be viewed as terminal output (with ANSI colors), in a browser, or consumed as JSON.

I'm actually tracking this HN discussion with pbar. The progress bar increases with each comment - watch it live as we discuss!

Web: https://pbar.io/Y8yg3BG Terminal: curl https://pbar.io/api/bars/Y8yg3BG

More features that emerged from my own use cases: - Hierarchical progress bars (parent bars auto-aggregate children) - Python package (pip install pbar-io) that wraps tqdm - just swap the import - QR codes to monitor progress on your phone while away from desk - No auth required for quick prototypes

Curious what use cases you might have for this!

10 comments

[ 3.8 ms ] story [ 31.1 ms ] thread
I got "Error Progress bar not found" visiting your https://pbar.io/Y8yg3BG link. However, there are no comments yet, so that might explain it. So this is a service you provide.

I must admit that idea behind this project is nice, but I'm not going to get dependent on someone else's infrastructure (and I think I'm not the only one thinking that way), can I host it myself or is the source not available? I don't see any links to sources or github, so decided to just ask here (and to also make the 1st comment here to see if your link would work now).

What does the backend architecture look like? Heavily distributed, or everything in-memory on a single address space server? How do you handle users writing tight loops which fetch the endpoint in rapid fire?
A hierarchical progress bar service is a cool idea in principle, for some tasks state is worth decoupling from process memory. I do note that the homepage example changes colour without real hierarchy shown though! Something worth noting, is that the hierarchy of an important task of some kind might not be known at the start. It's interesting to consider how to have a great developer UX for managing this. I'd probably want MCP support (or a boring OpenAPI). If someone can show in a few lines how a developer can have a messy process get meaningful hierarchy and progress added to it and it's child nodes, without being overly rigid or SaaS externality concerns, that would be really cool, it could perhaps help give feedback on some very intractable problems. People often don't realise that showing useful progress can easily be a really hard distributed systems problem that a lot of real life systems are bottlenecked by. It's interesting that LLMs might actually be able to help ask questions about progress to help better represent what progress should be shown as, asking about subproblems, helping guide the state with structured decision making etc.
This is an incredibly ingenious feature. I'm speechless. It's one of those "I should have come up with it!" things.

Although the practical use case is unclear.

This could really help in some corporate network scenarios, where batch jobs run behind a proxy. That usually rules out pull based monitoring while this seems easy to setup
I agree, many of the monitoring tools are much more powerful than this, but also a lot harder to set up. The goal was to build something with as little friction as possible that you can set up in under a minute, which makes it viable for any one-off script you might be running.
Really clever, nice work. Love the minimal but polished approach you’ve taken
Very fun, and immediately useful. Also something I haven't seen before? So, kudos on an an ingenious choice of projects.

That being said, I almost immediately ran into 429: Too Many Requests.

Like, yeah, I started making a ton of `{increment: 1}` requests that are getting dropped. What's the bottleneck? Simultaneous DB writes?

Edit: I do want to reiterate that I think this is a great concept, especially in a "Shift Left" era in which agentic tools are exposing non-technical roles to the domain of workflow automation and async job queue management.

Thanks very much! There is some rate limiting being applied so that costs don’t explode. If people are willing to pay for it, the rate limiting can of course be reduced a lot.

I was thinking that sharing and monitoring progress is more useful for longer processes where an update every 10 or 30 seconds could be enough in most cases. What’s your use case?

Alternatively, I’ll clean up and open source the code soon. Then you can run the service yourself without rate limiting if you like.