Skip to content

Construction

martialzinsou edited this page Sep 21, 2026 · 3 revisions

Construction & lancement

Pré-requis

  • macOS 13+ (l'app et le moteur tournent sur Intel et Apple Silicon).
  • Xcode command line tools installés (fournit swiftc, sips, etc.).
    xcode-select --install
  • Pas besoin d'Xcode complet : le projet se compile avec swiftc seul.
  • Pour le téléchargement initial du moteur : une connexion internet (Hugging Face + GitHub pour le binaire llama.cpp). L'app ensuite fonctionne hors-ligne avec les modèles installés.

Construire l'app

Le script unique, depuis la racine du projet :

./Scripts/make-app.sh

Ce que fait le script :

  1. Compile tous les fichiers Swift de Sources/KarenOS/ :
    swiftc -O -parse-as-library -emit-executable \
      Sources/KarenOS/*.swift \
      -o build/tmp_karenos \
      -framework AppKit -framework SwiftUI -framework UniformTypeIdentifiers
    (les frameworks diffèrent légèrement selon la plateforme, le script les détecte).
  2. Assemble build/KarenOS.app :
    • Contents/MacOS/KarenOS (le binaire produit),
    • Contents/Resources/ (fichiers nécessaires),
    • Contents/Info.plist (depuis Packaging/Info.plist).
  3. Signe (ad-hoc si nécessaire) pour que macOS accepte de lancer l'app localement.

Lancer l'app

open build/KarenOS.app

Ou bien :

build/KarenOS.app/Contents/MacOS/KarenOS

Premier lancement

Au tout premier lancement, l'app :

  1. Vérifie/crée le dossier ~/Library/Application Support/KarenOS/.
  2. Télécharge le moteur llama-server (llama.cpp b8967, ~8 Mo) vers Engine/llama-b8967/.
  3. Nettoie build/ temporaire uniquement au besoin.

Tu peux ensuite aller dans la Boutique installer un modèle, puis l'ouvrir dans Mes modèles.

Compiler en mode debug / rapide

Pour itérer sans assembler l'app :

swiftc -O -parse-as-library Sources/KarenOS/*.swift \
  -framework AppKit -framework SwiftUI -o build/kar
./build/kar   # version éventuellement sans bundle

Vérifier le moteur installé

ls -lh "$HOME/Library/Application Support/KarenOS/Engine/llama-b8967/llama-server"

Problème détecté ? Voir Dépannage.

Structure du projet

KarenOs/
├── Sources/KarenOS/     ← tout le code Swift
├── Scripts/make-app.sh  ← build + assemblage
├── Packaging/Info.plist ← propriétés du bundle
├── build/               ← sortie (ignorée par git)
├── docs/                ← documentation
└── README.md

Voir aussi : Code source, Dépannage.

Clone this wiki locally