A calm macOS menu bar companion for Pieces OS.
missingpieces shows the next steps that Pieces OS already noticed in recent workstream summaries. Open the menu bar popover, scan what you may have missed, copy what matters, and mark the rest done locally.
Download DMG | Landing Page | Latest Release | Release Notes | Pieces OS
Pieces OS can remember the shape of your work: files, snippets, sessions, summaries, and loose follow-ups. missingpieces gives that memory a small practical surface.
It does not try to become another task manager. It simply asks:
What did Pieces already notice that I might be forgetting?
- Menu bar first: no Dock icon, no dashboard to manage
- Read-only Pieces integration: reads workstream summaries, never writes back
- Next-step extraction: parses
Next Stepsbullets from recent Pieces summaries - Grouped by work session: keeps follow-ups tied to the context they came from
- Local triage: expand, copy, mark done, and restore marked-done items
- Quiet refresh model: refresh on popover open if enabled, or when you click Check again
- Signed release: Developer ID signed, notarized, and stapled
- macOS 14 or later
- Pieces OS running locally
- Local access to Pieces OS on
localhost
missingpieces usually connects to Pieces OS on port 39300, with a fallback to 1000.
- Download missingpieces-1.0.0-b3.dmg.
- Open the DMG.
- Drag
missingpieces.appto Applications. - Launch
missingpiecesfrom Applications. - Keep Pieces OS running.
The public DMG is Developer ID signed, notarized, and stapled.
missingpieces is intentionally small:
- Check whether Pieces OS is reachable on localhost.
- Fetch recent
WORKSTREAM_SUMMARIES. - Load each summary's
SUMMARYannotation. - Parse the
Next Stepssection. - Show compact rows grouped by work session.
- Hide locally marked-done rows.
Nothing is pushed back into Pieces.
| Action | Result |
|---|---|
| Open popover | Shows the current list and optionally refreshes |
| Click Check again | Fetches recent summaries from Pieces OS |
| Click a row | Expands or collapses the full text |
| Double-click a row | Copies the step text |
| Right-click a row | Shows Mark done and Copy |
| Mark done | Hides that item locally |
| Restore in Settings | Brings locally marked-done items back |
missingpieces is local-first and narrow by design.
It does:
- Connect to Pieces OS on your Mac
- Store settings in
UserDefaults - Store hashed marked-done item IDs locally
- Cache the last known Pieces OS port locally
It does not:
- Upload your data to a separate server
- Create, edit, or delete data in Pieces OS
- Maintain a separate cloud task list
- Poll Pieces OS in the background
Clone the repository:
git clone https://github.com/aka-kika/missingpieces.git
cd missingpiecesBuild and run a local debug app:
python3 generate_xcode.py
xcodebuild -project PiecesTask.xcodeproj -target missingpieces -configuration Debug build
open build/Debug/missingpieces.appOpen in Xcode:
open PiecesTask.xcodeprojAfter adding or removing Swift files under PiecesTask/, regenerate the Xcode project:
python3 generate_xcode.pyThe release script builds a Developer ID signed app and creates a DMG:
./scripts/release.shRelease signing requires:
- A Developer ID Application certificate
- Apple Developer Team ID
P5RB3W3D58 - Notarization credentials outside the repository
The script does not store Apple credentials.
| Path | Purpose |
|---|---|
PiecesTask/ |
Swift source |
PiecesTask.xcodeproj/ |
Generated Xcode project |
PiecesTaskAssets.xcassets/ |
App icon and menu bar icon assets |
landing/ |
GitHub Pages landing page |
docs/ |
Product, design, and pipeline notes |
release/ |
Install notes and release notes |
scripts/release.sh |
Release build and DMG script |
generate_xcode.py |
Xcode project generator |
Core flow:
flowchart LR
A["Open popover or Check again"] --> B["AppState"]
B --> C["PiecesService"]
C --> D["Pieces OS localhost"]
D --> E["Workstream summaries"]
E --> F["PiecesNextStepsParser"]
F --> G["Filter marked-done IDs"]
G --> H["SwiftUI popover"]
Key implementation pieces:
PiecesService: localhost health checks and Pieces OS API callsPiecesNextStepsParser: extracts readable follow-up rowsAppState: refresh flow, grouping, filtering, and copy stateAppSettings: preferences and local marked-done storageRootPopoverView: main menu bar popoverSettingsView: compact auto-saving settings window
More detail lives in docs/FEATURES_AND_PIPELINE.md.
The current main branch is intentionally lean.
Possible future work:
- Cleaner first-run empty states
- More resilient parsing for unusual summary formats
- Optional launch-at-login support
- Better release automation
- A small diagnostics view for Pieces OS connection state
Out of scope for the current product:
- Writing tasks back to Pieces
- Cloud sync
- Background polling
- A separate task database
This repository is public for visibility, distribution, and review. The app is small, focused, and currently maintained as a personal Pieces OS companion.
Source available. All rights reserved unless a separate license is added.
See LICENSE.
missingpieces is an independent companion app for people already using Pieces OS. Pieces and Pieces OS belong to their respective owners.