Skip to content

Commit b8a86b9

Browse files
moehajeDimillian
andauthored
feat: Add on-device dictation with Whisper (#68)
Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
1 parent f12e38f commit b8a86b9

31 files changed

Lines changed: 3130 additions & 42 deletions

.github/workflows/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ jobs:
1212
steps:
1313
- uses: actions/checkout@v4
1414
- uses: dtolnay/rust-toolchain@stable
15+
- name: Install CMake
16+
run: command -v cmake >/dev/null 2>&1 || brew install cmake
1517
- name: Rust tests
1618
run: cargo test
1719
working-directory: src-tauri
@@ -24,6 +26,8 @@ jobs:
2426
node-version: "20"
2527
cache: "npm"
2628
- uses: dtolnay/rust-toolchain@stable
29+
- name: Install CMake
30+
run: command -v cmake >/dev/null 2>&1 || brew install cmake
2731
- name: Install dependencies
2832
run: npm ci
2933
- name: Typecheck

.github/workflows/release.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ jobs:
3838
with:
3939
workspaces: './src-tauri -> target'
4040

41+
- name: Install CMake
42+
run: brew install cmake
43+
4144
- name: Install dependencies
4245
run: npm ci
4346

@@ -178,7 +181,7 @@ jobs:
178181
- name: install dependencies (linux only)
179182
run: |
180183
sudo apt-get update
181-
sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf libfuse2 xdg-utils
184+
sudo apt-get install -y cmake libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf libfuse2 xdg-utils
182185
183186
- name: setup node
184187
uses: actions/setup-node@v4

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,17 @@ CodexMonitor is a macOS Tauri app for orchestrating multiple Codex agents across
2828

2929
- Node.js + npm
3030
- Rust toolchain (stable)
31+
- CMake (required to build native Whisper bindings)
3132
- Codex installed on your system and available as `codex` in `PATH`
3233
- Git CLI (used for worktree operations)
3334
- GitHub CLI (`gh`) for the Issues panel (optional)
3435

3536
If the `codex` binary is not in `PATH`, update the backend to pass a custom path per workspace.
37+
If you hit native build errors, run:
38+
39+
```bash
40+
npm run doctor
41+
```
3642

3743
## Getting Started
3844

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@
77
"dev": "vite",
88
"build": "tsc && vite build",
99
"build:appimage": "NO_STRIP=1 tauri build --bundles appimage",
10+
"doctor": "sh scripts/doctor.sh",
11+
"doctor:strict": "sh scripts/doctor.sh --strict",
1012
"typecheck": "tsc --noEmit",
1113
"preview": "vite preview",
12-
"tauri": "tauri"
14+
"tauri": "tauri",
15+
"tauri:dev": "npm run doctor:strict && tauri dev",
16+
"tauri:build": "npm run doctor:strict && tauri build"
1317
},
1418
"dependencies": {
1519
"@tauri-apps/api": "^2",

scripts/doctor.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env sh
2+
set -u
3+
4+
STRICT=0
5+
if [ "${1:-}" = "--strict" ]; then
6+
STRICT=1
7+
fi
8+
9+
missing=""
10+
if ! command -v cmake >/dev/null 2>&1; then
11+
missing="cmake"
12+
fi
13+
14+
if [ -z "$missing" ]; then
15+
echo "Doctor: OK"
16+
exit 0
17+
fi
18+
19+
echo "Doctor: missing dependencies: $missing"
20+
21+
case "$(uname -s)" in
22+
Darwin)
23+
echo "Install: brew install cmake"
24+
;;
25+
Linux)
26+
echo "Ubuntu/Debian: sudo apt-get install cmake"
27+
echo "Fedora: sudo dnf install cmake"
28+
echo "Arch: sudo pacman -S cmake"
29+
;;
30+
MINGW*|MSYS*|CYGWIN*)
31+
echo "Install: choco install cmake"
32+
echo "Or download from: https://cmake.org/download/"
33+
;;
34+
*)
35+
echo "Install CMake from: https://cmake.org/download/"
36+
;;
37+
esac
38+
39+
if [ "$STRICT" -eq 1 ]; then
40+
exit 1
41+
fi
42+
43+
exit 0

0 commit comments

Comments
 (0)