Skip to content

Roadmap

Guaranate is pre-1.0. This page is the honest boundary between the two: a command listed under “Planned” does not exist in the binary yet, and no guide on this site documents it as if it did. Everything the guides cover is in the latest tagged release.

Sequencing, task IDs, and acceptance criteria live in PLAN.md; product intent lives in GUARANATE.md.

Everything here is in v0.2.0.

Feature Documented in
guaranate <duration> timed session Keeping your Mac awake
guaranate with no duration, until interrupted Indefinite sessions
Native IOPMAssertion — never caffeinate How it works
Assertion modes --display / --system Assertion modes
--reason recorded on the assertion Labelling a session
Live progress frame, with q to quit The live frame
Guaranteed release on expiry, q, SIGINT, SIGTERM Ending a session
Non-TTY-friendly output Scripts, pipes, and CI
guaranate while <cmd> Wrapping a command
guaranate --watch <pid> Watching a process that already runs

Not yet implemented. Listed so you can tell what is coming — and what to not reach for today.

Planned Target What it will do
guaranate until <HH:MM> v0.3 Stay awake until the next occurrence of a clock time.
status / why v0.3 Explain what is keeping the Mac awake, and since when.
--json output contract v0.3 Stable machine-readable output for scripts.
acquire / renew / release v0.4 TTL-based leases for external tools, released automatically if a caller stops renewing.
Disk-idle mode, --clamshell v0.5 Broader assertion coverage and prototype closed-lid support.
Menu-bar companion later Visualize and control sessions from the menu bar.

Guaranate is not aiming to become an Amphetamine-style GUI or a trigger engine. There is no AI-activity detection, no per-tool special-casing, and no cross-platform support planned — and it will never wrap /usr/bin/caffeinate.