{"id":49868874,"url":"https://github.com/vfmatzkin/panops","last_synced_at":"2026-05-15T04:07:55.478Z","repository":{"id":354934289,"uuid":"1225988237","full_name":"vfmatzkin/panops","owner":"vfmatzkin","description":"Local-first macOS recorder with screenshot-anchored meeting notes. Hexagonal Rust core, SwiftUI shell, BYO local LLM. No account, no telemetry.","archived":false,"fork":false,"pushed_at":"2026-05-10T09:12:09.000Z","size":2835,"stargazers_count":1,"open_issues_count":41,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-10T09:38:28.307Z","etag":null,"topics":["local-first","macos","meeting-notes","privacy","rust","screen-recording","swift","transcription","whisper"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vfmatzkin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-30T21:21:56.000Z","updated_at":"2026-05-10T00:55:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vfmatzkin/panops","commit_stats":null,"previous_names":["vfmatzkin/panops"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vfmatzkin/panops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfmatzkin%2Fpanops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfmatzkin%2Fpanops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfmatzkin%2Fpanops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfmatzkin%2Fpanops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vfmatzkin","download_url":"https://codeload.github.com/vfmatzkin/panops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfmatzkin%2Fpanops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33053180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-15T02:00:06.351Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["local-first","macos","meeting-notes","privacy","rust","screen-recording","swift","transcription","whisper"],"created_at":"2026-05-15T04:07:54.606Z","updated_at":"2026-05-15T04:07:55.467Z","avatar_url":"https://github.com/vfmatzkin.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/panops-banner.png\" alt=\"panops\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n# panops\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/vfmatzkin/panops/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/vfmatzkin/panops/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"MIT license\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nOpen-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.\n\nThe wedge no other OSS tool occupies: **screen + audio + screenshot-anchored notes, fully local, BYO-everything, no account required**.\n\n## Architecture\n\nHexagonal 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.\n\n## Status\n\nPre-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.\n\n## Logging\n\n`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`.\n\n## Name\n\nFrom 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.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvfmatzkin%2Fpanops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvfmatzkin%2Fpanops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvfmatzkin%2Fpanops/lists"}