Weft Status is a macOS menu bar companion for Weft. It shows live Weft activity from the local daemon subscription API without reading Weft's SQLite database directly.
The app is a status surface, not a scheduler. Weft remains the source of truth.
- Show current Weft state at a glance: running jobs, queued jobs, rental run rate, autopilot state, and unprocessed results.
- Support project-scoped views for active research work.
- Surface failure and attention states without requiring a terminal.
- Keep Weft as the source of truth; this app is a display and notification layer, not a scheduler.
Weft daemon subscription API
|
macOS SwiftUI app
The app subscribes to Weft's daemon activity resource over
~/.cache/weft/daemon.sock, normalizes the daemon payload into the app-facing
model in Shared/, and renders that model in the menu bar popover.
SQLite remains an internal Weft implementation detail. This app does not query
~/.config/weft/jobs.db.
- Menu bar label with compact running, queued, completed-result, and run-rate status.
- Menu bar popover with live status and job detail from the Weft daemon.
- Floating HUD toggled from the menu bar, with TUI-style sections for status, jobs, rentals, and recent transitions.
- Running job rows with project badges; clicking a job copies its
wj...ID. - Unprocessed completed/failed job details when exposed by the daemon payload.
- Rental section for cloud/rental instances, with run rate, uptime, and running-job count.
- Settings window for menu bar identity, HUD behavior, and infrastructure alert thresholds.
- HUD hotkey, HUD job grouping, and infrastructure alert thresholds are configurable.
- About window with app metadata.
On-prem hosts can run jobs without appearing in the rental section. The rental section describes cloud/rental launch records only.
This repository contains a pure SwiftPM macOS app:
Shared/: the compact app-facing activity model, fixture data, freshness rules, project selection, and priority signal selection.WeftStatusApp/: the SwiftUI menu bar app, daemon client, settings, about window, and rendering surfaces.App/: macOS app bundle metadata and icon source.Checks/: lightweight model checks runnable without XCTest.
Fixture data remains available for development checks. At runtime, unavailable daemon data renders as an explicit no-data or error state.
Build the app:
swift buildRun the app:
swift run WeftStatusThis runs the SwiftPM executable directly. For normal menu bar use, prefer the installed app bundle.
Build a macOS app bundle:
just appInstall it into ~/Applications and launch it:
just installjust install-user remains as a compatibility alias. If the installed app is
running, the install recipe stops it before replacing the bundle, then opens the
fresh installed app. The default local install is unsigned; use
just install-signed when local ad-hoc signature validation is useful.
Reinstall and launch it through the explicit launch alias:
just launchjust launch remains available for callers that expect a launch-named recipe.
Run model checks:
swift run WeftStatusSharedChecksThe same commands are available through just build, just run, and
just check.
Settings open in a separate window from the menu bar popover. Current settings:
- Menu bar identity: icon, name, or both.
- HUD hotkey and default HUD job grouping.
- Infrastructure alert thresholds for low credit runway and overnight runway.