Jira timer: how to start a timer on a Jira issue

Jira has no built-in timer, only a Log work field. Here are four ways to get a clock on an issue, from a scratch-file note to a desktop app that writes the worklog.

The whole built-in mechanism is the Log work dialog on every issue, where you type a duration after the fact. Anything that counts while you work has to come from outside Jira’s own UI, and there are three places it can live: a Marketplace app that adds a button to the issue view, a browser extension that adds one to the page, or a desktop app that runs the timer next to your system clock and writes the worklog when you stop. Which one fits depends on who can install it and where you want the hours to end up.

We build one of the desktop options, Planim Time, so the last section is about our own code. The first three are about the alternatives, and the wider question of logging time at all, timer or not, is in how to track time in Jira.

What Jira gives you: Log work, no clock

Open an issue, click the three-dot menu, pick Log work. The dialog asks for Time spent in Jira’s duration format (2h 15m), a Date started that defaults to the moment you opened the dialog, and an optional description. Details in how to log work in Jira.

The dialog cannot count, so people who want timer accuracy without installing anything improvise. A line in a scratch file (PROJ-142 started 10:20) is the usual version, some drag a calendar block over the hour, some run the stopwatch on a phone. Any of these holds up for a couple of entries a day, and all of them fail the same way: Date started stays at the default, which is when you typed the entry rather than when you did the work, so the worklog says 17:40 for something that happened at 10:20. After eight context switches the evening turns into a reconstruction job, and Jira time tracking for developers is mostly about avoiding it.

If you are on the scratch-file method today, that is the step a desktop timer removes: in Planim Time you click the play button on the issue row instead of writing down the time, and Stop produces a pending entry that already carries the real start time and duration, ready to push to the issue as a normal worklog. The note you would have written goes into a comment field while the timer runs.

Marketplace apps: a timer button inside the issue

Clockwork, Tempo Timesheets and the Clockify app for Jira all add a start/stop control to the issue view. Once a site admin installs the app from the Atlassian Marketplace, every user sees the button. Clockwork writes the hours as Jira worklogs under your name, Tempo Cloud keeps the full record on its side and mirrors an anonymised row into Jira, and Clockify keeps its own entry and syncs a worklog back.

Living inside Jira has two consequences. Someone with site admin rights has to install the app, and on many sites that means a procurement round instead of a click (Jira time tracking without admin rights separates that gate from ordinary project permissions). The timer is also a panel in the Jira page, so it runs only while the tab is open and Jira Cloud is up. Close the tab, let the session expire or sit through an Atlassian incident and the control goes with it. Whether the running entry survives depends on the app. A solo engineer who only wants the clock ends up paying, in seats or in admin time, for the rest of the product as well.

Browser extensions: a button on the page, hours somewhere else

Toggl Track and Clockify both ship browser extensions that detect a Jira issue page and add a start button next to the title. Setup is per user: install the extension, sign in to the vendor’s account, and the button appears on the next issue you open.

What the button does not do is write to Jira. The extension records the entry in Toggl’s or Clockify’s cloud with the issue key as the description, and a worklog appears on the issue only if a separate integration writes one: for Clockify that is the Marketplace app from the previous section, for Toggl an extra sync outside the extension. On the plus side, a closed tab does not stop the clock, since the vendor holds the entry, though you have to reopen a page to see whether it is still running.

A desktop timer that writes the Jira worklog

Planim Time is a small app in the menu bar or system tray that lists your Jira issues and writes a normal worklog when you stop. The details below come from its code.

The issue list is a JQL query, by default assignee = currentUser() ORDER BY updated DESC, so your own issues across every project appear without setup. Each row has a play button. Press play on a different row while a timer is running and the first one stops on its own before the second starts. The timer state lives in a local SQLite database and the per-second tick runs in the Rust backend, so quitting and reopening the app brings the same timer back.

While it runs you get Pause, Resume and Stop & log, plus a What I’m working on field. Pause closes the current segment as its own pending entry and the counter keeps the session total for Resume. Stop turns the segment into a pending entry with the measured start time and duration. At this point nothing has reached Jira. In the Work Logs tab, Push posts one entry to the issue’s worklog endpoint with the note as the comment, and Push All sends every pending entry for the selected day. Durations are rounded up to the next whole minute, since Jira rejects sub-minute worklogs. A failed push stays in the queue marked as an error, to be pushed again by hand.

Starting and stopping never call Jira, so the timer works with no network at all. Entries wait as pending, original start time intact, until you push them. There is no automatic push when the connection returns, so the pending count in Work Logs is the thing to check after a flight.

The tray icon changes with the state: running, paused, idle. On macOS, turning on Menu bar display puts a live PROJ-142 00:47:12 next to the clock. Windows has no text next to tray icons, so there the icon carries the state and the window shows the count. On Linux the text goes to the panel where the panel supports indicator labels.

Two things people ask for are missing. There is no global keyboard shortcut, so starting is a click on the tray icon and a click on the row. And there is no mobile app: worklogs logged from the Jira mobile app are pulled into the desktop Work Logs tab for that day, but the timer itself is desktop-only.

The Pro tier adds the automation around the clock. When an issue assigned to you moves into a status you chose, such as In Progress, a Start Tracking? notification appears with one click to begin. When the tracked issue moves into a finishing status the timer stops on its own. Auto-push on stop skips the Push step. Idle detection asks what to do with a gap after 5 to 60 minutes without input (keep it, subtract it, or stop at the moment you left) and exists only on macOS and Windows, because Linux has no unified idle API. Why it prompts instead of starting silently is covered in what automatic Jira time tracking means, and the case for a native binary in why a desktop Jira time tracker.

Which Jira timer for which situation

SituationTimer that fitsWhere the hours land
A few entries a day, no installs allowedLog work with a start-time noteJira worklog, date typed by hand
Team already on Tempo, Clockwork or the Clockify appThe app’s issue-view timerJira worklog, or Clockify entry synced back
Solo, browser-centric, Jira is not the system of recordToggl or Clockify extensionVendor cloud, Jira only with a sync path
Solo or small team, Jira stays the record, no admin installDesktop timer (Planim Time or similar)Jira worklog, pushed from a local queue
Timer must run on a phoneA vendor’s mobile app, or Log work in the Jira mobile appVendor cloud, or a Jira worklog typed by hand

Since Jira itself will not give you a clock, the choice comes down to where the worklog should end up and who is allowed to install things. When the answers are “on the Jira issue” and “me”, a desktop timer is the shortest path. When a timesheet product the company already pays for is in the picture, its button is the one to use.

Frequently asked questions

Does Jira have a built-in timer?
No. Jira Cloud and Jira Data Center ship a Log work dialog where you type a duration after the fact (2h 15m) and a Date started field that defaults to the moment you open the dialog. There is no start or stop button anywhere in the native issue view. Any running timer on a Jira issue comes from a Marketplace app, a browser extension, or a separate desktop app.
How do I start a timer on a Jira issue?
There are three routes. A Marketplace app such as Clockwork or Tempo adds a timer button inside the issue view once a site admin installs it. A browser extension such as Toggl or Clockify adds a button to the issue page and records time in its own service. A desktop tracker such as Planim Time lists your issues in a menu-bar or tray app, and a play button on the issue row starts the timer without touching Jira until you push the worklog.
Is there a free timer for Jira?
Yes, in every category. Clockwork and Clockify both have free tiers for small sites, Toggl's extension is free for individuals, and Planim Time's free tier includes the timer, pause and stop, Push and Push All, and two-way worklog sync with no user cap. The paid Planim Time tier adds the calendar, automatic push on stop, idle detection, and the Start Tracking? prompt.
Does a Jira timer keep running when I close the browser?
Depends on where the timer lives. A Marketplace timer runs inside the Jira tab and a browser-extension timer runs inside the browser, so a closed tab or an expired session can interrupt either. A desktop timer keeps its state on disk: Planim Time stores the running timer in a local SQLite database, ticks it from the native Rust backend, and restores it when the app is reopened.
Can a Jira timer start automatically when I move an issue to In Progress?
Not silently, in any mainstream tool. Planim Time (Pro) watches your issues and shows a Start Tracking? notification when one moves into a status you chose, such as In Progress. One click starts the timer. It never starts on its own, because a card dragged during planning is not evidence that work began.