meeting-noter 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. meeting_noter-0.3.0/PKG-INFO +261 -0
  2. meeting_noter-0.3.0/README.md +218 -0
  3. meeting_noter-0.3.0/pyproject.toml +75 -0
  4. meeting_noter-0.3.0/setup.cfg +4 -0
  5. meeting_noter-0.3.0/src/meeting_noter/__init__.py +3 -0
  6. meeting_noter-0.3.0/src/meeting_noter/__main__.py +6 -0
  7. meeting_noter-0.3.0/src/meeting_noter/audio/__init__.py +1 -0
  8. meeting_noter-0.3.0/src/meeting_noter/audio/capture.py +209 -0
  9. meeting_noter-0.3.0/src/meeting_noter/audio/encoder.py +176 -0
  10. meeting_noter-0.3.0/src/meeting_noter/audio/system_audio.py +363 -0
  11. meeting_noter-0.3.0/src/meeting_noter/cli.py +308 -0
  12. meeting_noter-0.3.0/src/meeting_noter/config.py +197 -0
  13. meeting_noter-0.3.0/src/meeting_noter/daemon.py +514 -0
  14. meeting_noter-0.3.0/src/meeting_noter/gui/__init__.py +5 -0
  15. meeting_noter-0.3.0/src/meeting_noter/gui/__main__.py +6 -0
  16. meeting_noter-0.3.0/src/meeting_noter/gui/app.py +53 -0
  17. meeting_noter-0.3.0/src/meeting_noter/gui/main_window.py +50 -0
  18. meeting_noter-0.3.0/src/meeting_noter/gui/meetings_tab.py +348 -0
  19. meeting_noter-0.3.0/src/meeting_noter/gui/recording_tab.py +358 -0
  20. meeting_noter-0.3.0/src/meeting_noter/gui/settings_tab.py +249 -0
  21. meeting_noter-0.3.0/src/meeting_noter/install/__init__.py +1 -0
  22. meeting_noter-0.3.0/src/meeting_noter/install/macos.py +102 -0
  23. meeting_noter-0.3.0/src/meeting_noter/meeting_detector.py +296 -0
  24. meeting_noter-0.3.0/src/meeting_noter/menubar.py +432 -0
  25. meeting_noter-0.3.0/src/meeting_noter/output/__init__.py +1 -0
  26. meeting_noter-0.3.0/src/meeting_noter/output/writer.py +96 -0
  27. meeting_noter-0.3.0/src/meeting_noter/resources/__init__.py +1 -0
  28. meeting_noter-0.3.0/src/meeting_noter/resources/icon.icns +0 -0
  29. meeting_noter-0.3.0/src/meeting_noter/resources/icon.png +0 -0
  30. meeting_noter-0.3.0/src/meeting_noter/resources/icon_128.png +0 -0
  31. meeting_noter-0.3.0/src/meeting_noter/resources/icon_16.png +0 -0
  32. meeting_noter-0.3.0/src/meeting_noter/resources/icon_256.png +0 -0
  33. meeting_noter-0.3.0/src/meeting_noter/resources/icon_32.png +0 -0
  34. meeting_noter-0.3.0/src/meeting_noter/resources/icon_512.png +0 -0
  35. meeting_noter-0.3.0/src/meeting_noter/resources/icon_64.png +0 -0
  36. meeting_noter-0.3.0/src/meeting_noter/transcription/__init__.py +1 -0
  37. meeting_noter-0.3.0/src/meeting_noter/transcription/engine.py +208 -0
  38. meeting_noter-0.3.0/src/meeting_noter.egg-info/PKG-INFO +261 -0
  39. meeting_noter-0.3.0/src/meeting_noter.egg-info/SOURCES.txt +41 -0
  40. meeting_noter-0.3.0/src/meeting_noter.egg-info/dependency_links.txt +1 -0
  41. meeting_noter-0.3.0/src/meeting_noter.egg-info/entry_points.txt +2 -0
  42. meeting_noter-0.3.0/src/meeting_noter.egg-info/requires.txt +22 -0
  43. meeting_noter-0.3.0/src/meeting_noter.egg-info/top_level.txt +1 -0
@@ -0,0 +1,261 @@
1
+ Metadata-Version: 2.4
2
+ Name: meeting-noter
3
+ Version: 0.3.0
4
+ Summary: Offline meeting transcription for macOS with automatic meeting detection
5
+ Author: Victor
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/tech4vision/meeting-noter
8
+ Project-URL: Repository, https://github.com/tech4vision/meeting-noter
9
+ Project-URL: Issues, https://github.com/tech4vision/meeting-noter/issues
10
+ Keywords: meeting,transcription,whisper,offline,speech-to-text,audio
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: End Users/Desktop
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: MacOS
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
22
+ Requires-Python: >=3.9
23
+ Description-Content-Type: text/markdown
24
+ Requires-Dist: click>=8.0
25
+ Requires-Dist: sounddevice>=0.4.6
26
+ Requires-Dist: numpy>=1.21
27
+ Requires-Dist: faster-whisper>=1.0.0
28
+ Requires-Dist: lameenc>=1.5.0
29
+ Requires-Dist: rumps>=0.4.0
30
+ Requires-Dist: PyQt6>=6.5.0
31
+ Requires-Dist: pyobjc-framework-Cocoa>=9.0; sys_platform == "darwin"
32
+ Requires-Dist: pyobjc-framework-Quartz>=9.0; sys_platform == "darwin"
33
+ Requires-Dist: pyobjc-framework-ScreenCaptureKit>=9.0; sys_platform == "darwin"
34
+ Requires-Dist: pyobjc-framework-AVFoundation>=9.0; sys_platform == "darwin"
35
+ Requires-Dist: pyobjc-framework-CoreMedia>=9.0; sys_platform == "darwin"
36
+ Requires-Dist: pyobjc-framework-libdispatch>=9.0; sys_platform == "darwin"
37
+ Provides-Extra: dev
38
+ Requires-Dist: pytest>=7.0; extra == "dev"
39
+ Requires-Dist: pytest-cov; extra == "dev"
40
+ Requires-Dist: black; extra == "dev"
41
+ Requires-Dist: ruff; extra == "dev"
42
+ Requires-Dist: mypy; extra == "dev"
43
+
44
+ # Meeting Noter
45
+
46
+ Offline meeting transcription tool for macOS. Captures both your voice and meeting participants' audio, saves to MP3, and transcribes locally using Whisper.
47
+
48
+ ## Features
49
+
50
+ - **No virtual audio devices needed** - Uses ScreenCaptureKit (like Notion, Discord)
51
+ - **Captures both sides** - Your mic + system audio (meeting participants)
52
+ - **Offline transcription** - Uses Whisper locally, no API calls
53
+ - **Auto-detection** - Detects active meetings (Zoom, Teams, Meet, Slack)
54
+ - **Multiple interfaces** - Menu bar app, desktop GUI, or CLI
55
+ - **Auto-segmentation** - One file per meeting (detects silence)
56
+
57
+ ## Installation
58
+
59
+ ### Option 1: Using pipx (Recommended)
60
+
61
+ ```bash
62
+ # Install pipx if you don't have it
63
+ brew install pipx
64
+ pipx ensurepath
65
+
66
+ # Install meeting-noter
67
+ cd /path/to/meeting-noter
68
+ pipx install -e .
69
+ ```
70
+
71
+ ### Option 2: Using a virtual environment
72
+
73
+ ```bash
74
+ cd /path/to/meeting-noter
75
+ python3 -m venv .venv
76
+ .venv/bin/pip install --upgrade pip
77
+ .venv/bin/pip install -e .
78
+ ```
79
+
80
+ Then add an alias in your `~/.zshrc`:
81
+
82
+ ```bash
83
+ echo 'alias meeting-noter="/path/to/meeting-noter/.venv/bin/meeting-noter"' >> ~/.zshrc
84
+ source ~/.zshrc
85
+ ```
86
+
87
+ ## Quick Start
88
+
89
+ ### 1. One-time Setup
90
+
91
+ ```bash
92
+ meeting-noter setup
93
+ ```
94
+
95
+ This will request Screen Recording permission, which is needed to capture meeting participants' audio.
96
+
97
+ ### 2. Launch the App
98
+
99
+ **Menu Bar App** (recommended):
100
+ ```bash
101
+ meeting-noter menubar
102
+ ```
103
+
104
+ **Desktop GUI**:
105
+ ```bash
106
+ meeting-noter gui
107
+ ```
108
+
109
+ **CLI Recording**:
110
+ ```bash
111
+ meeting-noter start "Weekly Standup"
112
+ ```
113
+
114
+ ### 3. Record a Meeting
115
+
116
+ - The menu bar app auto-detects meetings and prompts to record
117
+ - Or manually start recording via the GUI/CLI
118
+ - Press Ctrl+C (CLI) or click Stop to end recording
119
+
120
+ ### 4. Transcribe
121
+
122
+ Recordings are auto-transcribed by default. Or manually:
123
+
124
+ ```bash
125
+ # Transcribe the most recent recording
126
+ meeting-noter transcribe
127
+
128
+ # Transcribe a specific file
129
+ meeting-noter transcribe recording.mp3
130
+
131
+ # List all recordings
132
+ meeting-noter list
133
+ ```
134
+
135
+ ## Commands
136
+
137
+ | Command | Description |
138
+ |---------|-------------|
139
+ | `meeting-noter setup` | One-time setup (Screen Recording permission) |
140
+ | `meeting-noter menubar` | Launch menu bar app |
141
+ | `meeting-noter gui` | Launch desktop GUI |
142
+ | `meeting-noter start [name]` | Interactive CLI recording |
143
+ | `meeting-noter daemon` | Start background audio capture |
144
+ | `meeting-noter status` | Check daemon status |
145
+ | `meeting-noter stop` | Stop the daemon |
146
+ | `meeting-noter list` | List recent recordings |
147
+ | `meeting-noter transcribe` | Transcribe a recording |
148
+ | `meeting-noter devices` | List audio devices |
149
+
150
+ ## Options
151
+
152
+ ### `start`
153
+ - First argument: Meeting name (optional, auto-generates timestamp if omitted)
154
+
155
+ ### `daemon`
156
+ - `-o, --output-dir`: Where to save recordings (default: `~/meetings`)
157
+ - `-f, --foreground`: Run in foreground instead of background
158
+ - `-n, --name`: Meeting name for the recording
159
+
160
+ ### `transcribe`
161
+ - `-m, --model`: Whisper model size (tiny.en, base.en, small.en, medium.en, large-v3)
162
+ - `-l, --live`: Real-time transcription (experimental)
163
+ - `-o, --output-dir`: Directory with recordings
164
+
165
+ ### `list`
166
+ - `-n, --limit`: Number of recordings to show
167
+ - `-o, --output-dir`: Directory with recordings
168
+
169
+ ## How It Works
170
+
171
+ ```
172
+ ┌─────────────────────────────────────┐
173
+ │ Your Meeting App │
174
+ │ (Zoom/Teams/Meet/Slack) │
175
+ └──────────────────┬──────────────────┘
176
+
177
+ ┌─────────────┴─────────────┐
178
+ ▼ ▼
179
+ ┌─────────┐ ┌─────────────┐
180
+ │ Mic │ │ System Audio│
181
+ │(default)│ │(ScreenCaptureKit)
182
+ └────┬────┘ └──────┬──────┘
183
+ │ │
184
+ └───────────┬───────────────┘
185
+
186
+ ┌─────────────┐
187
+ │Meeting Noter│
188
+ │ (capture) │
189
+ └──────┬──────┘
190
+
191
+
192
+ ~/meetings/2024-01-15_Weekly_Standup.mp3
193
+
194
+ ▼ (auto or on-demand)
195
+ ┌─────────────┐
196
+ │ Whisper │ (local)
197
+ └──────┬──────┘
198
+
199
+
200
+ ~/meetings/2024-01-15_Weekly_Standup.txt
201
+ ```
202
+
203
+ ## Permissions Required
204
+
205
+ 1. **Microphone** - For capturing your voice
206
+ 2. **Screen Recording** - For capturing system audio (meeting participants)
207
+ - Grant in: System Settings > Privacy & Security > Screen Recording
208
+ - This uses ScreenCaptureKit, the same API used by Notion, Discord, etc.
209
+
210
+ ## Troubleshooting
211
+
212
+ ### No system audio captured (only my voice)
213
+
214
+ Screen Recording permission not granted. Go to:
215
+ System Settings > Privacy & Security > Screen Recording
216
+
217
+ Enable the toggle for Terminal (or your IDE/app).
218
+
219
+ ### Meeting not auto-detected
220
+
221
+ Meeting detection works for: Zoom, Microsoft Teams, Google Meet, Slack.
222
+ The meeting window must be open (not minimized).
223
+
224
+ ### Transcription is slow
225
+
226
+ Use a smaller model:
227
+
228
+ ```bash
229
+ meeting-noter transcribe --model tiny.en
230
+ ```
231
+
232
+ Model sizes:
233
+ - `tiny.en` (~75MB) - Fastest, good for most cases
234
+ - `base.en` (~150MB) - Better accuracy
235
+ - `small.en` (~500MB) - High accuracy
236
+ - `medium.en` (~1.5GB) - Very high accuracy
237
+ - `large-v3` (~3GB) - Best accuracy
238
+
239
+ ## Configuration
240
+
241
+ Config file: `~/.config/meeting-noter/config.json`
242
+
243
+ ```json
244
+ {
245
+ "recordings_dir": "~/meetings",
246
+ "transcripts_dir": "~/meetings",
247
+ "whisper_model": "tiny.en",
248
+ "auto_transcribe": true,
249
+ "silence_timeout": 5,
250
+ "capture_system_audio": true
251
+ }
252
+ ```
253
+
254
+ ## Requirements
255
+
256
+ - macOS 12.3+ (for ScreenCaptureKit)
257
+ - Python 3.9+
258
+
259
+ ## License
260
+
261
+ MIT
@@ -0,0 +1,218 @@
1
+ # Meeting Noter
2
+
3
+ Offline meeting transcription tool for macOS. Captures both your voice and meeting participants' audio, saves to MP3, and transcribes locally using Whisper.
4
+
5
+ ## Features
6
+
7
+ - **No virtual audio devices needed** - Uses ScreenCaptureKit (like Notion, Discord)
8
+ - **Captures both sides** - Your mic + system audio (meeting participants)
9
+ - **Offline transcription** - Uses Whisper locally, no API calls
10
+ - **Auto-detection** - Detects active meetings (Zoom, Teams, Meet, Slack)
11
+ - **Multiple interfaces** - Menu bar app, desktop GUI, or CLI
12
+ - **Auto-segmentation** - One file per meeting (detects silence)
13
+
14
+ ## Installation
15
+
16
+ ### Option 1: Using pipx (Recommended)
17
+
18
+ ```bash
19
+ # Install pipx if you don't have it
20
+ brew install pipx
21
+ pipx ensurepath
22
+
23
+ # Install meeting-noter
24
+ cd /path/to/meeting-noter
25
+ pipx install -e .
26
+ ```
27
+
28
+ ### Option 2: Using a virtual environment
29
+
30
+ ```bash
31
+ cd /path/to/meeting-noter
32
+ python3 -m venv .venv
33
+ .venv/bin/pip install --upgrade pip
34
+ .venv/bin/pip install -e .
35
+ ```
36
+
37
+ Then add an alias in your `~/.zshrc`:
38
+
39
+ ```bash
40
+ echo 'alias meeting-noter="/path/to/meeting-noter/.venv/bin/meeting-noter"' >> ~/.zshrc
41
+ source ~/.zshrc
42
+ ```
43
+
44
+ ## Quick Start
45
+
46
+ ### 1. One-time Setup
47
+
48
+ ```bash
49
+ meeting-noter setup
50
+ ```
51
+
52
+ This will request Screen Recording permission, which is needed to capture meeting participants' audio.
53
+
54
+ ### 2. Launch the App
55
+
56
+ **Menu Bar App** (recommended):
57
+ ```bash
58
+ meeting-noter menubar
59
+ ```
60
+
61
+ **Desktop GUI**:
62
+ ```bash
63
+ meeting-noter gui
64
+ ```
65
+
66
+ **CLI Recording**:
67
+ ```bash
68
+ meeting-noter start "Weekly Standup"
69
+ ```
70
+
71
+ ### 3. Record a Meeting
72
+
73
+ - The menu bar app auto-detects meetings and prompts to record
74
+ - Or manually start recording via the GUI/CLI
75
+ - Press Ctrl+C (CLI) or click Stop to end recording
76
+
77
+ ### 4. Transcribe
78
+
79
+ Recordings are auto-transcribed by default. Or manually:
80
+
81
+ ```bash
82
+ # Transcribe the most recent recording
83
+ meeting-noter transcribe
84
+
85
+ # Transcribe a specific file
86
+ meeting-noter transcribe recording.mp3
87
+
88
+ # List all recordings
89
+ meeting-noter list
90
+ ```
91
+
92
+ ## Commands
93
+
94
+ | Command | Description |
95
+ |---------|-------------|
96
+ | `meeting-noter setup` | One-time setup (Screen Recording permission) |
97
+ | `meeting-noter menubar` | Launch menu bar app |
98
+ | `meeting-noter gui` | Launch desktop GUI |
99
+ | `meeting-noter start [name]` | Interactive CLI recording |
100
+ | `meeting-noter daemon` | Start background audio capture |
101
+ | `meeting-noter status` | Check daemon status |
102
+ | `meeting-noter stop` | Stop the daemon |
103
+ | `meeting-noter list` | List recent recordings |
104
+ | `meeting-noter transcribe` | Transcribe a recording |
105
+ | `meeting-noter devices` | List audio devices |
106
+
107
+ ## Options
108
+
109
+ ### `start`
110
+ - First argument: Meeting name (optional, auto-generates timestamp if omitted)
111
+
112
+ ### `daemon`
113
+ - `-o, --output-dir`: Where to save recordings (default: `~/meetings`)
114
+ - `-f, --foreground`: Run in foreground instead of background
115
+ - `-n, --name`: Meeting name for the recording
116
+
117
+ ### `transcribe`
118
+ - `-m, --model`: Whisper model size (tiny.en, base.en, small.en, medium.en, large-v3)
119
+ - `-l, --live`: Real-time transcription (experimental)
120
+ - `-o, --output-dir`: Directory with recordings
121
+
122
+ ### `list`
123
+ - `-n, --limit`: Number of recordings to show
124
+ - `-o, --output-dir`: Directory with recordings
125
+
126
+ ## How It Works
127
+
128
+ ```
129
+ ┌─────────────────────────────────────┐
130
+ │ Your Meeting App │
131
+ │ (Zoom/Teams/Meet/Slack) │
132
+ └──────────────────┬──────────────────┘
133
+
134
+ ┌─────────────┴─────────────┐
135
+ ▼ ▼
136
+ ┌─────────┐ ┌─────────────┐
137
+ │ Mic │ │ System Audio│
138
+ │(default)│ │(ScreenCaptureKit)
139
+ └────┬────┘ └──────┬──────┘
140
+ │ │
141
+ └───────────┬───────────────┘
142
+
143
+ ┌─────────────┐
144
+ │Meeting Noter│
145
+ │ (capture) │
146
+ └──────┬──────┘
147
+
148
+
149
+ ~/meetings/2024-01-15_Weekly_Standup.mp3
150
+
151
+ ▼ (auto or on-demand)
152
+ ┌─────────────┐
153
+ │ Whisper │ (local)
154
+ └──────┬──────┘
155
+
156
+
157
+ ~/meetings/2024-01-15_Weekly_Standup.txt
158
+ ```
159
+
160
+ ## Permissions Required
161
+
162
+ 1. **Microphone** - For capturing your voice
163
+ 2. **Screen Recording** - For capturing system audio (meeting participants)
164
+ - Grant in: System Settings > Privacy & Security > Screen Recording
165
+ - This uses ScreenCaptureKit, the same API used by Notion, Discord, etc.
166
+
167
+ ## Troubleshooting
168
+
169
+ ### No system audio captured (only my voice)
170
+
171
+ Screen Recording permission not granted. Go to:
172
+ System Settings > Privacy & Security > Screen Recording
173
+
174
+ Enable the toggle for Terminal (or your IDE/app).
175
+
176
+ ### Meeting not auto-detected
177
+
178
+ Meeting detection works for: Zoom, Microsoft Teams, Google Meet, Slack.
179
+ The meeting window must be open (not minimized).
180
+
181
+ ### Transcription is slow
182
+
183
+ Use a smaller model:
184
+
185
+ ```bash
186
+ meeting-noter transcribe --model tiny.en
187
+ ```
188
+
189
+ Model sizes:
190
+ - `tiny.en` (~75MB) - Fastest, good for most cases
191
+ - `base.en` (~150MB) - Better accuracy
192
+ - `small.en` (~500MB) - High accuracy
193
+ - `medium.en` (~1.5GB) - Very high accuracy
194
+ - `large-v3` (~3GB) - Best accuracy
195
+
196
+ ## Configuration
197
+
198
+ Config file: `~/.config/meeting-noter/config.json`
199
+
200
+ ```json
201
+ {
202
+ "recordings_dir": "~/meetings",
203
+ "transcripts_dir": "~/meetings",
204
+ "whisper_model": "tiny.en",
205
+ "auto_transcribe": true,
206
+ "silence_timeout": 5,
207
+ "capture_system_audio": true
208
+ }
209
+ ```
210
+
211
+ ## Requirements
212
+
213
+ - macOS 12.3+ (for ScreenCaptureKit)
214
+ - Python 3.9+
215
+
216
+ ## License
217
+
218
+ MIT
@@ -0,0 +1,75 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "meeting-noter"
7
+ version = "0.3.0"
8
+ description = "Offline meeting transcription for macOS with automatic meeting detection"
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ requires-python = ">=3.9"
12
+ authors = [
13
+ {name = "Victor"}
14
+ ]
15
+ keywords = ["meeting", "transcription", "whisper", "offline", "speech-to-text", "audio"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Environment :: Console",
19
+ "Intended Audience :: End Users/Desktop",
20
+ "License :: OSI Approved :: MIT License",
21
+ "Operating System :: MacOS",
22
+ "Programming Language :: Python :: 3",
23
+ "Programming Language :: Python :: 3.9",
24
+ "Programming Language :: Python :: 3.10",
25
+ "Programming Language :: Python :: 3.11",
26
+ "Programming Language :: Python :: 3.12",
27
+ "Topic :: Multimedia :: Sound/Audio :: Speech",
28
+ ]
29
+
30
+ dependencies = [
31
+ "click>=8.0",
32
+ "sounddevice>=0.4.6",
33
+ "numpy>=1.21",
34
+ "faster-whisper>=1.0.0",
35
+ "lameenc>=1.5.0",
36
+ "rumps>=0.4.0",
37
+ "PyQt6>=6.5.0",
38
+ "pyobjc-framework-Cocoa>=9.0; sys_platform == 'darwin'",
39
+ "pyobjc-framework-Quartz>=9.0; sys_platform == 'darwin'",
40
+ "pyobjc-framework-ScreenCaptureKit>=9.0; sys_platform == 'darwin'",
41
+ "pyobjc-framework-AVFoundation>=9.0; sys_platform == 'darwin'",
42
+ "pyobjc-framework-CoreMedia>=9.0; sys_platform == 'darwin'",
43
+ "pyobjc-framework-libdispatch>=9.0; sys_platform == 'darwin'",
44
+ ]
45
+
46
+ [project.optional-dependencies]
47
+ dev = [
48
+ "pytest>=7.0",
49
+ "pytest-cov",
50
+ "black",
51
+ "ruff",
52
+ "mypy",
53
+ ]
54
+
55
+ [project.scripts]
56
+ meeting-noter = "meeting_noter.cli:cli"
57
+
58
+ [project.urls]
59
+ Homepage = "https://github.com/tech4vision/meeting-noter"
60
+ Repository = "https://github.com/tech4vision/meeting-noter"
61
+ Issues = "https://github.com/tech4vision/meeting-noter/issues"
62
+
63
+ [tool.setuptools.packages.find]
64
+ where = ["src"]
65
+
66
+ [tool.setuptools.package-data]
67
+ meeting_noter = ["resources/*.png", "resources/*.icns"]
68
+
69
+ [tool.black]
70
+ line-length = 100
71
+ target-version = ["py39", "py310", "py311", "py312"]
72
+
73
+ [tool.ruff]
74
+ line-length = 100
75
+ select = ["E", "F", "I", "N", "W"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ """Meeting Noter - Offline meeting transcription with virtual audio devices."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,6 @@
1
+ """Entry point for python -m meeting_noter."""
2
+
3
+ from meeting_noter.cli import cli
4
+
5
+ if __name__ == "__main__":
6
+ cli()
@@ -0,0 +1 @@
1
+ """Audio capture and processing modules."""