NEWNow measures how long Claude Code and Codex work for you

See where your day
actually went.

Weft lives in your menu bar and weaves the apps, windows and sites you use into the few threads of work you kept coming back to. Your coding agents' hours go on the same timeline. Everything is sorted on your Mac by Apple Intelligence, and none of it is ever sent anywhere.

Free and open sourcemacOS 26 or laterSigned and notarized by Apple

7 MBA native SwiftUI app. No Electron, no bundled browser.
0 serversNo account, no cloud and no analytics.
On-device AICategories and summaries come from Apple Intelligence.
Free, MITOpen source, with no subscription and no paid tier.
The idea

You don't do one thing at a time. Your time tracker shouldn't pretend you do.

You write code, check the docs, answer a message and go back to the code. Most trackers file that as a long list of app switches. Weft finds the thread running through it: the same kind of work within 30 minutes becomes one stream, short detours fold in, and streams that overlap sit side by side like events in a calendar.

What happened70app switches
woven into
What Weft shows5threads of work
09:0010:0011:0012:00

A sentence for every stream

Each stream gets a one-line summary of what you actually did, written on your Mac by the on-device model.

Overlaps, side by side

A meeting in the middle of a coding session? Both show, in columns, the way your calendar does it.

Noise folded away

Streams under 10 minutes move to the Log, and idle stretches fold to a thin line, so the day stays readable.

Coding agents

Know how long your agents really worked.

Weft reads the logs Claude Code and Codex already keep on your Mac and measures each session's real working time. You see how long agents worked for you today, how many hours that adds up to across sessions, and how many ran at once. Every session sits on your timeline next to your own work.

2h 50m

Agent time today

When at least one agent was working for you.

4h 5m

Across all sessions

Two agents working in parallel for an hour add up to two hours.

2at once

Running in parallel

The most sessions working at the same time, out of 3 today.

24m

Waiting on agents

Time away while they worked, added to your day.

Click any session

See how long it worked, over how many prompts, how long it waited for you, and what you did in the meantime.

  1. 1

    Working time, not open sessions

    A turn runs from your prompt to the agent's reply. The hours a session sits waiting for you never count, and neither do its pauses for your permission or answers. The bar is solid where the agent worked and faint where it waited.

  2. 2

    Waiting on agents counts

    Step away while an agent works and that time still counts towards your daily target, up to a limit you set. Your Focus Score stays about you alone.

  3. 3

    Every machine you use

    With HAPI, agents on your other machines show up too, and sessions Weft can already read here are never counted twice.

Claude Code Codex More via HAPI

Weft keeps each session's title, project folder and working times. It never stores your prompts or the agent's replies.

Private by design

Your day stays on your Mac. All of it.

There's no account to create, no server to sync with and no analytics to opt out of. Weft categorizes, summarizes and reviews your day with Apple's on-device model, and keeps your history in a folder you can open in Finder.

Your Mac
What you useApp, window title, tab address
Apple IntelligenceSorts and summarizes, on device
Your historyA folder in ~/Library that you can open, export or delete
No account, no server, no analytics. Nothing to sync, nothing to leak.

What Weft records

  • The app in front
  • Its window title
  • The current tab's address, in supported browsers
  • When your coding agents worked

What it never records

  • Screenshots
  • Keystrokes
  • What's on your screen
  • Your prompts, or what agents reply

What you control

  • Stop recording window titles
  • Keep only the domain of each URL
  • Leave out apps and sites entirely
  • Pause any time, export everything to CSV

Prefer a different model? Connect any OpenAI-compatible API in Settings → Model: OpenAI, OpenRouter, DeepSeek and others. A remote model receives the apps, sites and window titles Weft asks it to sort, and your daily totals for reviews. Point Weft at Ollama or LM Studio and even that stays on your Mac.

Native, through and through

Feels like macOS. Barely touches your battery.

Weft is written in Swift and SwiftUI, so it looks, scrolls and behaves like the rest of your Mac. It doesn't poll your windows several times a second. It waits for macOS to say something changed, takes one look and goes back to sleep.

7MB

The whole app

No Electron and no bundled browser. The download is about 4 MB.

Event-driven

No polling loop. Weft wakes when the app, window or title changes, plus a quiet heartbeat once a minute.

Knows when you're away

It stops counting after 5 idle minutes, when the lid closes and when the screen locks. Meetings are the exception.

Everything else

A small app that does a lot.

Focus Score

A daily 0–100 for deep work and distraction. Click it to see exactly how it's calculated.

Categories that sort themselves

About 360 apps and sites are built in. The rest go to Apple Intelligence, and you can correct any of them.

Focus sessions and a blocker

Start focus, meeting and break sessions from the menu bar. Drift somewhere distracting and Weft nudges you back.

Healthy hours

Break reminders, and a daily target that tells you when you've done enough.

Daily and weekly reviews

A short review of your day with a suggestion for tomorrow, and how this week compares with last week.

Reports

Days and weeks by category and app, compared with your recent past.

Rules of your own

Match an app, a site or a window title, and Weft files it your way, past entries included.

Bring your own model

No Apple Intelligence where you live? Use any OpenAI-compatible API, or a local Ollama or LM Studio.

Your data, your way

Export everything to CSV whenever you like. To erase your history, delete one folder.

Your browser, understood

Reads the current tab in Safari, Chrome, Arc, Edge, Brave, Vivaldi, Opera, Dia and Comet.

Automate it

Control Weft from Raycast, Alfred, Shortcuts or a script with weft:// links: start a session, pause tracking or open today.

$ open "weft://focus?minutes=25"
$ open "weft://meeting"
$ open "weft://pause"
The difference

How Weft compares

 WeftTypical cloud trackers
PriceFree, MIT licenseMonthly subscription
AccountNoneRequired
Where your history livesOn your MacOn their servers
CategorizationOn-device AIIn the cloud
How your day is shownThreads of workA log of app switches
Coding-agent timeMeasured per session—
The appNative, 7 MBOften Electron
Source codeOpenClosed
Get started

Up and running in a minute.

Install

  1. 1

    Download

    Get the latest Weft-<version>.dmg from GitHub Releases.

  2. 2

    Drag it into Applications

    It's signed and notarized by Apple, so macOS opens it without warnings.

  3. 3

    Allow Accessibility

    So the timeline can show which document or project you were in, not just the app.

Weft needs macOS 26 or later. Apple Intelligence is recommended but optional: without it, Weft still knows a few hundred apps and sites, and guesses the rest for you to confirm later. You can also connect an OpenAI-compatible API or a local Ollama.

Or build it yourself

You'll need Xcode and Homebrew.

$ brew install xcodegen
$ git clone https://github.com/tiann/weft.git
$ cd weft && xcodegen generate
$ xcodebuild -project Weft.xcodeproj \
    -scheme Weft -derivedDataPath build/DerivedData build

Bug reports and pull requests are welcome. AGENTS.md covers the architecture and the tests.

FAQ

Questions, answered

Is Weft really free?
Yes. Weft is MIT-licensed, with no subscription, no paid tier and no account. You can read the code, change it and build it yourself.
How does Weft measure my coding agents' time?
It reads the logs Claude Code and Codex keep on your Mac (~/.claude/projects and ~/.codex/sessions) and counts each turn, from your prompt to the agent's reply, minus the time it spent waiting for your permission or answers. The hours a session sits idle between prompts don't count. Today shows the time at least one agent was working and the total across sessions, and each session on the timeline shows its own working time. With HAPI 0.33 or later, agents on your other machines are included.
Do I need Apple Intelligence?
No, though it's recommended. Without it, Weft still sorts the apps and sites it knows and anything you've set yourself, and guesses the rest from each app's App Store category or each site's name. You can also connect any OpenAI-compatible API, including a local Ollama or LM Studio.
What exactly can Weft see?
The app in front, its window title and, in supported browsers, the current tab's address. Never screenshots, keystrokes or the contents of your screen. You can turn off window titles, keep only domains, and leave out apps and sites entirely.
Will it slow down my Mac or drain the battery?
It's built not to. Weft is a native app with no polling loop: it reacts when macOS reports that the app, window or title changed, and otherwise checks in once a minute.
How is Weft different from Rize?
Weft takes after Rize but starts from a different idea: people rarely do one thing at a time, so instead of a log of app switches it shows the threads of work you kept coming back to. It's also free, open source, and works entirely on your Mac.
Where is my data, and how do I delete it?
In ~/Library/Application Support/Weft/. Export it to CSV from Settings → Data. To erase it, quit Weft and delete that folder.

Find out where today went.

Free, open source, and private from the first minute.