Skip to content

opensourcectl/prometheus

Repository files navigation

Prometheus

Prometheus is a simple desktop app that turns fiddly computer jobs into clear screens and buttons—so you do not have to hunt down commands on the web or remember how to use a terminal.

Whether you want to tidy up disk space, work with PDFs, or handle images and media, the idea is the same: open Prometheus, pick what you need, and follow the steps on screen.

What you can do today

On Mac, Windows, and Linux, you can use tools such as:

  • Clean up space — find and remove junk files, and clean out old installer packages you no longer need.
  • Documents — shrink PDF file size, and merge, split, or rotate PDFs from one place.
  • Images — convert between common formats and make basic edits without juggling separate apps.
  • Video — download or convert media in supported workflows (where the tool is available on your system).
  • Settings — adjust app preferences and keep the app up to date from the interface.

Some menu items are placeholders for features we are still building. They show where we are headed; we list more of that below.

Screenshots

TBA

Bundled command-line tools

PDF, image, and media workflows use third-party CLIs shipped inside the application (for example ffmpeg, yt-dlp, qpdf, Ghostscript, and ImageMagick). Builds run scripts/stage-bundled-bins.ts before packaging: it fills resources/bin/ from resources/bundled-cli/manifest.json (assets URLs), an optional local resources/bundled-cli/<platform>/ tree, or legacy upstream downloads when enabled. You do not need Homebrew, Chocolatey, or apt packages for those tools to use Prometheus.

Local development: run bun run build:dev (or bun run stage-bins) so resources/bin/ is populated. Without manifest URLs or a local pack, a non-CI build can fall back to slow legacy downloads; maintainers use PROMETHEUS_LEGACY_STAGING=1 to refresh packs (see CONTRIBUTING.md). Set PROMETHEUS_SKIP_STAGE_BINS=1 only if you intentionally skip staging.

Some sites may still need optional runtimes on PATH (for example Node/Deno for certain yt-dlp extractors); that is outside the bundled set.

Command-line execution (experimental)

Prometheus now includes an experimental CLI entrypoint for running selected tool actions with JSON payloads.

  • Run commands:
    • bun run cli run --action convert_video_run --payload '{\"input_paths\":[\"/path/in.mp4\"],\"source_root\":null,\"preserve_structure\":false,\"preset\":\"sharing\",\"resolution\":\"1080\",\"speed_quality\":\"balanced\",\"keep_audio\":true,\"burn_subtitles\":false,\"rotate\":\"none\",\"output_directory\":\"/path/out\",\"filename_rule\":\"suffix_converted\"}' --watch --output json
    • bun run cli run --action yt_dlp_analyze --payload '{\"url\":\"https://example.com/video\"}'
  • Cancel active runs:
    • bun run cli cancel --action convert_video_cancel
    • bun run cli cancel --action yt_dlp_stop
  • Schedule groundwork commands (daemon-ready persistence, no background scheduler yet):
    • bun run cli schedule add --action yt_dlp_run --payload '{\"media_inputs\":[\"https://example.com/video\"],\"include_playlist\":false,\"output_directory\":\"/tmp\"}' --frequency daily --run-at 2026-04-01T10:00:00.000Z
    • bun run cli schedule list
    • bun run cli schedule remove --id <schedule-id>

Notes:

  • The CLI currently exposes a limited allowlist of actions while coverage expands incrementally.
  • Payloads are validated by shared CLI schemas and tool-level runtime validators.
  • Schedule records are stored in the local Prometheus database for future scheduler/daemon integration.

Native installers (GitHub Releases)

Each tagged release publishes:

  • Prometheus-macos.pkg — Apple Silicon (arm64) installer built on macos-latest. It installs Prometheus.app under /Applications. The .pkg postinstall is a no-op beyond standard payload placement (no Homebrew or system CLI bootstrap). Intel Macs: use the release zip of the build/ tree for now, or build from source.
  • Prometheus-windows.exeInno Setup installer. Run elevated; the bundled app lives under Program Files\Prometheus with bin\launcher.exe. No post-install Chocolatey step.
  • Prometheus-linux.deb — Debian package (prometheus-opensourcectl) installing the app under /opt/prometheus, a /usr/bin/prometheus-opensourcectl symlink to the launcher, and a system launcher entry at /usr/share/applications/prometheus.desktop (with icon at /usr/share/pixmaps/prometheus.png). Package Depends is minimal (libc6); postinst handles launcher/desktop integration only. The post-install step also attempts to place Prometheus.desktop on existing user Desktop folders.

Native installers package the extracted full app payload from Electrobun stable artifacts (not the self-extracting wrapper), so launcher runs directly after install.

App-only uninstall scripts (keep dependencies/tooling)

Each platform ships an app-only uninstall path that removes Prometheus files/shortcuts only:

  • Windows:
    • powershell -ExecutionPolicy Bypass -File "C:\Program Files\Prometheus\uninstall-prometheus-app-only.ps1" (run as Administrator)
  • macOS:
    • sudo /Applications/Prometheus.app/Contents/Resources/uninstall-prometheus-app-only.sh
  • Ubuntu:
    • bash /opt/prometheus/scripts/uninstall-prometheus-app-only.sh

These do not remove optional system package managers or unrelated software.

Reset test environment (destructive)

Use these scripts when you want to wipe Prometheus install state and quickly retest installers.

  • Windows (run as Administrator):
    • powershell -ExecutionPolicy Bypass -File .\scripts\windows\uninstall-prometheus-and-deps.ps1
  • macOS:
    • sudo bash ./scripts/macos/uninstall-prometheus-and-deps.sh
  • Ubuntu:
    • bash ./scripts/linux/uninstall-prometheus-and-deps.sh

These reset scripts remove Prometheus app installs and also try to clean known Electrobun app-data/cache/log locations for Prometheus (com.sourcectl.prometheus) across common channel folders (stable, canary, beta, alpha). On Ubuntu, the reset script also removes prometheus.desktop from system launcher paths and user Desktop shortcuts when found.

Verify Sigstore signatures (keyless)

Each native installer published in a GitHub Release is accompanied by a Sigstore (cosign) signature and certificate:

  • Prometheus-macos.pkg.sig + Prometheus-macos.pkg.pem
  • Prometheus-windows.exe.sig + Prometheus-windows.exe.pem
  • Prometheus-linux.deb.sig + Prometheus-linux.deb.pem

To verify after downloading:

brew install cosign

for f in Prometheus-macos.pkg Prometheus-windows.exe Prometheus-linux.deb; do
  cosign verify-blob \
    --certificate "${f}.pem" \
    --signature "${f}.sig" \
    "$f"
done

This cryptographic verification is separate from macOS notarization/code signing (Gatekeeper behavior can still require additional trust steps).

Releases still attach zipped build/ outputs and Electrobun updater artifacts/ files for auto-update; see CONTRIBUTING.md.

If Gatekeeper blocks an unsigned download, use System Settings → Privacy & Security or, after you trust the file: xattr -dr com.apple.quarantine /Applications/Prometheus.app.

On Mac: “App can’t be opened” or “developer cannot be verified” or "App is damaged"

We are not yet enrolled in the Apple Developer Program, so downloads you get from GitHub are not signed and notarized the way App Store apps are. macOS may block the app the first time or warn you—that is normal for many independent apps.

Try running: xattr -cr /Applications/Prometheus.app in your terminal.

We are working toward Apple’s notarized distribution so this step will not be needed forever. Until then, only download Prometheus from our official releases so you know what you are running.

Coming next

We are gradually filling in the app. On the roadmap (not all of this is available yet):

  • Broader cleanup and speed helpers.
  • Security and privacy-oriented scans and controls where we can do them safely and clearly.
  • Network-related utilities presented in plain language.
  • More utilities driven by what people actually ask for.

If something on the menu is not active yet, it usually means we have reserved the spot for a future release.

Ideas? Tell us what you want in the toolbox

We want Prometheus to grow based on real tasks you wish were easier. If you have a tool idea—something you would use if it were one click away—please open an issue and describe the job in everyday words. Feature requests and feedback help us prioritize what to build next.

For developers and contributors

If you want to build from source, run tests, or submit changes, everything lives in CONTRIBUTING.md (setup, checks, and pull request expectations). The short version: install Bun, clone the repo, then follow that file.

License

Prometheus is licensed under GNU GPLv3. See LICENSE.

About

The all-in-one toolbox for your desktop

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors