<!-- Copyright 2026 NX1X. Licensed under the Apache License, Version 2.0. -->
<!-- Generated from public/he/docs.html by scripts/docs-to-md.py. Do not edit by hand. -->

# תיעוד OpenMila

כל מה שצריך כדי להתקין את OpenMila על Linux או Windows ולהשתמש בה יום יום, ואחריו מדריך מהיר לסוכן AI שרוצה לקרוא את התמלולים שלכם דרך MCP. כל טענה כאן נשאבת מהמאגר של הפורט עצמו, ושום דבר בעמוד הזה לא חורג ממה ש[טבלת ההשוואה](https://github.com/NX1X/OpenMila/blob/main/docs/port/PARITY.md) אומרת.

**איפה הדברים עומדים.** ‏OpenMila יוצאת כבטא שעוקבת אחרי הבטא של Mila עצמה. Linux היא פלטפורמת הפיתוח, והתכונות שלה נושאות ראיה ישירה. Windows נבנית ונבדקת על ריצת `windows-2025` ב-CI, שם תהליך האריזה מפעיל את האפליקציה עצמה לפני שהוא כותב חבילה; בדיקה ידנית על שולחן עבודה של Windows רק החלה, כך שתכונות Windows מסומנות ככתובות ולא כמוכנות עד שזה ישתווה.

## התקנת OpenMila

שלוש חבילות: AppImage וחבילת `.deb` עבור Linux, ו-zip נייד עבור Windows. על Mac, השתמשו במקור, [Mila](https://github.com/island-io/mila). ‏OpenMila לא נבנית עבור macOS ולא מנסה לעשות זאת.

### Linux: ה-AppImage

קובץ יחיד, ללא התקנה. נבדק על Ubuntu 26.04‏ (GNOME, גם ב-Wayland וגם ב-X11); שולחנות עבודה נוכחיים אחרים עם GTK 4 צפויים לעבוד. הורידו את `OpenMila-<version>-x86_64.AppImage` ואת קובץ ה-`.sha256` שלידו, ואז בדקו אותו:

```
sha256sum -c OpenMila-<version>-x86_64.AppImage.sha256
```

הפכו אותו להרצה והריצו:

```
chmod +x OpenMila-<version>-x86_64.AppImage
./OpenMila-<version>-x86_64.AppImage
```

אם הוא מתלונן על FUSE, הריצו אותו עם `--appimage-extract-and-run`, או התקינו `libfuse2t64`. ה-AppImage מתעדכן בעצמו: הוא בודק את ה-SHA-256 שפורסם ומחליף את הקובץ הרץ, ויש לו ערוץ בטא עם הגנת טרום-שחרור.

### Linux: חבילת ה-Debian

`openmila_<version>_amd64.deb` נבנית מאותו תוכן כמו ה-AppImage וכוללת קובץ `.sha256` משלה. בדקו אותה, ואז התקינו אותה עם מנהל החבילות כך שהתלויות יגיעו איתה:

```
sha256sum -c openmila_<version>_amd64.deb.sha256
sudo apt install ./openmila_<version>_amd64.deb
```

החבילה שמה את התוכן שלה ב-`/opt/openmila/` ושלושה מפעילים ב-`PATH` שלכם: `openmila` עבור האפליקציה, `openmila-cli` עבור הרתמה חסרת הממשק, ו- `openmila-mcp` עבור [שרת ה-MCP](https://openmila.nx1xlab.dev/he/docs#agents). התקנת `.deb` לא מתעדכנת בעצמה: עדכון שייך למנהל החבילות, כך שהאפליקציה מפנה אתכם חזרה לעמוד הגרסאות.

### Windows: ה-zip הנייד

‏Windows 11, ו-Windows 10 22H2, על x64. הורידו את `OpenMila-<version>-win64.zip` ובדקו אותו מול קובץ ה-`.sha256` שלידו:

```
(Get-FileHash OpenMila-<version>-win64.zip -Algorithm SHA256).Hash
```

בטלו את החסימה וחלצו לכל מקום, ואז הריצו את `openmila.exe`. שום דבר אחר לא צריך להתקין: ה- Swift runtime ומנוע התמלול נוסעים עם האפליקציה. `openmila-cli.exe` ו-`openmila-mcp.exe` יושבים לידה באותה תיקייה. ל-zip אין התקנה עצמית, כך שעדכון הוא הורדה חדשה.

### מה כל מערכת צריכה שיהיה קיים

- **Linux, נדרש**
  ‏GTK 4 ו-libadwaita,‏ libsecret,‏ GLib,‏ zlib, ו-PipeWire או PulseAudio עבור אודיו. ה-`.deb` מצהירה עליהם כ-`libgtk-4-1`,‏ `libadwaita-1-0`,‏ `libsecret-1-0`,‏ `libglib2.0-0`,‏ `libc6` ו-`zlib1g`.
- **Linux, להקלטת אודיו של אפליקציה אחת**
  הכלים של PipeWire עצמה, חבילת `pipewire-bin`, שמספקת את `pw-dump` ואת `pw-record`. ברוב התקנות PipeWire הם כבר קיימים. בלעדיהם, בורר המקורות עדיין מציע את מוניטורי המערכת כולה, כך שאפשר להקליט כל מה שהמחשב מנגן אבל לא אפליקציה בודדת בפני עצמה.
- **Linux, למקשי קיצור גלובליים להכתבה**
  שום דבר נוסף. `XGrabKey` משמש בכל מקום שבו תצוגת X עונה, כולל XWayland, וה-portal ‏XDG `GlobalShortcuts` בסשן Wayland טהור; שני הנתיבים נבחרים מעצמם. ראו [הכתבה](https://openmila.nx1xlab.dev/he/docs#dictation).
- **Linux, להכתבה שמדביקה בעצמה**
  ‏`xdotool` או `wtype` להדבקה במיקום הסמן, ובנוסף `wl-clipboard` או `xclip` עבור לוח הגזירה. בסשן Wayland, ‏OpenMila יכולה להשתמש ב-portal‏ `RemoteDesktop` במקום, ברגע שתאשרו זאת. בלי אף אחד מאלה, הטקסט המוכתב עדיין מגיע ללוח הגזירה והתראה אומרת לכם ללחוץ Ctrl+V.
- **Linux, אופציונלי**
  ‏`ffmpeg`, עבור הקלטות `.m4a` קומפקטיות, מנגנון התמלול המרוחק, וייבוא אודיו שאינו WAV. ‏GStreamer משמש כשאין ffmpeg, מה שכמעט תמיד קיים בהתקנת GNOME או KDE. `libnotify-bin` עבור התראות שולחן עבודה.
- **Windows**
  שום דבר. כל מה שהאפליקציה צריכה נוסע בתוך ה-zip.

### אימות מה שהורדתם

כל גרסה מפרסמת קובץ `SHA256SUMS` יחיד שמכסה את כל הקבצים שלה, לצד קובצי `.sha256` לכל קובץ בנפרד. הורידו אותו מהגרסה ובדקו את הקבצים שיש לכם:

```
sha256sum --ignore-missing -c SHA256SUMS
```

צינור הגרסאות גם מאשר (attest) מה הוא בנה, כך שתוכלו לוודא שקובץ הגיע מזרימת העבודה של המאגר הזה ולא ממקום אחר. עם [GitHub CLI](https://cli.github.com/) מותקן:

```
gh attestation verify OpenMila-<version>-x86_64.AppImage --repo NX1X/OpenMila
```

אותה פקודה עובדת עבור הקבצים האחרים, גם ב-Windows:

```
gh attestation verify .\OpenMila-<version>-win64.zip --repo NX1X/OpenMila
```

אם hash או attestation לא עוברים אימות, אל תריצו את הקובץ, ואנא [דווחו על כך באופן פרטי](https://github.com/NX1X/OpenMila/security/advisories/new).

## הסרת התקנה וניקוי מלא

הסרת OpenMila מסירה את התוכנית. היא לא מסירה את ההקלטות, התמלולים, המודלים או ההגדרות שלכם. מחיקת אלה היא בקשה נפרדת ומפורשת, שנקראת למטה "ניקוי מלא" (purge).

### Windows

‏Installed Apps, ואז Uninstall. זה מסיר את התוכנית מ- `%LOCALAPPDATA%\Programs\OpenMila`, את הקיצורים, את השיוך ל-`.milaconfig`, כל רשומת הפעלה אוטומטית ואת המטמון הניתן ליצירה מחדש. לאחר מכן זה שואל, פעם אחת, האם למחוק גם את הנתונים שלכם; התשובה כברירת מחדל היא לא. שום דבר תחת `%APPDATA%\Mila` לא נמחק אלא אם תגידו כן.

ה-zip הנייד לא מתקין כלום, כך שהסרתו היא מחיקת התיקייה. הנתונים שלכם נמצאים במקום אחר ונשארים.

### Linux

```
sudo apt remove openmila          # the .deb
openmila-uninstall                # desktop entry, icons, autostart, MCP
openmila-uninstall --purge        # also deletes your data, after asking
```

‏`apt remove` ואפילו `apt purge` משאירים את `~/.local/share/Mila` ואת `~/.config` בשלמותם: סקריפט חבילה רץ כ-root ואין לו דרך בטוחה להחליט של איזה משתמש נתונים למחוק. ה-AppImage הוא קובץ יחיד, כך שמחיקתו היא ההסרה; הריצו `openmila-uninstall` קודם אם השתמשתם ב- `--install` כדי להוסיף רשומת מפעיל.

### איפה הנתונים שלכם נמצאים

*Kept unless you ask for a purge*
| What | Linux | Windows |
| --- | --- | --- |
| Recordings, transcripts, models | `~/.local/share/Mila/` | `%APPDATA%\Mila\` |
| Settings | `~/.local/share/Mila/` and `~/.config/` | `%APPDATA%\Mila\` and a preferences file under `%LOCALAPPDATA%` |
| Logs | `~/.local/state/openmila/logs/` | `%LOCALAPPDATA%\OpenMila\logs\` |
| The program itself (removed) | `/usr/lib/openmila` or wherever the AppImage sits | `%LOCALAPPDATA%\Programs\OpenMila\` |

פירוט מלא, כולל המטמון והכספת: [docs/port/INSTALL.md](https://github.com/NX1X/OpenMila/blob/main/docs/port/INSTALL.md).

## חומרה ו-GPU

ל-Mila על Mac יש שני מאיצים שהיא יכולה לסמוך עליהם, כי Apple מספקת אותם בכל מחשב שהיא תומכת בו: ה-GPU דרך Metal, וה-Neural Engine דרך מקודד CoreML. ל-Linux ול-Windows אין מקבילה שתמיד קיימת, כך שהכלל של הפורט הוא: לעבוד תמיד על ה-CPU, ולהשתמש ב-GPU כשמתברר שיש למחשב אחד שמיש.

*Which cards count as a GPU here*
| Vendor | Linux driver | Windows driver | Counted as |
| --- | --- | --- | --- |
| NVIDIA | the proprietary driver, or NVK on Mesa | the vendor driver | discrete GPU |
| AMD | RADV (Mesa), or AMDVLK | the vendor driver | discrete GPU, or integrated on an APU |
| Intel | ANV (Mesa), for Arc cards and for the iGPU in any recent Core chip | the vendor driver | discrete GPU for Arc, integrated GPU for an iGPU |
| Anything virtual | venus, virtio-gpu | a hypervisor's driver | virtual GPU |
| llvmpipe, lavapipe, SwiftShader | present on almost every Mesa install | rare | software, refused |

‏GPU נפרד, משולב או וירטואלי מקבל את המודל. מכשיר Vulkan תוכנתי נדחה בכוונה, כי הרצת המודל דרך CPU שמעמיד פנים שהוא GPU איטית יותר מהליבה של ה-CPU של whisper.cpp עצמה. היעדר Vulkan לגמרי הוא לא שגיאה: נתיב ה-CPU הוא ברירת המחדל והמקרה הנפוץ. GPU משולב (iGPU) של Intel נעשה בו שימוש, לא מדולג, ומדורג נמוך מכרטיס נפרד רק כשלמחשב יש את שניהם. ‏`openmila-cli gpu` מדפיס מה הבדיקה מצאה, **הגדרות > מודלים** מציגה זאת, ומתג שם כופה CPU עבור דרייבר שמתנהג לא כשורה, וכך גם `OPENMILA_DISABLE_GPU=1`.

**אין עדיין נתון מהירות שנמדד.** לוגיקת ההחלטה נבדקת והליבה מקומפלת פנימה, אבל שום תמלול לא נמדד לזמן על GPU אמיתי באף אחת מהמערכות: למחשב הפיתוח אין GPU, ואף מחשב Windows לא הריץ מודל. מדדי ביצועים מגיעים מהבטא. ההנמקה המלאה נמצאת ב- [docs/port/HARDWARE.md](https://github.com/NX1X/OpenMila/blob/main/docs/port/HARDWARE.md).

## הפעלה ראשונה

### הורדת מודל

מודלי ה-Whisper גדולים ולא ארוזים מראש, כך שהדבר הראשון לעשות הוא להוריד אחד. פתחו **הגדרות > מודלים** והורידו את זה שאתם צריכים:

- ‏OpenAI‏ `large-v3-turbo` לאנגלית ולשפות אחרות, 1.6 GB.
- ‏ivrit.ai‏ `large-v3` לעברית, 3.0 GB.

כל הורדה מציגה אחוזים בזמן שהיא רצה ונבדקת מול SHA-256 קבוע לפני השימוש. כמה זמן זה לוקח הוא עניין של החיבור שלכם ולא של האפליקציה: אין נתון תזמון מפורסם, כי שום דבר לא נמדד. תכננו להעברה של 1.6 GB או 3.0 GB והשאירו את זה רץ. מחיקת מודל מאוחר יותר משחררת את כל ההתקנה ושומרת על הבחירה הנותרת הגיונית. שפת ההקלטה קובעת איזה מודל משמש, כך שתצטרכו רק את זה שאתם מקליטים בו.

### איפה התמלול רץ: GPU כשיש, אחרת CPU

ל-Mila על Mac יש שני מאיצים שהיא יכולה לסמוך עליהם, ה-GPU דרך Metal וה-Neural Engine דרך מקודד CoreML, כי Apple מספקת אותם בכל מחשב שהיא תומכת בו. ל-Linux ול-Windows אין מקבילה שתמיד קיימת, כך שהכלל של הפורט הוא לעבוד תמיד על ה-CPU ולהשתמש ב-GPU כשמתברר שיש למחשב אחד שמיש.

חבילות הגרסה לשתי המערכות כוללות את הליבה של whisper.cpp דרך Vulkan, שמכסה NVIDIA,‏ AMD ו-Intel דרך API אחד ברמת הדרייבר. GPU נפרד, משולב או וירטואלי מקבל את המודל. מכשיר Vulkan תוכנתי (‏llvmpipe,‏ lavapipe,‏ SwiftShader) נדחה, כי הרצת המודל דרך CPU שמעמיד פנים שהוא GPU איטית יותר מהליבה של ה-CPU של whisper.cpp עצמה. היעדר Vulkan לגמרי הוא לא שגיאה: נתיב ה-CPU הוא ברירת המחדל והמקרה הנפוץ. `openmila-cli gpu` מדפיס מה הבדיקה מצאה, **הגדרות > מודלים** מציגה זאת, ומתג שם כופה CPU עבור דרייבר שמתנהג לא כשורה, וכך גם `OPENMILA_DISABLE_GPU=1`.

**אין נתון מהירות שנמדד.** לוגיקת ההחלטה נבדקת והליבה מקומפלת פנימה, אבל שום תמלול לא נמדד לזמן על GPU אמיתי באף אחת מהמערכות, כך ש"Vulkan עובד" אומר: נבנה, נבדק וחובר, ואין נתון שנטען. אין נתיב CoreML או Neural Engine כלל מחוץ ל-macOS. ההנמקה ומה שעדיין לא נמדד נמצאים ב- [docs/port/HARDWARE.md](https://github.com/NX1X/OpenMila/blob/main/docs/port/HARDWARE.md).

אם המחשב שלכם איטי בזה, הדרך החוצה היום היא שרת משלכם: **הגדרות > מודלים > Backend** יכולה להצביע על כל נקודת קצה לתמלול התואמת ל-OpenAI. אודיו יוצא מהמחשב בזמן שמנגנון מרוחק פעיל, והאפליקציה מציינת זאת במסך הזה.

## הקלטה

במסך הבית יש בורר מקור, בורר שפה וכפתור הקלטה. יש שלושה מקורות:

- **מיקרופון**
  מכשיר הקלט שלכם, עם מד רמה חי ושעון חולף. בחרו מכשיר ב- **הגדרות > אודיו**, או השאירו על ברירת המחדל של המערכת. הגברה אדפטיבית למיקרופונים חלשים היא מתג באותו מקום.
- **אודיו מערכת**
  ב-Linux, בחירה בזה חושפת בורר שני שמציג מה מתנגן כרגע: OpenMila מבקשת מ-PipeWire לקשר את הפלט של האפליקציה הבודדת הזו לזרם לכידה, כך שאתם מקליטים את הפגישה ולא את המוזיקה שלכם. מוניטורי המערכת כולה מוצעים באותה רשימה. ל-Windows יש אותן שתי אפשרויות, דרך WASAPI process loopback שקשור לעץ התהליכים הנבחר; הקוד הזה מקומפל ב-CI ומעולם לא רץ על מחשב Windows.
- **פגישה (מיקרופון + מערכת)**
  שניהם, מעורבבים לקובץ WAV מונו יחיד ב-16 kHz. אם OpenMila שמה לב שאפליקציית פגישות מתחילה, היא מציעה להתחיל הקלטת פגישה עבורכם, ומציעה לעצור כשהאפליקציה מסתיימת. אפליקציות טבעיות נמצאות לפי שם תהליך בכל סשן, מ-`/proc` ב-Linux. פגישה בכרטיסיית דפדפן נמצאת בכותרת החלון, מ-X11 כשתצוגה עונה, ובסשן Wayland טהור, מהאוטובוס הנגישות של שולחן העבודה במקום, מכיוון שפרוטוקול Wayland עצמו מסרב שלקוח אחד יקרא את כותרות החלונות של לקוח אחר בכוונה. Firefox ו-Chromium מפרסמים את החלונות שלהם לאוטובוס הזה רק כשהנגישות מופעלת: `gsettings set org.gnome.desktop.interface toolkit-accessibility true`. בלי המתג הזה, פגישת כרטיסיית דפדפן ב-Wayland מוחמצת, והאפליקציה מציינת זאת במקום למצוא כלום בשקט. ל-Windows אין הגבלה כזו, כך שפגישת כרטיסייה ניתנת לזיהוי בכל סשן Windows.

תמלול חי רץ בזמן שאתם מקליטים, בחלונית התמלול החי, ואתם יכולים לערוך ולהעתיק אותו שם.

### השהיה וחזרה

בזמן שהקלטה רצה כפתור ההקלטה הופך להשהיה, ועצירה יושבת לצידו. קטע מושהה נעדר מהאודיו ומהשעון, כך שהשהיה לשיחת צד לא משאירה פער של שקט לשבת דרכו אחר כך.

### לאן הקובץ הולך

עצירה שומרת את ההקלטה, מכניסה אותה לתור לתמלול, ומציגה גליון שלאחר-הקלטה שבו אפשר לקבל שם מוצע ולראות את הסיכום ופריטי הפעולה אם תכונות ה-AI פעילות. האודיו והתמלול שלו נוחתים בתיקיית ההקלטות, שהיא `~/.local/share/Mila/` ב-Linux ו- `%APPDATA%\Mila\` ב-Windows, וניתנת להגדרה ב-**הגדרות > אחסון** יחד עם תקרת אחסון. ראו [איפה הכול נמצא בדיסק](https://openmila.nx1xlab.dev/he/docs#files).

## הכתבה

הכתבה מתמללת פרץ קצר של דיבור ומדביקה אותו במקום שהקלדתם. שני מקשי קיצור, אחד לכל שפה: Ctrl+Alt+2 לאנגלית ו-Ctrl+Alt+3 לעברית כברירת מחדל. שנו אותם ב-**הגדרות > כללי**, שם אתם מקלידים צירוף כמאפיינים ועוד מקש (Ctrl,‏ Alt,‏ Shift,‏ Super, ואות, ספרה, מקש F, רווח, Enter,‏ Escape או Tab). האפליקציה אומרת לכם אם אפליקציה אחרת כבר תפסה את הצירוף שביקשתם.

**ב-X11, ובחלונות XWayland**, מקש הקיצור עובד בכל מקום: לחצו עליו, דברו, לחצו שוב, והטקסט מודבק לתוך איזה חלון שהיה לו פוקוס.

**בסשן Wayland טהור**, שולחן העבודה מחזיק בבעלות על קיצורי דרך גלובליים, כך ש-OpenMila מבקשת אותם דרך ה-portal‏ XDG `GlobalShortcuts` במקום לתפוס אותם. שולחן העבודה שלכם יבקש מכם לאשר את הצירוף פעם אחת. שני הנתיבים נבחרים מעצמם; אתם לא בוחרים איזה. לחיצת מקש דרך ה-portal עדיין לא אושרה על ידי אדם בשולחן עבודה של Wayland, אז אם זה לא מופעל, כפתורי **הכתבה** במסך הבית עושים את אותה העבודה.

החזרת הטקסט לסמן עוברת בשלושה מסלולים, בסדר הזה: `xdotool` או `wtype` היכן שהם מותקנים, ה-portal‏ `RemoteDesktop` בסשן Wayland ברגע שתאשרו אותו (`openmila-cli grant-typing`, או הכפתור בהגדרות), ולוח הגזירה עם התראה בכל מקרה אחר. הכתבה לעולם לא ממתינה לדיאלוג ההסכמה: בלי הרשאה היא חוזרת לחלופה בתוך עשירית שנייה.

**ב-Windows**, מקשי קיצור נרשמים אצל מערכת ההפעלה והטקסט המוכתב מודבק לתוך איזה חלון שיש לו פוקוס. הקוד הזה כתוב ועובר ב-CI, אבל כמו כל דבר אחר ב-Windows הוא לא רץ עדיין על שולחן עבודה אמיתי.

הכתבות נשמרות תחת **הכתבות** בסרגל הצד, ומכבדות את תקרת האחסון כמו כל הקלטה אחרת.

## דוברים

זיהוי דוברים (diarization) מזהה מי אמר מה, בזמן אמת במהלך הקלטה וגם אחריה, עם צבע לכל דובר. זה **כבוי כברירת מחדל**, כמו ב-Mila.

בפעם הראשונה שתפעילו את זה, האפליקציה מורידה PyTorch עבור CPU, כ-200 מגה-בייט, לתוך ה-Python runtime שהחבילות כוללות. ההורדה הזו קורית פעם אחת. הפעלה או כיבוי של זיהוי דוברים באמצע הקלטה נכנסים לתוקף מיידית.

לתת שם לדובר זה לחיצה על תווית הדובר בתמלול: נפתח גליון עם שדה טקסט, הצעות מהשמות שכבר השתמשתם בהם, כפתור **שמירה** וכפתור **ביטול שם**. **נתינת אותו שם לשתי תוויות ממזגת אותן**, וכך מתקנים מקרה שבו זיהוי הדוברים פיצל אדם אחד ל-`SPEAKER_01` ו-`SPEAKER_04`. השמות שהשתמשתם בהם רשומים ב-**הגדרות > דוברים**, שם אפשר להסיר כל אחד מהם. דוברים שלא נתתם להם שם נשארים כ- `SPEAKER_NN`.

**זיהוי אותו אדם בין הקלטות שונות הוא נפרד ואופציונלי.** המתג הוא *זיהוי אותו דובר בין הקלטות* ב-**הגדרות > דוברים**. כשהוא פעיל, קול שכבר נתתם לו שם פעם אחת מתויג אוטומטית בהקלטות מאוחרות יותר. לצידו יש כפתור **מחיקת כל מה שנלמד על קולות**, שעושה בדיוק מה שהוא אומר.

## תכונות AI

**שום דבר לא נשלח לשום מקום עד שתגדירו ספק.** ‏OpenMila לא כוללת מפתחות API ואין לה ספק משלה, וכל תכונת AI כבויה עד ש- **הגדרות > ספק AI** קובעת עם מי לדבר. התמלול עצמו אף פעם לא צריך אף אחד מאלה.

### בחירת ספק

ב-**הגדרות > ספק AI**, בחרו אחד מכלי שורת הפקודה ש-OpenMila יכולה להריץ, ‏Claude,‏ Cursor או Gemini CLI, או נקודת קצה תואמת-OpenAI. כלי CLI אפשר למצוא ב-`PATH` שלכם או לתת לו נתיב הרצה מפורש. נקודת קצה תואמת-OpenAI לוקחת כתובת בסיס, שם מודל ומפתח API, והמפתח נשמר באותה דרך שהמערכת שומרת סודות ולא בקובץ הגדרות (ראו [סודות](https://openmila.nx1xlab.dev/he/docs#files)). כל קריאה נרשמת ביומן עם פרטי הזיהוי מוסתרים.

#### Ollama (מקומי): האפשרות שבה שום דבר לא יוצא מהמחשב

לנקודת הקצה התואמת-OpenAI יש הגדרות מוכנות, ואחת מהן היא **Ollama (מקומי)**. היא מצביעה על `http://localhost:11434/v1`, הכתובת ברירת המחדל של [Ollama](https://ollama.com/) הרצה על המחשב שלכם, וזו ההגדרה המוכנה היחידה שלא דורשת מפתח API, כי אין למי להזדהות מולו. התקינו את Ollama, משכו מודל ( `ollama pull llama3.1` תואם לשם המודל ברירת המחדל של ההגדרה), בחרו את ההגדרה, וכל תכונת AI בעמוד הזה - שמות מוצעים, סיכומים, פריטי פעולה, Live AI,‏ Send to LLM - רצה בלי אפילו בקשה יוצאת אחת.

זה לא נבדק מקצה לקצה ב-OpenMila: טבלת ההשוואה מסמנת את רשימת הספקים *done* ב-Linux על סמך הרצה דרך Claude CLI, ו- *written* ב-Windows. ההגדרה המוכנה עצמה היא קוד מהמקור שהפורט מקמפל ללא שינוי. אם היא מתנהגת לא כשורה, אנא [דווחו על כך](https://github.com/NX1X/OpenMila/issues).

### סיכומים ופריטי פעולה

‏**הגדרות > תכונות AI** מפעילה שמות הקלטה מוצעים וסיכום אוטומטי אחרי כל הקלטה, ומחזיקה את הפרומפט שכל תכונה משתמשת בו, שאותו אפשר לערוך. סיכום אפשר ליצור מחדש מתפריט **פעולות** של הקלטה, והקלטות מלפני שהפעלתם את התכונה אפשר למלא רטרואקטיבית. פריטי פעולה נושאים מאיפה הם הגיעו: פריט `voice_command` הוא כזה שמישהו הכתיב בקול, ופריט `inferred` הוא כזה ש-Live AI הסיק מהשיחה. אלה לא אותה טענה.

### Live AI

‏Live AI שומר סיכום מתגלגל ורשימת פריטי פעולה בזמן שהפגישה עוד מתקיימת, לצד התמלול החי, עם תיבת הקשר שאתם ממלאים לכל הקלטה כדי שהמודל ידע על מה הפגישה. הרצת תמלול ומעבר AI בו-זמנית היא הדבר הכבד ביותר שהאפליקציה עושה, כך שזה מותנה במה שהמחשב באמת יכול להתמודד איתו: OpenMila קוראת את כמות הזיכרון ומספר המעבדים ומכבה את Live AI בחומרה שלא יכולה לעמוד בקצב.

### Send to LLM

‏Send to LLM לוקח את התמלול של הקלטה אחת ופרומפט משלכם ושולח לספק שהגדרתם, עבור שאלות שפרומפט סיכום קבוע לא עונה עליהן.

## הגדרת AI מקומי

‏Mila משאירה את מציאת מודל השפה לכם. OpenMila יכולה להגדיר אחד עבורכם: **הגדרות > ספק AI > הגדרת AI מקומי** מורידה את [Ollama](https://github.com/ollama/ollama), סביבת ריצת המודל, בגרסה קבועה, מאמתת אותה מול הדיגסט שהספק מפרסם, מפעילה אותה כתהליך ילד של האפליקציה הקשור ל- `127.0.0.1:11434` (או משתמשת באחת שכבר רצה), מושכת את המודל שבחרתם, ומגדירה את הספק ל-**Ollama (מקומי)** עם סיכומים אוטומטיים מופעלים. זו תכונה של הפורט בלבד; ל-Mila אין מקבילה.

שום דבר לא מותקן ברמת המערכת ואין מעורבות של מנהל. השרת רץ רק כשהאפליקציה רצה, והסרת האפליקציה משאירה את המודלים במקומם כמו כל נתון משתמש אחר; ניקוי מלא בזמן הסרה מוחק אותם.

### מודלים מוצעים

*Western, open-licensed models, in sizes that fit the machines this port targets. The first is the default.*
| Model | Publisher | Licence | Size | Memory |
| --- | --- | --- | --- | --- |
| [Mistral 7B](https://ollama.com/library/mistral) (default) | [Mistral AI](https://mistral.ai), France | Apache-2.0 | 4.4 GB | 8 GB |
| [Mistral NeMo 12B](https://ollama.com/library/mistral-nemo) | Mistral AI and NVIDIA | Apache-2.0 | 7.1 GB | 16 GB |
| [OLMo 2 7B](https://ollama.com/library/olmo2) | [Allen Institute for AI](https://allenai.org), USA | Apache-2.0 | 4.5 GB | 8 GB |
| [Gemma 3 4B](https://ollama.com/library/gemma3) | [Google](https://ai.google.dev/gemma), USA | Gemma terms | 3.3 GB | 8 GB |
| [Llama 3.1 8B](https://ollama.com/library/llama3.1) | [Meta](https://www.llama.com), USA | Llama 3.1 community licence | 4.9 GB | 8 GB |
| [SmolLM2 1.7B](https://ollama.com/library/smollm2) | [Hugging Face](https://huggingface.co/HuggingFaceTB) | Apache-2.0 | 1.8 GB | 4 GB |

ה-runtime הוא [Ollama](https://github.com/ollama/ollama), ברישיון MIT, נשלף מהגרסאות של GitHub שלו בגרסה קבועה. מודלים נמשכים מספריית Ollama דרך HTTPS על ידי השרת הרץ; האפליקציה עצמה לעולם לא פונה לספק מודלים. כל מודל אחר ש-Ollama יכולה למשוך עובד גם: משכו אותו ידנית עם ה-runtime המנוהל והקלידו את שמו בשדה Model.

*Where the local AI runtime and models live, and how they go away*
| What | Linux | Windows |
| --- | --- | --- |
| Runtime | `~/.cache/openmila/local-ai/runtime/` | `%LOCALAPPDATA%\OpenMila\cache\local-ai\runtime\` |
| Models | `~/.cache/openmila/local-ai/models/` | `%LOCALAPPDATA%\OpenMila\cache\local-ai\models\` |

‏`openmila-selftest local-ai [--model name] [--cache dir]` מריץ את כל הנתיב מטרמינל, וכך התכונה אומתה ב-Linux לפני שהיה לה כפתור. פירוט מלא: [docs/port/LOCAL-AI.md](https://github.com/NX1X/OpenMila/blob/main/docs/port/LOCAL-AI.md).

## תיקיות, ייצוא והגדרת צוות

### תיקיות במעקב

‏Mila עוקבת אחרי התיקייה שאליה iCloud מסנכרן הערות קוליות מ- iPhone. ‏OpenMila עוקבת אחרי כל תיקייה שאתם מסנכרנים הקלטות אליה, תיקיית Syncthing או Nextcloud או טלפון מוצמד (mounted), ומייבאת קובצי אודיו חדשים אוטומטית. הצביעו על תיקייה ב-**הגדרות > תיקיות במעקב**, ואז בחרו אילו תת-תיקיות לכלול והאם לקחת קבצים שיושבים ישירות בתיקייה. רק קבצים חדשים מתאריך ההתחלה מיובאים, והם נוחתים בתיקיית **Voice Memos** בספרייה.

### ייצוא ל-Obsidian

עם כספת Obsidian מוגדרת, כל הקלטה שהושלמה נכתבת גם אליה כפתק Markdown שנושא את הכותרת, התאריך, המשך, הסיכום, פריטי הפעולה והתמלול. זה כבוי עד שתבחרו כספת, והכספת יכולה להתחייב (commit) ולהידחף (push) עבורכם באמצעות `git` מה- `PATH` שלכם. טבלת ההשוואה מסמנת את זה כמוכן ב-Linux.

### הגדרת צוות עם .milaconfig

קובץ `.milaconfig` נושא תצורה מוכנה, שרת התמלול, המודל, השפה ועוד, כך שאדם אחד יכול להגדיר צוות בשלב אחד. ‏OpenMila מציגה לכם בדיוק מה ישתנה לפני שמיישמים אותה, והגדרות שהקובץ לא מציין נשארות ללא שינוי. ייבאו אחד מ-**הגדרות > כללי > ייבוא קובץ .milaconfig**, או פתחו אותו מטרמינל:

```
openmila team.milaconfig
```

לחיצה כפולה על קובץ כזה עדיין לא עובדת, באף אחת מהמערכות: שיוך קובץ שולחן העבודה לא מותקן ב-Linux ואין שיוך קובץ ב-Windows. קובץ `.milaconfig` שנכתב עבור Mila עובד ב-OpenMila, ולהפך. שימו לב שהקובץ מחזיק את מפתח ה-API שלו בטקסט גלוי, אז העבירו אותו לצוות שלכם בערוץ שאתם סומכים עליו.

### ייצוא SRT

‏**פעולות > ייצוא SRT** בהקלטה כותב קובץ כתוביות עם חותמות הזמן לכל קטע. אפשר לייצא גם באמצע הקלטה, מהתמלול החי, בלי לחכות שההקלטה תסתיים. אותו תפריט מעתיק את התמלול עם תוויות הדוברים שלו.

### מהירות ניגון

הקלטה מתנגנת בין 0.5x ל-2x, בקפיצות, והתמלול עוקב אחריה; לחיצה על שורה מדלגת אליה. שינוי המהירות עובר דרך מותח זמן WSOLA, כך שהקולות שומרים על הגובה הטבעי שלהם במקום להפוך לצפצוף. האודיו המתוח נבדק על ידי תמלול חוזר שלו ב-0.75x וב-1.5x וקבלת אותן מילים, שזו בדיקת ההבנה שמדידת תדר לא יכולה לתת.

## איפה הכול נמצא בדיסק

*File locations per system*
| What | Linux | Windows |
| --- | --- | --- |
| Recordings, transcripts, models, settings sidecars | `~/.local/share/Mila/` | `%APPDATA%\Mila\` |
| Logs | `~/.local/state/openmila/logs/openmila.log` | `%LOCALAPPDATA%\OpenMila\logs\openmila.log` |
| Settings | `~/.config/`, managed by the app | managed by the app |
| MCP consent flag | `~/.local/share/Mila/mcp-access.json` | `%APPDATA%\Mila\mcp-access.json` |

תיקיית הנתונים נקראת `Mila` בכוונה: עוזר ה-MCP וקוד משותף אחר מחפשים אותה בשם הזה.

### סודות

מפתחות API וטוקנים לעולם לא נכתבים לתוך קובץ ההגדרות. ב- **Linux** הם הולכים לכספת שולחן העבודה שלכם דרך Secret Service, שהיא GNOME Keyring,‏ KWallet או KeePassXC בהתאם לשולחן העבודה שלכם. במקום שבו אין כספת שעונה, הם חוזרים לקבצים תחת `~/.local/share/Mila/secrets/` עם הרשאות לבעלים בלבד. ב-**Windows** הם חיים ב- `%APPDATA%\Mila\secrets\`, מוצפנים עם DPAPI עבור חשבון Windows שלכם.

## פתרון תקלות

### אין מיקרופון בבורר

בדקו ש-PipeWire או PulseAudio רצים ושהמכשיר מופיע לשאר שולחן העבודה. הרתמה בשורת הפקודה מציגה בדיוק מה האפליקציה יכולה לראות, מה שמפריד בעיית OpenMila מבעיית מחסנית אודיו:

```
openmila-cli devices
```

אם המכשיר רשום שם אבל ההקלטה נכשלת, השגיאה נוקבת בשם המכשיר וקובץ היומן מכיל את הפרטים. ב-Windows, הגדרת פרטיות המיקרופון היא של מערכת ההפעלה עצמה; אין שער הרשאה לפי אפליקציה באף אחת מהמערכות.

### אין קול מהאפליקציה שבחרתם

הקלטת אודיו של אפליקציה אחת ב-Linux צריכה את הכלים של PipeWire, חבילת `pipewire-bin`, שמספקת את `pw-dump` ואת `pw-record`. בלעדיהם הבורר מציע רק את מוניטורי המערכת כולה. התקינו את החבילה, ואז בדקו שהאפליקציה באמת מנגנת כשאתם מתחילים: הקישור נוצר לזרם הפלט שקיים באותו רגע.

```
openmila-cli app-audio
```

ב-Windows אותו בורר נשאב מ-WASAPI process loopback. שום דבר שם לא רץ על מחשב אמיתי, אז אם הוא לא מציע מה שציפיתם, בחרו את loopback המערכת כולה והשתיקו מה שלא תרצו שיוקלט, ואנא דווחו על כך.

### מקשי קיצור לא מופעלים ב-Wayland

בסשן Wayland טהור, מקשי הקיצור עוברים דרך ה-portal‏ XDG `GlobalShortcuts`, ששולחן העבודה שלכם צריך להעניק. אשרו את הצירוף כששולחן העבודה שואל; אם ביטלתם את ההודעה הזו, בדקו את הגדרות קיצורי הדרך של שולחן העבודה שלכם עבור OpenMila. הנתיב הזה עדיין לא אושר על ידי אדם בשולחן עבודה של Wayland, אז אם זה נשאר שקט, השתמשו בכפתורי **הכתבה** במסך הבית ו[ספרו לנו](https://github.com/NX1X/OpenMila/issues). אם הטקסט המוכתב לא מוקלד בסמן, התקינו `xdotool` או `wtype`, או אשרו את ה-portal‏ `RemoteDesktop` עם `openmila-cli grant-typing`; בלי אחד מאלה, הטקסט מונח על לוח הגזירה ואתם מדביקים אותו בעצמכם.

### הורדת המודל נכשלת

השגיאה מוצגת ליד המודל ב-**הגדרות > מודלים**. הורדה נבדקת מול SHA-256 קבוע ובדיקה שנכשלה נדחית, כך שקובץ קטוע או שעברו בו מניפולציה נזרק ולא נעשה בו שימוש. נסו שוב; ניסיון חדש מתחיל נקי. אם זה ממשיך להיכשל, בדקו שאתם יכולים להגיע לרשת בכלל ושיש בדיסק מקום לקובץ של 1.6 GB או 3.0 GB. רשת שמסננת מאיפה המשקלים מוגשים תיראה כהורדה שאף פעם לא מתחילה, אז כדאי לנסות את החיבור שדרכו אתם רגילים להתקין תוכנה. אם זה עדיין נכשל, צרפו דוח אבחון ל-issue.

### זיהוי דוברים לא מצליח להתקין torch

הפעלת זיהוי דוברים מורידה PyTorch עבור CPU, כ-200 מגה-בייט, לתוך ה-Python runtime שהחבילות כוללות. שני דברים גורמים לכישלון: ה- runtime לא נמצא בחבילה, מה שקורה היום ב-Windows כי חבילת זיהוי הדוברים ל-Windows מעולם לא נבנתה, והרשת מסרבת להורדה. השאירו את זיהוי הדוברים כבוי במקרה הראשון; הוא כבוי כברירת מחדל וכל השאר עובד בלעדיו. במקרה השני, נסו שוב עם הרשת שדרכה בדרך כלל מתקינים חבילות Python. קובץ היומן רושם מה הניסיון עשה.

### ייצוא דוח אבחון

‏**הגדרות > כללי > ייצוא דוח אבחון** כותבת קובץ zip ואומרת לכם איפה היא שמרה אותו. בפנים יש פרטי מערכת, ההגדרות שלכם עם פרטי זיהוי מוסתרים ופרומפטים מקוצרים לאורכם, מבנה ההקלטות שלכם בלי כותרות או נתיבים, וקובצי היומן. הוא בנוי כך שבטוח לצרף אותו בפומבי, והוא הדבר השימושי ביותר שאפשר לשים בדיווח תקלה.

### איפה לדווח על תקלה

- תקלות ובקשות תכונה: [ה-issues של המאגר](https://github.com/NX1X/OpenMila/issues), עם דוח אבחון מצורף. אם משהו מסומן כמוכן בטבלת ההשוואה ולא עובד אצלכם, זו תקלה ששווה לדווח עליה.
- שאלות ולא תקלות: [Discussions](https://github.com/NX1X/OpenMila/discussions).
- בעיות אבטחה: אל תפתחו דיווח ציבורי. השתמשו ב [דיווח הפגיעויות הפרטי](https://github.com/NX1X/OpenMila/security/advisories/new) במאגר.
- כל דבר אחר: טופס יצירת הקשר והקישורים החברתיים ב [nx1xlab.dev/contact](https://nx1xlab.dev/contact).

## לסוכני AI: שרת ה-MCP

הקטע הזה מיועד לסוכן AI, ולאדם שמגדיר אחד. OpenMila כוללת את אותו שרת MCP ש-Mila כוללת, בנוי מאותו מקור, כעוזר בשם `openmila-mcp`. הוא מדבר MCP דרך stdio ומאפשר לסשן לחפש ולקרוא את התמלולים שלכם, כולל התמלול החי של פגישה שעדיין מתקיימת. הוא קורא את המאגר על-דיסק של OpenMila עצמה; שום דבר לא יוצא מהמחשב אלא אם מבקשים מהסוכן לעשות משהו עם זה.

ב-Linux זה נבדק מקצה לקצה דרך Claude Code, נדחה כשהסכמה כבויה ומציג רשימת הקלטות כשהיא פעילה. ב-Windows העוזר נבנה ומופץ בתוך ה-zip, ושום דבר לא הריץ אותו שם.

### מה השרת חושף

*The four tools, and what each returns*
| Tool | What it returns |
| --- | --- |
| `list_recordings` | A list of recordings, filtered by speaker display name, by text in the title, application or folder, by source, or by date range, and sorted by date, duration or title. Trashed recordings are not included. |
| `get_transcript` | One recording's full transcript with speaker names resolved, plus its summary and action items. Omit the id and you get the latest completed recording. Each action item carries a `source`, either `voice_command` (somebody dictated it out loud) or `inferred` (Live AI derived it from the conversation); those are not the same claim, so do not present the second as the first. Trashed recordings are not reachable, by id or otherwise. |
| `search_transcripts` | Full-text matches over titles and transcripts, with context snippets, sorted by relevance or by date. Relevance is the default and scores every recording, so it always finds the best match and costs more as the library grows. Sorting by `created_at` stops at the limit, which is cheaper and usually the better question when you want recent mentions. |
| `get_live_transcript` | The in-progress recording's transcript, with a polling cursor for cheap deltas: nothing new gives a tiny unchanged reply, new content gives only the new segments. A status field says whether to keep polling, and hands off to `get_transcript` when the recording completes. |

שום דבר לא נשמר במטמון. כל קריאה קוראת את המאגר כפי שהוא באותו רגע, וזה מה שהופך את התשובות לאמינות בזמן שהקלטה עדיין רצה.

### שער ההסכמה

**הגישה כבויה כברירת מחדל.** הפעילו אותה ב- **הגדרות > אחסון > אפשר גישת MCP לתמלולים**. כל עוד היא כבויה כל קריאת כלי נדחית, והדחייה מסבירה את עצמה על ידי הפניה חזרה למתג הזה, כך שסוכן שנתקל בזה יכול לומר לאדם מה לעשות במקום לנחש שהתמלולים לא קיימים. ההגדרה נכנסת לתוקף מיידית: כיבוי שלה חותך סשן שכבר רץ בלי להפעיל מחדש שום דבר.

הדגל חי בקובץ `mcp-access.json` בתיקיית הנתונים, `~/.local/share/Mila/mcp-access.json` ב-Linux ו-`%APPDATA%\Mila\mcp-access.json` ב-Windows. כל קריאה קוראת אותו מחדש. חסר, לא קריא או פגום כולם אומרים דחייה: השער נכשל סגור על כל מה שהוא לא מבין בבירור, וניסיון כושל לבטל גישה מסלים למחיקת הקובץ כך שביטול לא יכול להיכשל פתוח.

**זהו פקד הסכמה, לא גבול הרשאות.** העוזר רץ כמשתמש שלכם וקורא את אותם קבצים שאתם יכולים, כך שכל דבר שכבר רץ כמותכם יכול לקרוא את המאגר ישירות בלי קשר למה שההגדרה הזו אומרת. מה שהמתג מונע הוא התאונה הריאלית: לקוח MCP שבמקרה מוגדר וקורא בשקט תמלולי פגישות ושולח אותם למודל בענן פשוט כי הכלים היו שם. הוא לא, ולא יכול, להגן מפני תוכנית עוינת שכבר רצה כמותכם.

### רישום עם Claude Code

פקודה אחת, פעם אחת. השתמשו בשורה שמתאימה לאיך שהתקנתם את OpenMila.

מה-AppImage, שנושא את העוזר בתוכו:

```
claude mcp add openmila -- /path/to/OpenMila-<version>-x86_64.AppImage --mcp
```

מחבילת ה-Debian, ששמה את העוזר ב-`PATH` שלכם:

```
claude mcp add openmila -- /usr/bin/openmila-mcp
```

מה-zip של Windows, באמצעות התיקייה שחילצתם אליה:

```
claude mcp add openmila -- C:\path\to\OpenMila\openmila-mcp.exe
```

מבנייה מהמקור:

```
claude mcp add openmila -- /path/to/OpenMila/.build/debug/openmila-mcp
```

### אותו הדבר כ-JSON

לקוחות MCP אחרים לוקחים קובץ תצורה במקום. הצורה זהה בכל מקום: שרת בשם עם פקודה להרצה. החליפו את הנתיב באחד המתאים להתקנה שלכם מהקטע למעלה.

```
{
  "mcpServers": {
    "openmila": {
      "command": "/usr/bin/openmila-mcp"
    }
  }
}
```

העוזר לא לוקח ארגומנטים משלו ולא צריך סביבה. הוא מוצא את המאגר דרך קובץ מצביע שהאפליקציה כותבת מחדש בכל הפעלה, כך שהוא עוקב אחרי תיקיית ההקלטות אם תעבירו אותה.

### מה לשאול אותו

- קרא את התמלול האחרון שלי עם אדם בשם מסוים וסכם אותו.
- חפש בתמלולים שלי החלטה שאני חצי זוכר, והראה לי את השורות סביב כל התאמה.
- הצג רשימה של כל מה שהקלטתי בשבוע שעבר, מהארוך לקצר.
- משוך את פריטי הפעולה מהפגישה של אתמול, ואמור אילו מהם מישהו ביקש בקול לעומת אלו שהוסקו.
- עקוב אחרי הפגישה הנוכחית שלי: תשאל (poll) את `get_live_transcript` עם ה-cursor כל חמש-עשרה עד עשרים שניות, וכשמשהו חדש מגיע, הצע במשפט או שניים מה כדאי לי לומר הלאה. כשהסטטוס הופך ל-completed, משוך את התמלול הסופי וסכם אותו.

### קריאת האתר כולו

סוכן שרוצה את שאר האתר, לא רק את העמוד הזה, צריך לקרוא את [‎/llms.txt](https://openmila.nx1xlab.dev/llms.txt), שמסכם מה זו OpenMila, איפה הפורט עומד, מה הוא עושה, תכונות הפרטיות שלו והמגבלות הידועות שלו, עם קישורים לכל עמוד. העמוד הזה עצמו זמין כ-Markdown ב- [‎/he/docs.md](https://openmila.nx1xlab.dev/he/docs.md), נוצר מה-HTML הזה בכל בנייה כך ששניהם לא יכולים לחלוק.

## קרדיטים ורישיון

‏OpenMila הוא פורט קהילתי עצמאי של Mila עבור Linux ו-Windows. הוא אינו קשור ל-Island Technology, Inc. ואינו מאושר על ידה.

‏Mila נוצרה בידי [Uri Harduf](https://github.com/urisland) ב-[Island](https://www.island.io/) ופורסמה תחת רישיון Apache 2.0 בכתובת [github.com/island-io/mila](https://github.com/island-io/mila). ‏OpenMila משתמשת מחדש במנוע התמלול, מודל הנתונים והלוגיקה של האפליקציה של Mila ללא שינוי בכל מקום שהפלטפורמה מאפשרת, ומממשת מחדש רק את מה שקשור ל-macOS. הקבצים במקור שהפורט הזה משנה רשומים ב-[CHANGES.md](https://github.com/NX1X/OpenMila/blob/main/CHANGES.md).

רישיון Apache 2.0. הזכויות ב-Mila שייכות ל-Island Technology, Inc.; הזכויות ב-OpenMila שייכות ל-NX1X. ראו [LICENSE](https://github.com/NX1X/OpenMila/blob/main/LICENSE) ואת [NOTICE](https://github.com/NX1X/OpenMila/blob/main/NOTICE).
