npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@dudko.dev/baton-worker

v0.2.2

Published

Baton Worker: scheduled runs, remote execution, git bridge, and web-build proxy.

Downloads

442

Readme

baton-worker

The self-hosted companion service for Baton, the git-native API client. It pulls the same workspace repository the app uses and:

  • runs schedules — cron entries declared in the workspace's schedules.yaml, each in its own timezone, with run history and a failure webhook;
  • runs requests on demand — for requests that must originate from inside a network;
  • bridges git and proxies requests for the web build, which cannot clone a repository or send cross-origin requests from the browser.

The worker is yours: your server, your network, your credentials. There is no Baton cloud.

Run it

Docker is the usual way:

docker run -d --name baton-worker \
  -p 8787:8787 \
  -e BATON_WORKER_TOKEN=<long-random-token> \
  -e BATON_GIT_URL=https://github.com/acme/my-apis.git \
  -e BATON_GIT_TOKEN=<read-only-deploy-token> \
  -e BATON_SECRET_APITOKEN=<value> \
  -e TZ=UTC \
  -v baton-data:/data \
  ghcr.io/dudko-dev/baton-worker:latest

Or straight from npm, on a host with Node.js 24+ and git installed:

BATON_WORKER_TOKEN=<long-random-token> \
BATON_DATA_DIR=./baton-data \
npx -y @dudko.dev/baton-worker

| Env var | Purpose | |---|---| | BATON_WORKER_TOKEN | Bearer token the app must present. Required. | | BATON_GIT_URL | Workspace repository to clone and pull. | | BATON_GIT_TOKEN / BATON_GIT_USERNAME | Credentials for that repository. Passed to git through a credential helper, so they never reach the command line or a log. | | BATON_SECRET_<NAME> | Values for the secret references a request uses. | | BATON_DATA_DIR | Defaults to /data — run history and the workspace checkout. | | BATON_HISTORY_RETENTION_DAYS | Defaults to 90. 0 keeps everything. | | BATON_PORT | Defaults to 8787. |

TLS is the reverse proxy's job; the worker speaks plain HTTP.

Full documentation, including the REST API and the event stream, ships inside the app and lives at https://baton.dudko.dev.

License

Proprietary — see LICENSE.

Free for personal, non-commercial use. Commercial use is free for small entities: your group must have raised less than USD 250,000 in total, be valued at less than USD 250,000, and have annual gross revenue under USD 1,000,000. Above any of the three, commercial use needs a license — write to [email protected].

Redistribution is not permitted. Installing from npm, caching in your own registry proxy, and building your own deployment images are (see Section 4 of the license); republishing, forking, or bundling these packages into something you ship are not.