PrepSignal records meetings on Windows and processes them locally on a paired Mac mini. The Mac transcribes recordings with Whisper, uses Ollama for analysis, and returns the transcript and structured meeting notes to the Windows app.
- The Windows Electron app records a screen or window, with optional microphone audio.
- It saves the original recording locally in Documents/PrepSignal Recordings.
- It uploads the recording to the paired Mac agent on your trusted local network.
- The Mac converts the recording with FFmpeg, transcribes it locally with whisper.cpp, and analyzes it locally with Ollama.
- Windows saves the returned transcript and analysis beside the recording.
- Optionally, Windows writes a Markdown report to a selected Google Drive for desktop folder. Google Drive then syncs the report without any API key, OAuth setup, or Google Cloud project.
PrepSignal does not use OpenAI for this flow.
- apps/windows-desktop: Electron app run on Windows.
- services/mac-agent: Node service installed on the Mac mini.
- installer/mac: Mac installation and launchd setup script.
- .github/workflows: GitHub Actions release publishing.
- config/releases: release manifest template.
- tests: unit, integration, and end-to-end test areas.
- src: planned long-term code layout; much of it is currently scaffolding.
Requirements:
- Node.js
- A Mac agent that has been installed and prepared
- Access to the Mac on your local network
From the repository root on Windows:
npm --prefix apps/windows-desktop install
npm run start:windows
In the app:
- Enter the Mac endpoint, for example http://192.168.1.50:8787.
- Paste the bootstrap token used when installing the Mac agent.
- Select Pair Mac. The bootstrap token is only used for pairing.
- Select Check Mac to confirm the connection.
- Optionally select Choose Folder and choose a Google Drive for desktop folder. Without a selected folder, reports remain local only.
The Mac requires:
- Node.js
- Ollama, running locally
- An Ollama analysis model. qwen3:4b is the initial default for an M1 Mac mini.
- FFmpeg
- whisper.cpp and a local Whisper model. The default expected model path is /opt/prepsignal/shared/models/ggml-small.en.bin.
Install the PrepSignal agent from the project root on the Mac:
TOKEN="$(openssl rand -hex 32)"
sudo ./installer/mac/install-prepsignal.sh \
--install-root /opt/prepsignal \
--service-port 8787 \
--bootstrap-token "$TOKEN"
Install and prepare the local AI tools separately. PrepSignal currently checks for and invokes these tools; it does not install Ollama, FFmpeg, whisper.cpp, or models automatically.
Verify the services:
curl http://127.0.0.1:8787/health
ollama list
sudo launchctl print system/com.prepsignal.mac-agent
The Mac agent uses authenticated HTTP for the private LAN configuration currently chosen for this project. Do not expose port 8787 or Ollama port 11434 to the public internet.
Each processed meeting is stored locally with:
- recording.webm
- transcript.txt
- analysis.json
- metadata.json
When an export folder is selected, PrepSignal also creates a Markdown report containing the transcript, summary, meeting type, topics, action items, decisions, and open questions.
Pushing a Git tag matching v* triggers the GitHub Actions workflow in .github/workflows/publish-mac-agent.yml. It packages services/mac-agent as a release archive, calculates its SHA-256 checksum, and publishes both the archive and mac-stable.json as GitHub Release assets.
The Mac checks its configured release manifest hourly. It downloads a newer archive only when the manifest version exceeds its installed version, verifies the checksum, replaces the current agent files, and restarts the service.
After the repository is hosted on GitHub, use this manifest URL during Mac installation:
https://github.com/pcosgrave/PrepSignal/releases/latest/download/mac-stable.json
The manifest is not a Git pull. It is a small JSON file that points at a versioned GitHub Release archive.
Run the current unit tests from the repository root:
npm test
The Windows app and Mac agent are still early-stage software. The primary next areas are reliable local AI dependency installation, stronger transfer security, and integration tests for the Windows-to-Mac processing flow.