<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Richard Ostrow</title>
    <description>The latest articles on DEV Community by Richard Ostrow (@r_ostr).</description>
    <link>https://dev.to/r_ostr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4142596%2Fde3165a4-120a-4f91-b413-59603de9207f.png</url>
      <title>DEV Community: Richard Ostrow</title>
      <link>https://dev.to/r_ostr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/r_ostr"/>
    <language>en</language>
    <item>
      <title>Why worklogAuthor = currentUser() finds nothing when your team uses Tempo</title>
      <dc:creator>Richard Ostrow</dc:creator>
      <pubDate>Mon, 28 Sep 2026 14:07:39 +0000</pubDate>
      <link>https://dev.to/r_ostr/why-worklogauthor-currentuser-finds-nothing-when-your-team-uses-tempo-5a34</link>
      <guid>https://dev.to/r_ostr/why-worklogauthor-currentuser-finds-nothing-when-your-team-uses-tempo-5a34</guid>
      <description>&lt;p&gt;Plenty of people keep this as a saved filter in Jira:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;worklogAuthor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;currentUser&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;worklogDate&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;startOfWeek&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On a Jira Cloud site with Tempo Timesheets it comes back empty for anyone who logs time through Tempo, even after a full week of logging, and there's nothing wrong with the query. If you open the Work log tab on any issue, the entries are by "Timesheets by Tempo - Jira Time Tracking" (older sites and screenshots show "Tempo Timesheets"), and each one has "time tracking" as its comment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Tempo does on Jira Cloud
&lt;/h2&gt;

&lt;p&gt;Tempo Cloud keeps worklogs in its own database. When you log time in Tempo, it also creates a worklog in Jira so the issue totals stay right, and that Jira worklog goes under Tempo's own app account. &lt;a href="https://help.tempo.io/timesheets/latest/syncing-data-between-jira-and-tempo" rel="noopener noreferrer"&gt;Tempo's help center&lt;/a&gt; says, "This worklog is created without user attribution to respect view privileges for worklogs."&lt;/p&gt;

&lt;p&gt;This has been the behavior since at least 2018. Back then a Tempo staff member &lt;a href="https://community.atlassian.com/forums/Jira-questions/All-user-id-in-work-log-became-Tempo-Timesheets/qaq-p/859497" rel="noopener noreferrer"&gt;explained in the Atlassian Community&lt;/a&gt; that Tempo has its own rules for who can see whose time, and Jira shows worklog authors in too many places for Tempo to enforce those rules there, so the real author stays in Tempo and Jira gets an anonymous copy.&lt;/p&gt;

&lt;p&gt;Through Jira's REST API that copy looks roughly like this, based on the examples in Tempo's own docs (trimmed):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"accountId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"557058:…"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"displayName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Timesheets by Tempo - Jira Time Tracking"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"accountType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"app"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"updateAuthor"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"displayName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Timesheets by Tempo - Jira Time Tracking"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"accountType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"app"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"timeSpentSeconds"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"properties"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tempo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"value"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"shadow"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"true"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"tempo_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;9701&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The duration and date are real, but nothing in the record tells you whose time it is. The comment is a placeholder, and the &lt;code&gt;tempo&lt;/code&gt; property holds only Tempo's internal ID, with no account ID or name.&lt;/p&gt;

&lt;h2&gt;
  
  
  What breaks
&lt;/h2&gt;

&lt;p&gt;Anything that asks Jira instead of Tempo who logged the time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;worklogAuthor&lt;/code&gt; in JQL can't match people who log through Tempo, and &lt;a href="https://help.tempo.io/kb/latest/why-do-we-see-timesheets-as-the-worklog-author" rel="noopener noreferrer"&gt;Tempo's KB&lt;/a&gt; says so. Tempo's own &lt;a href="https://help.tempo.io/kb/latest/tempo-jql-functions-for-cloud" rel="noopener noreferrer"&gt;JQL functions on Cloud&lt;/a&gt; don't help either, since they cover teams and accounts but not the worklog author.&lt;/li&gt;
&lt;li&gt;On the issue, the History tab and the Activity stream show Tempo as the one who created and edited each entry.&lt;/li&gt;
&lt;li&gt;Users on the Atlassian Community reported in 2022 that &lt;code&gt;{{worklog.author.displayName}}&lt;/code&gt; in Jira Automation returns the Tempo app.&lt;/li&gt;
&lt;li&gt;Scripts and exports built on &lt;code&gt;/rest/api/3/issue/{key}/worklog&lt;/code&gt;, or on the issue CSV export. ScriptRunner users and at least one Forge app vendor &lt;a href="https://community.developer.atlassian.com/t/unable-to-get-user-worklogs-using-jira-api-when-tempo-is-installed/78800" rel="noopener noreferrer"&gt;ran into this&lt;/a&gt;, and the answer they got was to switch to Tempo's API.&lt;/li&gt;
&lt;li&gt;Anything else that reads Jira's data to work out who did what. A June 2026 review on Tempo's Marketplace page lists native reports, BI tools, audits and Atlassian Rovo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Time spent on the issue and the time tracking bar still add up correctly, because the shadow worklogs carry real durations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check your own site in one call
&lt;/h2&gt;

&lt;p&gt;Don't match on the display name, since it has already changed once (&lt;a href="https://help.tempo.io/timesheets/latest/querying-and-exporting-worklogs-via-api" rel="noopener noreferrer"&gt;Tempo's docs&lt;/a&gt; say the same). Look at the account type and the &lt;code&gt;tempo&lt;/code&gt; property instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; &lt;span class="s2"&gt;"you@company.com:&lt;/span&gt;&lt;span class="nv"&gt;$JIRA_API_TOKEN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"https://your-site.atlassian.net/rest/api/3/issue/PROJ-123/worklog?expand=properties"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="s1"&gt;'.worklogs[] | {author: .author.displayName, type: .author.accountType, tempo: ((.properties // []) | any(.key == "tempo")), seconds: .timeSpentSeconds}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rows with &lt;code&gt;"type": "app"&lt;/code&gt; and &lt;code&gt;"tempo": true&lt;/code&gt; are Tempo's shadow copies, and anything with &lt;code&gt;"type": "atlassian"&lt;/code&gt; was created by a person, either in Jira's own dialog or through something that writes to the API as that person.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you're keeping Tempo
&lt;/h2&gt;

&lt;p&gt;Build your reports on Tempo's data instead. Tempo's REST API v4 returns the real &lt;code&gt;author.accountId&lt;/code&gt; on every worklog. &lt;code&gt;GET /4/worklogs/user/{accountId}&lt;/code&gt; gives you one person's time, and &lt;code&gt;POST /4/worklogs/search&lt;/code&gt; takes a list of &lt;code&gt;authorIds&lt;/code&gt;. If a script starts from a Jira worklog (an Automation rule, for example), Tempo's documented recipe is to read &lt;code&gt;properties.tempo.tempo_id&lt;/code&gt; and fetch &lt;code&gt;GET https://api.tempo.io/4/worklogs/{id}&lt;/code&gt; with it.&lt;/p&gt;

&lt;p&gt;There's no fix on the JQL side, so the nearest thing to a "my worklogs this week" filter is a Tempo report filtered by user.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you want your name on your worklogs
&lt;/h2&gt;

&lt;p&gt;A worklog created in Jira by the user keeps that user as its author, whether it comes from the Log work dialog or from a REST call made with the user's own credentials. Jira's API marks &lt;code&gt;author&lt;/code&gt; as read-only, so no app can rewrite it afterwards. According to Tempo's sync docs, those worklogs get copied into Tempo too, so finance still sees them in Tempo reports.&lt;/p&gt;

&lt;p&gt;When Tempo is set as the site's time tracking provider, though, Jira &lt;a href="https://help.tempo.io/kb/latest/different-ways-to-log-time-with-tempo-and-jira" rel="noopener noreferrer"&gt;hides its own Log work dialog&lt;/a&gt; everywhere except workflow transition screens, so in practice "log in Jira" means the REST API or a tool built on it. And I couldn't find anything from Tempo about what happens to the Jira author if someone later edits one of those entries inside Tempo. Try it on a single entry before you change how a whole team logs time.&lt;/p&gt;

&lt;p&gt;That REST route is what Planim Time uses; it's the desktop tracker for Jira. It sits in the menu bar or tray, and Push sends each entry through your own Atlassian login as a normal Jira worklog, so the author is you and &lt;code&gt;worklogAuthor = currentUser()&lt;/code&gt; finds it again. The timer, Push and two-way sync are on the free tier. Old Tempo rows stay anonymous in Jira, though, and since Jira doesn't attribute them to you, the app doesn't show them either. If you're leaving Tempo, export from Tempo's API before you cancel; the &lt;a href="https://time.planim.app/blog/migrate-from-tempo-to-desktop-tracker?ref=devto-tempo-worklog-author" rel="noopener noreferrer"&gt;migration steps&lt;/a&gt; are in a separate post.&lt;/p&gt;

&lt;p&gt;If you're choosing a tracker, I compared ten of them &lt;a href="https://www.linkedin.com/pulse/best-time-trackers-jira-2026-vladimir-letiagin-iz27f" rel="noopener noreferrer"&gt;on LinkedIn&lt;/a&gt;, including how each one handles this, who has to install it and what you end up paying for.&lt;/p&gt;

</description>
      <category>jira</category>
      <category>atlassian</category>
      <category>productivity</category>
      <category>api</category>
    </item>
    <item>
      <title>Best free time trackers for Jira in 2026</title>
      <dc:creator>Richard Ostrow</dc:creator>
      <pubDate>Fri, 25 Sep 2026 09:17:15 +0000</pubDate>
      <link>https://dev.to/r_ostr/best-free-time-trackers-for-jira-in-2026-56c7</link>
      <guid>https://dev.to/r_ostr/best-free-time-trackers-for-jira-in-2026-56c7</guid>
      <description>&lt;p&gt;Every time tracker on the first page of Google for "free Jira time tracker" has a free plan. About half of those free plans don't include Jira.&lt;/p&gt;

&lt;p&gt;Toggl is free, but its Jira sync is a paid feature. Everhour is free, but integrations start on the Team plan. Hubstaff is free for exactly one person with no integrations at all. Tempo has no free plan, only a trial. You can spend an afternoon on pricing pages and still not know which tool will put a worklog on a ticket without asking for a card.&lt;/p&gt;

&lt;p&gt;So here's the list I wanted when I was doing that search. For each tool: does the free tier expire, does it include Jira, what's the user cap, and does time actually land on the issue as a worklog. Prices were checked in September 2026, and this category changes them often, so re-check before you quote anything in a budget meeting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short version
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://time.planim.app/jira?ref=devto-free-jira-trackers" rel="noopener noreferrer"&gt;Planim Time&lt;/a&gt;&lt;/strong&gt;: free forever, no user cap, no Planim account, no Marketplace install. Native menu bar timer for macOS, Windows and Linux with two-way Jira worklog sync and offline tracking. Pro adds a calendar, idle detection, auto-push and reports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://marketplace.atlassian.com/apps/1219213/clockwork-pro-for-jira-time-tracking-and-timesheets" rel="noopener noreferrer"&gt;Clockwork&lt;/a&gt;&lt;/strong&gt;: free for up to ten users on Jira Cloud, runs inside Jira, needs a Jira admin to install.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://clockify.me/pricing" rel="noopener noreferrer"&gt;Clockify&lt;/a&gt;&lt;/strong&gt;: free for up to five users, two-way sync through a free Marketplace app, keeps a copy of your hours in Clockify's cloud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jira's built-in Log work field&lt;/strong&gt;: free on every plan, fully manual.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://toggl.com/track/pricing/" rel="noopener noreferrer"&gt;Toggl Track&lt;/a&gt;, &lt;a href="https://everhour.com/pricing" rel="noopener noreferrer"&gt;Everhour&lt;/a&gt;, &lt;a href="https://support.hubstaff.com/new-pricing-and-plans/" rel="noopener noreferrer"&gt;Hubstaff&lt;/a&gt;&lt;/strong&gt;: free plans exist, but none of them include Jira. Toggl's Jira Sync is Premium and import-only, Everhour needs the Team plan, Hubstaff needs Grow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.tempo.io/pricing/jira-time-tracking" rel="noopener noreferrer"&gt;Tempo Timesheets&lt;/a&gt;&lt;/strong&gt;: 30-day trial, then paid per Jira user. No free plan.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The two questions that decide it
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Does the free plan expire? If it does, it's a trial and it's out.&lt;/li&gt;
&lt;li&gt;Does the free plan include the Jira integration? Plenty of trackers keep your hours in their own database and never write them to the issue.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here's how I check: install it on a Friday, log time against a real ticket, and look on Monday. Is the worklog on the issue, and do you still have access? Everything below is sorted by how it does on that test.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free forever, Jira included
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Planim Time
&lt;/h3&gt;

&lt;p&gt;A native desktop &lt;a href="https://time.planim.app/jira?ref=ddevto-free-jira-trackers" rel="noopener noreferrer"&gt;Jira time tracker&lt;/a&gt; for macOS, Windows and Linux. It sits in the menu bar or system tray, tracks time on Jira issues and writes it back as normal worklogs.&lt;/p&gt;

&lt;p&gt;The free tier has no expiry and no user cap. There is also no Planim account: you sign in with Atlassian, or paste an API token if your org prefers that, and the app talks to Jira directly. Nothing goes through a Marketplace install, so you don't need a Jira admin to approve anything. Your org can still block OAuth apps or API tokens by policy, which is a separate conversation with IT.&lt;/p&gt;

&lt;p&gt;What you get on free:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Menu bar timer&lt;/strong&gt; with pause and resume. Pick a ticket from the list and hit Start; the elapsed time sits next to the clock.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your issues, filtered by JQL.&lt;/strong&gt; Default is &lt;code&gt;assignee = currentUser()&lt;/code&gt;, and you can save several named filters and switch between them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Worklogs under your own name.&lt;/strong&gt; When you stop, the entry gets the real start time and duration, and Push sends it to the issue as a standard Jira worklog. You're the author in Jira, so &lt;code&gt;worklogAuthor&lt;/code&gt; queries and any reporting built on Jira data keep working.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two-way sync.&lt;/strong&gt; Edit a worklog in Jira and it updates in the app. Edit it in the app and push it back.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline tracking.&lt;/strong&gt; The timer keeps running when Jira is down or you're on a plane. Entries queue up and Push All clears them when you're back online.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local data.&lt;/strong&gt; Everything is in a SQLite file on your machine, credentials are in the OS keychain, and nothing is copied to a Planim server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No monitoring.&lt;/strong&gt; It doesn't take screenshots or score your activity. Your manager sees worklogs and nothing else.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Automatic push of pending worklogs after a delay you choose, and a calendar where you drag and resize entries. Next to the calendar is a sidebar of suggestions built from your Jira activity (tickets you were assigned, commented on or moved that day), so you can reconstruct Friday from what you actually touched instead of scrolling through Slack. Idle detection on macOS and Windows notices when you walk away or close the lid with the timer running, and asks whether to keep that time, subtract it, or stop at the moment you left. There are also working-hours reminders when nothing is being tracked during your schedule, reports with CSV export, and team worklog visibility.&lt;/p&gt;

&lt;p&gt;Where it falls short: Jira only, no mobile app. If you track time across five different tools it's the wrong pick. The free tier is what I use myself day to day; Pro is for automation and backfill.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clockwork
&lt;/h3&gt;

&lt;p&gt;A &lt;a href="https://marketplace.atlassian.com/apps/1219213/clockwork-pro-for-jira-time-tracking-and-timesheets" rel="noopener noreferrer"&gt;Jira Marketplace plugin&lt;/a&gt; by HeroCoders. The free tier covers up to ten users on Jira Cloud and runs inside Jira: a timer on the issue and a timesheet tab, with nothing to install on your laptop. HeroCoders &lt;a href="https://docs.herocoders.com/clockwork/may-2026" rel="noopener noreferrer"&gt;removed the old monthly timer limit in May 2026&lt;/a&gt;, so timer starts are unlimited now.&lt;/p&gt;

&lt;p&gt;For a small Cloud team it's a good deal until you pass ten users. Above that, or if you want the Pro workflow, pricing switches to per-Jira-user, and Marketplace apps bill against your whole Jira license rather than the people who track time. A 200-seat Jira with 12 people tracking pays for 200. You also need a Jira admin to install it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clockify
&lt;/h3&gt;

&lt;p&gt;Clockify's &lt;a href="https://clockify.me/pricing" rel="noopener noreferrer"&gt;free plan&lt;/a&gt; allows up to five users with unlimited tracking, and the &lt;a href="https://clockify.me/help/integrations-and-add-ons/jira-integration" rel="noopener noreferrer"&gt;Jira Cloud integration&lt;/a&gt; is now a free Marketplace app rather than the old browser extension. Clockify documents two-way sync: stopping a timer in Jira creates a worklog, and later edits flow both ways.&lt;/p&gt;

&lt;p&gt;Limits: five users, an admin install, and Clockify keeps its own cloud copy of everything, which comes up when a security team asks where the hours are stored. In exchange you get real mobile apps and tracking across many tools, so if Jira is one of several systems you log time against, Clockify is the strongest free option here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Jira's built-in worklog
&lt;/h3&gt;

&lt;p&gt;Every Jira issue already has a "Log work" field. Free on every plan, no install, and it's been there for as long as I've used Jira.&lt;/p&gt;

&lt;p&gt;It's also entirely manual. You open the ticket, click Log work, type "2h 30m", pick a date, save, and repeat for every issue you touched. Nobody keeps that up past week two. But if you log once a week in round numbers, it's enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Free" plans that don't include Jira
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Toggl Track
&lt;/h3&gt;

&lt;p&gt;Toggl's &lt;a href="https://toggl.com/track/pricing/" rel="noopener noreferrer"&gt;free plan&lt;/a&gt; is real, up to five users, and fine for tracking against Toggl's own projects. The Jira part is not free. Toggl's first-party Jira Sync is a Premium-tier feature, and even there it only goes one way, from Jira into Toggl. Hours tracked in Toggl never reach the Jira worklog. Below Premium you get issue titles in a browser popup, nothing more.&lt;/p&gt;

&lt;p&gt;Worth it if Toggl is already your system of record. Otherwise skip it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Everhour
&lt;/h3&gt;

&lt;p&gt;Everhour's &lt;a href="https://everhour.com/pricing" rel="noopener noreferrer"&gt;free plan&lt;/a&gt; covers five seats but excludes native integrations, so no Jira. Jira arrives with the Team plan at $8.50 per seat per month billed annually ($10 monthly), with a five-seat minimum, which puts the floor at $42.50 a month. The paid plan is solid for agencies that invoice against Jira projects, but the free plan doesn't touch Jira.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hubstaff
&lt;/h3&gt;

&lt;p&gt;Hubstaff has a &lt;a href="https://support.hubstaff.com/new-pricing-and-plans/" rel="noopener noreferrer"&gt;permanent free plan&lt;/a&gt; for one user with no integrations. Jira requires the Grow plan at $7.50 per seat per month annually, with a two-seat minimum, so $15 a month is the entry price for a pair.&lt;/p&gt;

&lt;p&gt;Hubstaff is a monitoring product first: screenshots, activity scoring, app and URL capture, optional GPS. It's a manager's purchase, and if that's not what you're after, the $15 buys features you won't use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tempo Timesheets
&lt;/h3&gt;

&lt;p&gt;No free plan. Tempo offers a &lt;a href="https://www.tempo.io/pricing/jira-time-tracking" rel="noopener noreferrer"&gt;30-day Marketplace trial&lt;/a&gt; that a Jira admin starts, then it's paid per Jira user. Tempo is what finance teams already know: approvals, rate cards, capacity reports, the lot. If the people asking for time tracking run those workflows, do the trial.&lt;/p&gt;

&lt;p&gt;One catch: the full worklog record is stored in Tempo, and what appears on the Jira issue is a basic row. Reports built on native Jira worklog data won't see the same thing Tempo sees.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side by side
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Free forever?&lt;/th&gt;
&lt;th&gt;Jira sync on free?&lt;/th&gt;
&lt;th&gt;User cap on free&lt;/th&gt;
&lt;th&gt;Where the hours live&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Planim Time&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes, two-way&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Jira worklog + local SQLite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clockwork&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes, inside Jira&lt;/td&gt;
&lt;td&gt;10 (Cloud)&lt;/td&gt;
&lt;td&gt;Jira&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clockify&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes, two-way Marketplace app&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Jira + Clockify cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jira native worklog&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;By definition&lt;/td&gt;
&lt;td&gt;All Jira users&lt;/td&gt;
&lt;td&gt;Jira&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toggl Track&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No (Premium, import-only)&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Toggl cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Everhour&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No (Team plan)&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Everhour cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hubstaff&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No (Grow plan)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Hubstaff cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tempo Timesheets&lt;/td&gt;
&lt;td&gt;No, 30-day trial&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;Tempo, basic row in Jira&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How I'd choose
&lt;/h2&gt;

&lt;p&gt;Solo engineer, or a team of any size that can't get a Marketplace app approved: Planim Time on the free tier. Sign in with Atlassian and start a timer.&lt;/p&gt;

&lt;p&gt;Small Jira Cloud team with an admin on hand, and you'd rather never leave the browser tab: Clockwork. Ten users free, timesheet inside Jira.&lt;/p&gt;

&lt;p&gt;Jira is one of several tools you bill against and you want mobile apps: Clockify Free, up to five users.&lt;/p&gt;

&lt;p&gt;If you only log time once a week and don't mind clicking into each ticket, Jira's own Log work field is enough.&lt;/p&gt;

&lt;p&gt;If finance needs approvals and rate cards, that's Tempo, and it isn't free. Budget for it.&lt;/p&gt;

&lt;p&gt;If someone says the company can use Toggl or Hubstaff with Jira for free, they're right about the free plan and wrong about Jira. Check the pricing page for the integration row before anyone installs anything.&lt;/p&gt;

</description>
      <category>jira</category>
      <category>productivity</category>
      <category>devtool</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
