Adoption is low, and the app must not be put at risk fixing that. A measured look at the diff showed the risk was concentrated in exactly two places: the timer's hot path and a new file-writing route. Everything that actually makes automations discoverable — recipes, a panel that explains itself, one-step creation, Test buttons that report — is client-only settings-panel code with zero server churn. This cuts the two pieces that weren't, and simplifies two more that only existed to serve them. Removed entirely: templates. Newest, riskiest, and the least connected to the adoption problem — it helps someone who already uses automations share them, not someone who has never tried the feature. It was also the source of two of the bugs found in review. Removed: the websocket broadcast behind "last fired". reportFired ran inside triggerAutomations, called from onClock every second and from onUpdate. A new protocol message pushed to every connected client, including stage displays, up to once a second per automation, is real new traffic on the busiest code path in the app for a feature still trying to prove it's worth using. The log line stays: it's additive, throttled, nowhere near the hot path once written, and answers the same question — did this run — without a new message. Trimmed: the demo goes from two automations tied together by necessity — a danger-time message and a second automation whose only job was undoing the first on finish — to one, attached by an event-level trigger instead of a global one. Same two discovery wins, an automation visibly fires on Play and per-event triggers are found by opening an event, with no message mutation and nothing to keep in sync. That pairing was also the first thing review found broken. Trimmed: the delete dialog no longer deletes blocking triggers and restores them if the automation still won't delete. That rollback was the other multi-request destructive sequence review found a bug in. It now confirms, names what's blocking, and says to remove global triggers from the Global Triggers list first — a single always-safe request the user already has. What stays: one-step creation (lifecycles picked on the automation form), the recipe library, and the panel legibility work — none of it touches the server or the runtime. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LpbLJVVT26tzWkduck1M9H
Download the latest release
- Download for Windows
- Download for macOS (Apple Silicon)
- Download for macOS (Intel)
- Download AppImage for Linux (Intel / AMD 64-bit)
- Download AppImage for Linux (ARM 64-bit, Raspberry Pi 4+)
- Download AppImage for Linux (ARM 32-bit, older Raspberry Pi)
... or
- Get from Docker hub
- Install from NPM
- Install from Homebrew
Need help?
We do our best to have most topics covered by the documentation. However, if your question is not covered, you are welcome to fill in a bug report in an issue, ask a question in GitHub discussions or hop in the discord server for a chat.
Using Ontime?
Let us know! Ontime improves from the collaboration with its users. We would like to understand how you use Ontime and appreciate your feedback.
Ontime
Ontime is a browser-based application that manages event rundowns, scheduling, and cueing.
With Ontime, you can plan, track your schedule, manage automation and cross-department show information all in one place.
Ontime is made by entertainment and broadcast engineers and used by
- Conference organisers
- Touring shows and receiving venues
- Broadcasters and streamers
- Theatres and opera houses
- Houses of worship
Main features
- Multiplatform: Available as a Cloud service and for Windows, macOS, Linux, or self-hosted via Docker.
- In any device: Ontime is available to any device with a browser, eg: tablets, mobile phones, laptops, signage, media servers...
- Team Collaboration: Dedicated views for directors, operators, backstage, and signage.
- Real-Time Updates: Manage and communicate runtime delays effortlessly.
- Automatable: Ontime can be fully or partially controlled by an operator, or run standalone with the system clock
- Flexible Integrations: Use one of the APIs provided (OSC, HTTP, Websocket) or the available Companion module to integrate into your workflow (vMix, disguise, Qlab, OBS)
... and a lot more ...
For live environments
Ontime is designed for use in live environments.
This guides the application into being flexible and efficiently integrating into different workflows.
For teams
All information added in Ontime is shared with the production team and other software / hardware in your workflow.
Ontime also improves team collaboration with dedicated views for cuesheets and operators, and for public and production
signage.
Simple infrastructure
All the data is distributed over the network, making its distribution and infrastructure flexible and cheap.
With the availability of the docker image, you can also leverage IT infrastructure to make Ontime available online for
your team and clients.
Ontime is made by video engineers and entertainment technicians.
Using Ontime
Getting started
The easiest way to start with Ontime is by leveraging our Cloud service.
This will give you immediate access to running instances of Ontime which are available to share with anyone with an internet connection.
Alternatively, you can run Ontime locally for free by downloading the latest release for your platform or using the docker image, available at Docker Hub
Once installed and running, any device that shares the same network as Ontime will have access to Ontime.
More information is available in our docs
Continued development
Ontime is under active development. We continue adding and improving features in collaboration with users.
Have an idea? Reach out via email or open an issue
Issues
We use Github's issue tracking for bug reporting and feature requests.
Found a bug? Open an issue.
Contributing
Looking to contribute? All types of help are appreciated, from coding to testing and feature specification.
If you are a developer and would like to contribute with code, please open an issue to discuss before opening a Pull Request.
Information about the project setup can be found in the development documentation
Links
License
This project is licensed under the terms of the GNU GPL v3
Sponsor
You can help the development of this project or say thank you with a one time donation.
See the terms of donations.


