Principe de fonctionnement

shev se présente comme un decision‑maker monolithique. L’utilisateur fournit un texte complet – email, ticket, avis ou tout autre contenu – via l’invite de commande. Le moteur analyse le message en une seule passe, sans découpage en paragraphes ni itération ligne par ligne, et renvoie un objet JSON structuré contenant quatre champs : actionable (texte de l’action à réaliser), take_action (booléen indiquant si l’action doit être exécutée), confidence (entier compris entre 34 et 100) et generated_response (réponse rédigée). Le format fixe élimine toute ambiguïté de parsing et garantit que chaque exécution produit exactement une décision.

{
  "actionable": "Reply to Sam and cc finance about the overdue March invoice.",
  "take_action": true,
  "confidence": 95,
  "generated_response": "Hi Sam, ... (the reply, written out)"
}

Le champ confidence est limité à la fourchette 34‑100, ce qui reflète une contrainte imposée par le modèle sous‑jacent : les valeurs inférieures à 34 sont filtrées, probablement pour éviter des décisions trop incertaines.

Architecture et déploiement

shev s’appuie sur le modèle de langage DeepSeek v4.1 flash. Deux modes d’accès sont proposés : une requête vers le service DeepSeek hébergé (mode réseau) ou l’exécution d’un petit modèle ternary MLX installé localement. Cette dualité permet de choisir entre latence minimale (local) et mise à jour continue (cloud). Le binaire est écrit en Rust, ce qui explique la mention d’une compilation « minimal Rust toolchain » lors de l’installation.

Le processus d’installation est automatisé via trois vecteurs :

curl -fsSL https://raw.githubusercontent.com/aditauqir/shev/main/install.sh | bash

ou via npm :

npm install -g @noorslvt/shev

Le script d’installation détecte un répertoire ~/bin déjà présent sur le PATH et, à défaut, ajoute une entrée temporaire au profil shell. Sur macOS et Linux, le binaire pré‑compilé est préféré ; sinon, le code source Rust est compilé sur place. Les utilisateurs Windows sont invités à recourir à WSL, ce qui indique que le binaire n’est pas natif Windows.

Chaque décision est consignée dans responses.json sous la forme response1, response2, etc. Le fichier peut être lu par d’autres processus via le protocole MCP (Message Control Protocol), ouvrant la voie à des pipelines automatisés sans orchestration supplémentaire.

Analyse des performances et limites

Le principal avantage réside dans la simplicité d’intégration : un seul appel CLI, un format de sortie prévisible, et la possibilité de basculer entre modèle local et service distant. Cependant, plusieurs contraintes techniques apparaissent. D’abord, la décision est limitée à un seul niveau de granularité ; le modèle ne supporte pas de dialogues multi‑tour ni d’extractions séquentielles, ce qui peut être insuffisant pour des tickets complexes nécessitant plusieurs actions.

Ensuite, la confiance maximale de 100 ne garantit pas la pertinence de la réponse ; le score reste une estimation interne du modèle et n’est pas calibré par l’utilisateur. L’absence de mécanisme de vérification ou de ré‑exécution en cas de faible confiance (par exemple <34) impose à l’opérateur de filtrer manuellement les sorties.

Sur le plan de la sécurité, l’option réseau expose les données sensibles à un service externe, tandis que le modèle local nécessite le téléchargement du binaire MLX, dont l’intégrité dépend du script d’installation. Aucun chiffrement des réponses JSON n’est mentionné, ce qui pourrait poser problème dans des environnements réglementés.

En résumé, shev offre une interface ultra‑légère pour transformer un texte brut en décision automatisée, mais son usage doit être limité à des scénarios où la granularité unique, la confiance non vérifiable et les exigences de confidentialité sont acceptables.