Skip to content

Repository files navigation

Weft Status

Weft Status is a macOS menu bar companion for Weft. It displays current job, rental, and autopilot activity from Weft's local daemon subscription API. Weft remains the source of truth for job and instance state.

Screenshots

macOS menu bar showing compact Weft activity

Weft Status HUD showing system, job, and project activity

Weft Status menu bar popover showing an active failure signal

Features

  • A compact menu bar label summarizes running and queued jobs, completed results, and rental run rate.
  • The menu bar popover shows failures and other states that need attention, followed by the relevant job and rental details.
  • A floating HUD groups system, project, job, rental, and recent-transition activity in a larger TUI-style view.
  • Job rows include project badges. Clicking a row copies its wj... ID.
  • Completed and failed jobs remain visible while their results need attention.
  • Rental rows show cost, uptime, GPU information, and job counts.
  • Settings control menu bar identity, the HUD hotkey and grouping, and infrastructure alert thresholds.

On-prem hosts can run jobs without appearing in the rental section. The rental section describes cloud/rental launch records only.

Architecture

flowchart LR
    daemon["Weft daemon<br/>activity subscription"] --> models["Normalized app models<br/>Shared/"]
    models --> menu["Menu bar"]
    models --> popover["Popover"]
    models --> hud["HUD"]
Loading

The daemon client subscribes to Weft's activity resource over ~/.cache/weft/daemon.sock. Code in Shared/ converts the daemon payload into app-facing models before the SwiftUI surfaces render it.

The app never opens ~/.config/weft/jobs.db. SQLite is an internal Weft implementation detail. Missing or unavailable daemon data appears as a loading, disconnected, or error state instead of a set of live-looking counts.

Repository Layout

The app is a SwiftPM project:

  • Shared/: app-facing models, fixture data, freshness rules, project selection, and priority signal selection.
  • WeftStatusApp/: the daemon client, SwiftUI surfaces, settings, and documentation screenshot renderer.
  • App/: macOS app bundle metadata and icon source.
  • Checks/: lightweight model checks that run without XCTest.

Development

Build the app:

swift build

Run from SwiftPM:

swift run WeftStatus

Open the HUD with example activity:

swift run WeftStatus --fixtures --hud

Regenerate the README screenshots:

swift run WeftStatus --capture-screenshots docs/images

Build the macOS app bundle:

just app

Install the bundle in ~/Applications and launch it:

just install

The installer stops a running copy before replacing it. Local installs are unsigned by default. Use just install-signed to add and verify an ad hoc signature.

Rebuild, reinstall, and launch:

just launch

just install-user is an alias for just install.

Run the model checks and build:

just check

Use swift run WeftStatusSharedChecks to run only the model checks.

Settings

Settings open in a separate window from the menu bar popover:

  • Menu bar identity: icon, name, or both.
  • HUD hotkey and default HUD job grouping.
  • Infrastructure alert thresholds for low credit runway and overnight runway.

About

macOS menu bar companion for Weft status

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages