Work in progress: Resolve Time Tracker is working, but it is still evolving. Clone it, fork it, modify it for your own DaVinci Resolve workflow, and open pull requests if you build something useful.
Resolve Time Tracker is an MIT-licensed, open-source time tracker for DaVinci Resolve Studio. It tracks billable editing time per Resolve project while avoiding the classic mistake: counting time after the editor has walked away.
- DaVinci Resolve Studio. The latest Resolve Studio release is the actively tested target; Windows with Resolve Studio 21 is currently verified.
- Git, used to download and update the project.
- Node.js with pnpm, used to build the desktop app. The pnpm version is pinned in
frontend/package.json.
The installer supplies uv, Python 3.13, Python packages, and frontend packages. macOS and Linux support is available but still needs broader real-machine testing; see Platform Support.
On Windows, use the installed DaVinci Resolve + Time Tracker shortcut to start Resolve with tracking. Use the separate Resolve Time Tracker Dashboard shortcut to view saved time and reports. To attach tracking to an already-open Resolve session, run:
Workspace > Scripts > ResolveTimeTrackerMenu
| Platform | Download | Run |
|---|---|---|
| Windows | install.ps1 | Right-click the file and choose Run with PowerShell. |
| macOS | install.sh | sh ~/Downloads/install.sh |
| Linux | install.sh | sh ~/Downloads/install.sh |
Windows users who prefer a one-command install can run:
irm https://raw.githubusercontent.com/Today20092/Davinci-Resolve-TimeTracker/main/install.ps1 | iexThis downloads and immediately runs the installer. Use the download link above instead if you want to inspect the script before running it.
If Windows blocks install.ps1, open PowerShell in your Downloads folder and run:
powershell -ExecutionPolicy Bypass -File .\install.ps1The installer downloads the project source, installs Python dependencies, builds the dashboard, and adds the DaVinci Resolve menu script. Windows installation also creates the tracking and dashboard shortcuts and removes legacy tracker login-startup entries.
If Git or Node.js with pnpm is missing, the installer stops before changing the installation and explains what to install.
Tracking starts when you use the tracked Resolve shortcut or Resolve's Scripts menu. There is no login-startup process or watcher waiting for Resolve to open.
The headless runtime records the Resolve session without an Electron window. Opening the dashboard connects to that runtime. If tracking has not started, the dashboard opens saved data without starting tracking.
Closing the dashboard exits Electron. Tracking continues while the tracked Resolve session is open. After Resolve closes, the runtime remains only if the dashboard is still open; closing both ends the runtime. Nothing remains running between sessions. Ordinary dashboard launches use the installed build without running pnpm or rebuilding assets.
For Linux activity detection, install xprintidle and xdotool with your distro package manager. Without them, the tracker can still run, but it falls back to always-active tracking.
Rerun the same installer you downloaded:
.\install.ps1sh install.shRestart Resolve if it was already open.
Download and run the uninstaller for your platform:
| Platform | Download |
|---|---|
| Windows | uninstall.ps1 |
| macOS / Linux | uninstall.sh |
.\uninstall.ps1sh uninstall.shClose Resolve and the dashboard first. The uninstaller shows every location it will remove and asks for confirmation. It separately asks whether to permanently delete tracker.sqlite3; choosing No preserves all tracked projects and time.
On Windows, start DaVinci Resolve + Time Tracker. If Resolve is already open, attach tracking with:
Workspace > Scripts > ResolveTimeTrackerMenu
Open Resolve Time Tracker Dashboard to see whether time is being recorded, the open Resolve project and page, saved work sessions, settings, and report exports. Use Pause Tracking to stop the timer manually and Resume Tracking to start it again.
The dashboard alone does not start tracking. Starting Resolve through its ordinary shortcut also does not start tracking; use the tracked shortcut or Scripts menu for sessions you want recorded.
CSV export writes closed sessions only. Open active sessions are exported after they close.
These screenshots use sample project data to show the companion app pages.
- Tracks while Resolve is the foreground app and you are not idle.
- Stops when Resolve is minimized or you switch to another app.
- Keeps tracking during Resolve render/export.
- Stores data locally in SQLite.
- Exports closed sessions to CSV.
- Never records keystrokes, mouse coordinates, screen contents, footage, or media contents.
Automated performance checks use synthetic activity and lifecycle scenarios. They do not measure CPU or memory during a real Resolve editing session.
Default data file:
Windows: %LOCALAPPDATA%\ResolveTimeTracker\tracker.sqlite3
macOS: ~/Library/Application Support/ResolveTimeTracker/tracker.sqlite3
Linux: $XDG_DATA_HOME/ResolveTimeTracker/tracker.sqlite3 or ~/.local/share/ResolveTimeTracker/tracker.sqlite3
- Windows: verified with DaVinci Resolve Studio 21.
- macOS: supported by installer and activity probes, needs real-machine smoke testing.
- Linux: supported by installer and Resolve scripting path; proper idle/focus detection requires
xprintidleandxdotool.
More detail lives in docs/platform-support.md.
See Troubleshooting when the Resolve menu item is missing, the tracker is disconnected, or time is not increasing.
For connection or performance problems, open Settings > Support report in the desktop app and choose Copy report or Save report. Paste or attach that report to your GitHub issue. It includes runtime and connection details, but not Resolve project names or tracking history.
View architecture diagrams and component map
Both diagrams use the same visual language:
- Orange: where the user starts an action.
- Blue: DaVinci Resolve.
- Green: the desktop app and results visible to the user.
- Purple: background work performed by the tracker.
- Pink: data stored privately on the computer.
- Rectangle: an action or part of the tracker; diamond: a choice; cylinder: stored data; dotted line: an explanatory note rather than a runtime step.
How Resolve, the desktop companion, the local Python sidecar, and local storage talk to each other while the tracker is running.
flowchart TD
Menu["Tracked Resolve shortcut<br/>or Resolve's Scripts menu"] --> Tracker["Headless runtime<br/>tracks this Resolve session"]
Dashboard["You open the dashboard"] --> App["Desktop dashboard<br/>saved data without tracking by default"]
App <-->|Local API| Tracker
Resolve["DaVinci Resolve<br/>project, page, and render status"] --> Tracker
Activity["Your computer<br/>active, idle, or Resolve in background"] --> Tracker
Tracker --> Decision{"Should this time count?"}
Decision -->|Yes| Database[("Private local database<br/>projects, time, and settings")]
Decision -->|No| Wait["Wait without adding time"]
Wait --> Tracker
Database --> App
App --> Reports["Dashboard, CSV,<br/>and PDF reports"]
Note["Dashboard close exits Electron.<br/>Runtime exits when the tracked Resolve session and dashboard have closed."] -.-> App
classDef user fill:#fff7ed,stroke:#f97316,color:#7c2d12
classDef resolve fill:#eff6ff,stroke:#2563eb,color:#1e3a8a
classDef desktop fill:#f0fdf4,stroke:#16a34a,color:#14532d
classDef backend fill:#eef2ff,stroke:#4f46e5,color:#312e81
classDef data fill:#fdf2f8,stroke:#db2777,color:#831843
class Menu,Dashboard user
class Resolve resolve
class App,Reports desktop
class Tracker,Decision,Activity,Wait backend
class Database data
What the one-file installer prepares before the menu item appears inside DaVinci Resolve.
flowchart TD
Download["Download and run<br/>the installer for your computer"]
Download --> Prepare["The installer prepares<br/>the tracker and desktop app"]
Prepare --> Menu["The tracker is added to<br/>Resolve's Scripts menu"]
Prepare --> Shortcuts["Windows tracking and dashboard shortcuts<br/>replace legacy login-startup entries"]
Shortcuts --> Ready["Installation complete<br/>nothing runs at sign-in"]
Menu --> Ready
Ready --> Use["Use the tracked Resolve shortcut<br/>or attach from Resolve's Scripts menu"]
classDef bootstrap fill:#fff7ed,stroke:#f97316,color:#7c2d12
classDef setup fill:#eef2ff,stroke:#4f46e5,color:#312e81
classDef resolve fill:#eff6ff,stroke:#2563eb,color:#1e3a8a
class Download bootstrap
class Prepare setup
class Menu,Shortcuts,Ready,Use resolve
| Area | Files | Responsibility |
|---|---|---|
| Plugin entry | scripts/ResolveTimeTracker.py |
Opens the built dashboard by default; --tracked-launch starts or attaches Resolve tracking, and --api attaches a dashboard owner to the managed runtime. |
| Install path | install.py, install.ps1, install.sh, scripts/install_resolve_menu.py |
Prepares Python and frontend dependencies, then installs the Resolve Scripts-menu launcher. |
| Interface | frontend/ |
Electron owns the dashboard window and desktop PDF printing and exits when the window closes; React, Vite, Tailwind, and shadcn/ui render the dashboard. |
| Runtime lifecycle | src/resolve_time_tracker/runtime_host.py, src/resolve_time_tracker/tracked_launch.py |
Shares one runtime per database while a tracked Resolve session or dashboard owns it. Publishes an ephemeral localhost endpoint in the database's .runtime.json file. |
| Backend API | src/resolve_time_tracker/api.py |
FastAPI exposes localhost commands, exports, server-sent invalidations, and the complete dashboard read model consumed by React. |
| Tracking rules | src/resolve_time_tracker/tracking_engine.py |
Converts Resolve/runtime snapshots into billable Sessions with heartbeats. |
| Resolve adapter | src/resolve_time_tracker/resolve_bridge.py |
Reads project, Page, render, timeline, idle, and foreground state. |
| Storage | src/resolve_time_tracker/database.py |
Stores Projects, active Session, closed Sessions, settings, heartbeat recovery, summaries, and CSV output in SQLite. |
Local checkouts also install Workspace > Scripts > ResolveTimeTrackerDevMenu.
It starts the Vite development server and Electron with hot reload; use the normal
ResolveTimeTrackerMenu entry to attach tracking to the current Resolve session. The dashboard shortcut opens the built app.
The Development Guide covers prerequisites, repository structure, local startup, API access, tests, linting, and builds. An AI coding agent can use the copyable Agentic Development Prompt to prepare and verify a checkout. See CONTRIBUTING.md before opening a pull request.
The project is inspired by Jamie Fenn's DaVinci Resolve time tracker concept and launch video:
This is an independent open-source implementation. It is not affiliated with, endorsed by, or a copy of Jamie Fenn's commercial product.
MIT. See LICENSE.