https://github.com/vfmatzkin/panops
Local-first macOS recorder with screenshot-anchored meeting notes. Hexagonal Rust core, SwiftUI shell, BYO local LLM. No account, no telemetry.
https://github.com/vfmatzkin/panops
local-first macos meeting-notes privacy rust screen-recording swift transcription whisper
Last synced: about 2 months ago
JSON representation
Local-first macOS recorder with screenshot-anchored meeting notes. Hexagonal Rust core, SwiftUI shell, BYO local LLM. No account, no telemetry.
- Host: GitHub
- URL: https://github.com/vfmatzkin/panops
- Owner: vfmatzkin
- License: mit
- Created: 2026-04-30T21:21:56.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-10T09:12:09.000Z (about 2 months ago)
- Last Synced: 2026-05-10T09:38:28.307Z (about 2 months ago)
- Topics: local-first, macos, meeting-notes, privacy, rust, screen-recording, swift, transcription, whisper
- Language: Rust
- Size: 2.7 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 41
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# panops
Open-source local-first macOS recorder with screenshot-anchored meeting notes. Captures audio (mic + system + per-app), screen, and time-anchored screenshots; transcribes live and refines with a higher-quality post-pass; emits markdown notes with embedded screenshots via a BYO local-or-cloud LLM.
The wedge no other OSS tool occupies: **screen + audio + screenshot-anchored notes, fully local, BYO-everything, no account required**.
## Architecture
Hexagonal Rust core engine + SwiftUI macOS shell + Swift sidecars (WhisperKit + FluidAudio for ASR, Apple FoundationModels for the on-device LLM). Every platform-specific concern is a port (trait) with a `mac-native` adapter and a `portable` fallback. Drop the Mac code and the engine compiles for Linux/Windows.
## Status
Pre-alpha. Slice 01 (skeleton) lands the Cargo workspace and test fixtures. Subsequent slices land the headless CLI, post-pass + diarization, notes generation, IPC, the SwiftUI shell, and live capture.
## Logging
`panops-engine` writes structured logs to stderr via `tracing`. Default level is `info` (model downloads, "wrote notes"); set `RUST_LOG` to override — e.g. `RUST_LOG=debug` for more detail, `RUST_LOG=off` to silence. Stdout in default mode is reserved for the JSON transcript and stays clean regardless of `RUST_LOG`.
## Name
From Argus Panoptes, the hundred-eyed giant in Greek myth. *Pan* (all) + *ops* (seeing). Fits the wedge: panops watches the screen, captures system audio, and stitches the recording into screenshot-anchored notes you can navigate later. The chevron inside the `o` of the wordmark is the visual cue.
## License
MIT — see [LICENSE](LICENSE).