Skip to content

Commit e2529f4

Browse files
Update README.md
1 parent 5753290 commit e2529f4

File tree

1 file changed

+98
-78
lines changed

1 file changed

+98
-78
lines changed

README.md

Lines changed: 98 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,41 @@
1-
21
<img width="900" height="846" alt="github_export" src="https://github.com/user-attachments/assets/df798940-820c-46b6-b149-3a2771c7b5f3" />
32

3+
44
## Screenshots
5+
<details>
6+
<summary>View Screenshots</summary>
57

6-
### Recap Preview
7-
<img width="1139" height="565" alt="image" src="https://github.com/user-attachments/assets/65b41806-c86f-4c16-ab0f-4114da5dfd8c" />
8+
### Recap Preview
9+
<img width="1139" height="565" alt="image" src="https://github.com/user-attachments/assets/65b41806-c86f-4c16-ab0f-4114da5dfd8c" />
810

9-
### Previous Recaps
10-
<img width="923" height="538" alt="image" src="https://github.com/user-attachments/assets/3b810b4f-a8b4-4755-bfd7-8ef1d3a3c953" />
11+
### Previous Recaps
12+
<img width="923" height="538" alt="image" src="https://github.com/user-attachments/assets/3b810b4f-a8b4-4755-bfd7-8ef1d3a3c953" />
1113

12-
### General Settings
13-
<img width="1038" height="524" alt="image" src="https://github.com/user-attachments/assets/5cfdf0d7-6c89-4f2e-9bae-8bfd6e14ca6d" />
14+
### General Settings
15+
<img width="1038" height="524" alt="image" src="https://github.com/user-attachments/assets/5cfdf0d7-6c89-4f2e-9bae-8bfd6e14ca6d" />
1416

15-
### Whisper Models Section
16-
<img width="1051" height="546" alt="image" src="https://github.com/user-attachments/assets/a3a3249b-b94d-492d-8009-3ad661cff45f" />
17+
### Whisper Models Section
18+
<img width="1051" height="546" alt="image" src="https://github.com/user-attachments/assets/a3a3249b-b94d-492d-8009-3ad661cff45f" />
1719

20+
</details>
1821

1922
## Why I Built This
2023

21-
Ever been in a meeting where you wanted to focus on your work but still catch the important bits? That's exactly why I created Recap.
24+
Ever been in a meeting where you wanted to focus on your work but still catch the important bits? That's exactly why I created Recap.
2225

2326
I found myself constantly torn between paying attention to meetings and getting actual work done. Sometimes I'd miss crucial decisions while coding, or I'd lose my flow state trying to take notes. I needed something that could listen for me and give me the highlights afterward.
2427

2528
But here's the thing - I didn't want my private conversations floating around on some company's servers. When you're discussing sensitive business matters, product roadmaps, or personal topics, that data should stay on YOUR machine. That's why Recap processes everything locally on your Mac using Apple's own technologies.
2629

27-
Now, Recap is broken. But it is a project that I am always working on on my free time so it meets my needs. I hope it can help you too.
30+
Now, Recap is broken. But it is a project that I am always working on in my free time so it meets my needs. I hope it can help you too.
2831

2932
---
3033

3134
> [!IMPORTANT]
32-
> Recap is not complete yet, it is broken, and not recommended for production usage.
35+
> Recap is not complete yet, it is broken, and not recommended for production usage.
3336
3437
> [!TIP]
35-
> Recap is in an incomplete state and I suggest that it is not used for production and daily usage, but help in shaping it is greatly appreciated.
38+
> Recap is in an incomplete state and I suggest that it is not used for production and daily usage, but help in shaping it is greatly appreciated.
3639
3740
# Recap
3841

@@ -47,19 +50,19 @@ Built using native macOS technologies - no drivers or kernel extensions required
4750

4851
**Core Audio**: Native Core Audio taps, AVAudioEngine, driver-free system audio capture
4952
**ML**: WhisperKit (local transcription), Ollama/OpenRouter (summarization)
50-
**Platform**: Swift + SwiftUI, Apple Silicon optimized, sandboxed execution
53+
**Platform**: Swift + SwiftUI, Apple Silicon optimized, sandboxed execution
5154

52-
### Roadmap:
55+
### Roadmap:
5356

5457
Working on the following features now:
5558
- [ ] Meeting Detection (Teams, Zoom, Google etc)
5659
- [ ] Custom Prompt Via Settings
57-
- [ ] Background Audio Processing
60+
- [ ] Background Audio Processing
5861
- [ ] Auto Recording Stop
5962
- [ ] Better Error Handling
6063
- [ ] 85% or more test coverage
6164

62-
Right now, Recap is more of a POC of what I am trying to make. It records system audio (Core Audio Taps) + with an optional microphone recording (your audio) and feeds it to Whisper for transcription and then uses Ollama for summarizing.
65+
Right now, Recap is more of a POC of what I am trying to make. It records system audio (Core Audio Taps) + with an optional microphone recording (your audio) and feeds it to Whisper for transcription and then uses Ollama for summarizing.
6366

6467
**LLM Provider Options:**
6568
- **Ollama** (recommended): Complete privacy - everything stays on your device
@@ -71,16 +74,16 @@ Right now, Recap is more of a POC of what I am trying to make. It records system
7174

7275
| Component | Minimum | Recommended |
7376
|-----------|---------|-------------|
74-
| **macOS** | 15.0 or later| 15.0 or later |
75-
| **Processor** | Apple M1 | Apple M2 Pro or newer |
77+
| **macOS** | 15.0 or later | 15.0 or later |
78+
| **Processor** | Apple M1 | Apple M2 Pro or newer |
7679
| **RAM** | 16 GB | 32 GB or more |
7780
| **Storage** | 10 GB free space | 50 GB free space |
7881

7982
### For OpenRouter (Cloud Processing)
8083

8184
| Component | Minimum | Recommended |
8285
|-----------|---------|-------------|
83-
| **macOS** | 15.0 or later| 15.0 or later |
86+
| **macOS** | 15.0 or later | 15.0 or later |
8487
| **Processor** | Apple M1 | Apple M2 or newer |
8588
| **RAM** | 8 GB | 16 GB or more |
8689
| **Storage** | 2 GB free space | 5 GB free space |
@@ -89,14 +92,14 @@ Right now, Recap is more of a POC of what I am trying to make. It records system
8992
9093
## How It Works
9194

92-
```
95+
```text
9396
DATA FLOW
9497
┌───────────────┐
9598
┌───┤ 1. App Start │
9699
│ └───────────────┘
97100
98101
┌─────────────┐
99-
│2. App Select│
102+
│2. App Select
100103
└─────────────┘
101104
102105
@@ -126,7 +129,7 @@ Right now, Recap is more of a POC of what I am trying to make. It records system
126129
│ • Update DB Record │
127130
│ • Show Results │
128131
└────────────────────────┘
129-
```
132+
````
130133
131134
## Installation
132135
@@ -135,19 +138,22 @@ Currently, Recap is only available through compilation from source. Pre-built re
135138
### Compile from Source
136139
137140
1. **Prerequisites:**
138-
- Ensure your system meets the [requirements](#system-requirements) above
139-
- Install Xcode 15.0 or later from the Mac App Store
141+
142+
* Ensure your system meets the [requirements](#system-requirements) above
143+
* Install Xcode 15.0 or later from the Mac App Store
140144
141145
2. **Clone and Build:**
146+
142147
```bash
143148
git clone https://github.com/your-username/recap.git
144149
cd recap
145150
open Recap.xcodeproj
146151
```
147152

148153
3. **Build in Xcode:**
149-
- Select your development team in project settings
150-
- Build and run (⌘+R)
154+
155+
* Select your development team in project settings
156+
* Build and run (⌘+R)
151157

152158
> **Note**: Distribution via Mac App Store and direct download will be available in future releases once the app reaches production readiness.
153159
@@ -157,65 +163,75 @@ Currently, Recap is only available through compilation from source. Pre-built re
157163

158164
Before using Recap, you need to set up the following environment variables:
159165

160-
- **`HF_TOKEN`** (Required): Hugging Face token for downloading Whisper models
166+
* **`HF_TOKEN`** (Required): Hugging Face token for downloading Whisper models
167+
161168
```bash
162169
export HF_TOKEN="your_huggingface_token_here"
163170
```
164-
165-
- **`OPENROUTER_API_KEY`** (Optional): Only required if using OpenRouter for summarization
171+
172+
* **`OPENROUTER_API_KEY`** (Optional): Only required if using OpenRouter for summarization
173+
166174
```bash
167175
export OPENROUTER_API_KEY="your_openrouter_api_key_here"
168176
```
169177

170178
### First-Time Setup
171179

172180
1. **Download Whisper Model:**
173-
- Open Recap and go to **Settings → Whisper Models**
174-
- Download a Whisper model (recommended: **Large v3** for best accuracy)
175-
- Wait for the download to complete before proceeding
181+
182+
* Open Recap and go to **Settings → Whisper Models**
183+
* Download a Whisper model (recommended: **Large v3** for best accuracy)
184+
* Wait for the download to complete before proceeding
176185

177186
2. **Configure LLM Provider:**
178-
- Go to **Settings → LLM Models**
179-
- Choose your preferred provider (Ollama or OpenRouter)
180-
- If using Ollama, ensure it's installed and running locally
187+
188+
* Go to **Settings → LLM Models**
189+
* Choose your preferred provider (Ollama or OpenRouter)
190+
* If using Ollama, ensure it's installed and running locally
181191

182192
3. **Start Recording:**
183-
- Select an audio application from the dropdown
184-
- Click the record button to start capturing
185-
- Optionally enable microphone for dual-audio recording
186-
- Click stop when finished - processing will begin automatically
193+
194+
* Select an audio application from the dropdown
195+
* Click the record button to start capturing
196+
* Optionally enable microphone for dual-audio recording
197+
* Click stop when finished - processing will begin automatically
187198

188199
## Tech Stack
189200

190201
Recap is built using native macOS technologies, avoiding third-party drivers and kernel extensions for maximum system stability and security.
191202

192203
### Core Audio Implementation
193-
- **Native Core Audio**: Direct integration with macOS audio subsystem
194-
- **Audio Unit Taps**: System-level audio interception without drivers
195-
- **AVAudioEngine**: Modern Swift audio processing pipeline
196-
- **No Kernel Extensions**: Driver-free audio capture using Apple's official APIs
197-
- **Process-Specific Capture**: Target individual applications without affecting system audio
204+
205+
* **Native Core Audio**: Direct integration with macOS audio subsystem
206+
* **Audio Unit Taps**: System-level audio interception without drivers
207+
* **AVAudioEngine**: Modern Swift audio processing pipeline
208+
* **No Kernel Extensions**: Driver-free audio capture using Apple's official APIs
209+
* **Process-Specific Capture**: Target individual applications without affecting system audio
198210

199211
### Technologies Used
200-
- **Language**: Swift 5.9+
201-
- **UI Framework**: SwiftUI + AppKit (menu bar integration)
202-
- **Audio Processing**: Core Audio, AVAudioEngine, Audio Toolbox
203-
- **Machine Learning**:
204-
- WhisperKit (local speech-to-text)
205-
- MLX/CoreML optimization for Apple Silicon
206-
- **LLM Integration**:
207-
- Ollama (local inference)
208-
- OpenRouter (cloud API)
209-
- **Data Storage**: Core Data + local file system
210-
- **Concurrency**: Swift async/await, structured concurrency
211-
- **Architecture**: MVVM, Coordinator pattern, Dependency injection
212+
213+
* **Language**: Swift 5.9+
214+
* **UI Framework**: SwiftUI + AppKit (menu bar integration)
215+
* **Audio Processing**: Core Audio, AVAudioEngine, Audio Toolbox
216+
* **Machine Learning**:
217+
218+
* WhisperKit (local speech-to-text)
219+
* MLX/CoreML optimization for Apple Silicon
220+
* **LLM Integration**:
221+
222+
* Ollama (local inference)
223+
* OpenRouter (cloud API)
224+
* **Data Storage**: Core Data + local file system
225+
* **Concurrency**: Swift async/await, structured concurrency
226+
* **Architecture**: MVVM, Coordinator pattern, Dependency injection
212227

213228
### Security & Privacy Benefits
214-
- **Sandboxed Execution**: Runs within macOS security boundaries
215-
- **No System Modifications**: Zero kernel-level changes required
216-
- **Permission-Based**: Uses standard macOS audio permissions
217-
- **Local Processing**: WhisperKit keeps transcription on-device
218-
- **Secure Audio Taps**: Apple's blessed method for audio interception
229+
230+
* **Sandboxed Execution**: Runs within macOS security boundaries
231+
* **No System Modifications**: Zero kernel-level changes required
232+
* **Permission-Based**: Uses standard macOS audio permissions
233+
* **Local Processing**: WhisperKit keeps transcription on-device
234+
* **Secure Audio Taps**: Apple's blessed method for audio interception
219235

220236
## Contributing
221237

@@ -224,14 +240,16 @@ I really need help finishing Recap! Any contribution is greatly welcomed.
224240
### Priority Areas
225241

226242
**Critical needs:**
227-
- See Roadmap above for current focus areas
243+
244+
* See Roadmap above for current focus areas
228245

229246
**Also needed:**
230-
- Meeting app detection improvements
231-
- Custom prompt templates via settings
232-
- Performance optimizations
233-
- Documentation improvements
234-
- Bug fixes and stability improvements
247+
248+
* Meeting app detection improvements
249+
* Custom prompt templates via settings
250+
* Performance optimizations
251+
* Documentation improvements
252+
* Bug fixes and stability improvements
235253

236254
### How to Contribute
237255

@@ -241,20 +259,22 @@ I really need help finishing Recap! Any contribution is greatly welcomed.
241259
4. **Test your changes** thoroughly on Apple Silicon Macs
242260
5. **Submit a pull request** with clear description of changes
243261

244-
All skill levels welcome - from fixing typos to architecting new features. Let's build something great together. I really mean it!
262+
All skill levels welcome - from fixing typos to architecting new features. I really mean it!
245263

246264
## License
247265

248-
This project is licensed under the **Creative Commons Attribution-NonCommercial 4.0 International License**.
266+
Copyright © 2025 Rawand Ahmed Shaswar
249267

250-
**What this means:**
251-
-**Free personal use** - Use, modify, and share for personal projects
252-
-**Open source contributions** - Fork, improve, and contribute back
253-
-**Educational use** - Perfect for learning and teaching
254-
-**Commercial redistribution** - Cannot resell or distribute commercially without permission
255-
-**App Store uploads** - Cannot publish to app stores for profit
268+
Permission is hereby granted to any person or entity to use, modify, and deploy
269+
this software for any purpose, commercial or otherwise, provided that this notice
270+
appears in all copies or substantial portions of the software.
256271

257-
If you want to use Recap commercially or have questions about licensing, please reach out to discuss options.
272+
Redistribution of this software, in source or binary form, original or modified,
273+
is prohibited without express prior written consent from the copyright holder.
274+
275+
**What this means:**
258276

259-
See the [LICENSE](LICENSE) file for full details.
277+
***Any kind of usage allowed** — personal, educational, or commercial use and modification is permitted.
278+
***Redistribution prohibited** — you may not redistribute the original or modified project in any form.
260279

280+
Please see the [LICENSE](LICENSE) file for full details.

0 commit comments

Comments
 (0)