Skip to content

Commit df38fbb

Browse files
Update readme
1 parent 4eaf5d7 commit df38fbb

File tree

1 file changed

+30
-63
lines changed

1 file changed

+30
-63
lines changed

README.md

Lines changed: 30 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,23 @@ Now, Recap is broken. But it is a project that I am always working on in my free
3535

3636
---
3737

38-
> [!IMPORTANT]
39-
> Recap is not complete yet, it is broken, and not recommended for production usage.
40-
4138
> [!TIP]
4239
> 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.
4340
4441
# Recap
4542

4643
Recap is an open-source, privacy-focused, macOS-native project to help you summarize your meetings. You could summarize audio of any app, not just meetings.
4744

48-
## Tech Stack
45+
## Stack
4946

5047
#### Linter
5148
Not using any linter right now, but I am planning to use SwiftLint/SwiftFormat in the future (PRs greatly welcomed).
5249

5350
Built using native macOS technologies - no drivers or kernel extensions required.
5451

55-
**Core Audio**: Native Core Audio taps, AVAudioEngine, driver-free system audio capture
56-
**ML**: WhisperKit (local transcription), Ollama/OpenRouter (summarization)
57-
**Platform**: Swift + SwiftUI, Apple Silicon optimized, sandboxed execution
52+
- Native Core Audio taps, AVAudioEngine, driver-free system audio capture
53+
- WhisperKit (MLX) (local transcription), Ollama/OpenRouter (summarization)
54+
- Swift + SwiftUI
5855

5956
### Roadmap:
6057

@@ -68,13 +65,14 @@ Working on the following features now:
6865

6966
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.
7067

71-
**LLM Provider Options:**
68+
**LLM Options:**
7269
- **Ollama** (recommended): Complete privacy - everything stays on your device
7370
- **OpenRouter**: Cloud-based option if you lack local compute capacity, but data leaves your device
7471

7572
## System Requirements
7673

77-
### For Ollama (Local Processing)
74+
<details>
75+
<summary>Ollama (Local Processing)</summary>
7876

7977
| Component | Minimum | Recommended |
8078
|-----------|---------|-------------|
@@ -83,27 +81,27 @@ Right now, Recap is more of a POC of what I am trying to make. It records system
8381
| **RAM** | 16 GB | 32 GB or more |
8482
| **Storage** | 10 GB free space | 50 GB free space |
8583

86-
### For OpenRouter (Cloud Processing)
87-
84+
<details>
85+
<summary>OpenRouter (Cloud Processing)</summary>
8886
| Component | Minimum | Recommended |
8987
|-----------|---------|-------------|
9088
| **macOS** | 15.0 or later | 15.0 or later |
9189
| **Processor** | Apple M1 | Apple M2 or newer |
9290
| **RAM** | 8 GB | 16 GB or more |
9391
| **Storage** | 2 GB free space | 5 GB free space |
92+
</details>
9493

95-
> **Note**: Intel Macs are not supported. Apple Silicon required for WhisperKit transcription.
94+
> **Note**: Intel Macs are not supported. Use it at your own risk.
9695
9796
## How It Works
9897

9998
```text
100-
DATA FLOW
10199
┌───────────────┐
102100
┌───┤ 1. App Start │
103101
│ └───────────────┘
104102
105103
┌─────────────┐
106-
│2. App Select │
104+
│2.App Select │
107105
└─────────────┘
108106
109107
@@ -156,7 +154,6 @@ Currently, Recap is only available through compilation from source. Pre-built re
156154

157155
3. **Build in Xcode:**
158156

159-
* Select your development team in project settings
160157
* Build and run (⌘+R)
161158

162159
> **Note**: Distribution via Mac App Store and direct download will be available in future releases once the app reaches production readiness.
@@ -165,23 +162,37 @@ Currently, Recap is only available through compilation from source. Pre-built re
165162

166163
### Required Environment Variables
167164

168-
Before using Recap, you need to set up the following environment variables:
165+
Before using, you need to set up the following environment variables:
169166

170167
* **`HF_TOKEN`** (Required): Hugging Face token for downloading Whisper models
171168

172169
```bash
173170
export HF_TOKEN="your_huggingface_token_here"
174171
```
175172

173+
Read [Hugging Face documentation](https://huggingface.co/docs/hub/security-tokens) to get a token!
174+
176175
* **`OPENROUTER_API_KEY`** (Optional): Only required if using OpenRouter for summarization
177176

178177
```bash
179178
export OPENROUTER_API_KEY="your_openrouter_api_key_here"
180179
```
181180

181+
Read [OpenRouter documentation](https://openrouter.ai/docs/api-keys) to get a key!
182+
182183
### First-Time Setup
183184

184-
1. **Download Whisper Model:**
185+
#### Ollama Setup
186+
1. Download Ollama here: [Ollama](https://ollama.com/download)
187+
2. Pull the latest models (i.e. Llama 3):
188+
189+
```bash
190+
ollama pull llama3
191+
```
192+
193+
#### Whisper Models
194+
195+
1. **Download & Select a Model:**
185196

186197
* Open Recap and go to **Settings → Whisper Models**
187198
* Download a Whisper model (recommended: **Large v3** for best accuracy)
@@ -200,42 +211,6 @@ Before using Recap, you need to set up the following environment variables:
200211
* Optionally enable microphone for dual-audio recording
201212
* Click stop when finished - processing will begin automatically
202213

203-
## Tech Stack
204-
205-
Recap is built using native macOS technologies, avoiding third-party drivers and kernel extensions for maximum system stability and security.
206-
207-
### Core Audio Implementation
208-
209-
* **Native Core Audio**: Direct integration with macOS audio subsystem
210-
* **Audio Unit Taps**: System-level audio interception without drivers
211-
* **AVAudioEngine**: Modern Swift audio processing pipeline
212-
* **No Kernel Extensions**: Driver-free audio capture using Apple's official APIs
213-
* **Process-Specific Capture**: Target individual applications without affecting system audio
214-
215-
### Technologies Used
216-
217-
* **Language**: Swift 5.9+
218-
* **UI Framework**: SwiftUI + AppKit (menu bar integration)
219-
* **Audio Processing**: Core Audio, AVAudioEngine, Audio Toolbox
220-
* **Machine Learning**:
221-
222-
* WhisperKit (local speech-to-text)
223-
* MLX/CoreML optimization for Apple Silicon
224-
* **LLM Integration**:
225-
226-
* Ollama (local inference)
227-
* OpenRouter (cloud API)
228-
* **Data Storage**: Core Data + local file system
229-
* **Concurrency**: Swift async/await, structured concurrency
230-
* **Architecture**: MVVM, Coordinator pattern, Dependency injection
231-
232-
### Security & Privacy Benefits
233-
234-
* **Sandboxed Execution**: Runs within macOS security boundaries
235-
* **No System Modifications**: Zero kernel-level changes required
236-
* **Permission-Based**: Uses standard macOS audio permissions
237-
* **Local Processing**: WhisperKit keeps transcription on-device
238-
* **Secure Audio Taps**: Apple's blessed method for audio interception
239214

240215
## Contributing
241216

@@ -247,14 +222,6 @@ I really need help finishing Recap! Any contribution is greatly welcomed.
247222

248223
* See Roadmap above for current focus areas
249224

250-
**Also needed:**
251-
252-
* Meeting app detection improvements
253-
* Custom prompt templates via settings
254-
* Performance optimizations
255-
* Documentation improvements
256-
* Bug fixes and stability improvements
257-
258225
### How to Contribute
259226

260227
1. **Fork the repository** and create a feature branch
@@ -278,7 +245,7 @@ is prohibited without express prior written consent from the copyright holder.
278245

279246
**What this means:**
280247

281-
* **Any kind of usage allowed** — personal, educational, or commercial use and modification is permitted.
282-
* **Redistribution prohibited** — you may not redistribute the original or modified project in any form.
248+
* [x] **Any kind of usage allowed** — personal, educational, or commercial use and modification is permitted.
249+
* [ ] **Redistribution prohibited** — you may not redistribute the original or modified project in any form.
283250

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

0 commit comments

Comments
 (0)