ShiftStage

L’agent macOS

Le téléphone demande. Le Mac décide.

Un accès à distance qu’on ne peut pas vérifier, c’est de la confiance sur parole. Tout ce qui suit se règle sur le Mac, dans la fenêtre de l’agent — et l’app dans votre poche ne peut ni le changer ni s’y soustraire.

Ce que tient le propriétaire

Neuf commandes, chacune un interrupteur qu’on voit — pas une promesse qu’il faut croire.

Appairage

Un appareil entre une fois, de votre main

L’agent affiche un QR code et un code à saisir portant un secret à usage unique. Il expire, et il meurt dès la première utilisation.

  • Les deux côtés calculent l’empreinte du canal et l’affichent. L’appairage n’aboutit que si vous la confirmez des deux côtés ; un écart interrompt tout et part dans le journal de sécurité.
  • L’agent tient la liste : nom, type d’appareil, date d’appairage, dernière connexion, empreinte.
  • Révoquez un appareil et ses connexions vivantes tombent aussitôt ; ses justificatifs cessent de valoir, et l’app efface le cache de ce Mac.
  • Tout cela fonctionne sur le réseau local sans aucune infrastructure extérieure.

Portée visible

Le Mac confie des dossiers, pas un système de fichiers

Vous déclarez un répertoire sous un nom humain. Tout ce qui est en dehors n’existe pas pour le téléphone.

  • Chaque opération de fichier, de recherche et de git est vérifiée contre cette frontière après résolution des liens symboliques : un lien vers l’extérieur ne devient pas une porte.
  • Un espace peut être en lecture seule. Un dossier ou un fichier à l’intérieur aussi ; en cas de désaccord, le mode le plus strict l’emporte.
  • Les règles se posent sur le Mac et nulle part ailleurs. Le téléphone reçoit le mode effectif et l’affiche avant que vous essayiez d’écrire.
  • Un interrupteur décide si les fichiers d’un espace peuvent quitter le Mac. Interdit veut dire : pas enregistrés sur l’appareil, même pas proposés à l’enregistrement, pas remis à d’autres apps — et ce qui avait été gardé est supprimé.
  • Supprimez un espace et toutes les sessions qui en dépendent se ferment avec lui.

Autorisations

Rien de dangereux n’est actif à la sortie de la boîte

Terminer des processus, gérer ceux qui tournent longtemps, taper un secret dans une invite sudo, reprendre une session de terminal du Mac, prévisualiser des serveurs locaux, modifier des bases de données et lire les bases des apps dans les simulateurs iOS sont sept interrupteurs distincts, et les sept partent éteints.

  • L’extinction agit tout de suite : une opération en cours est refusée, tandis que les processus gérés continuent et restent visibles sur le Mac.
  • Un refus nomme sa cause. « Éteint sur le Mac » se distingue de « non autorisé » et de « pas votre processus » — et l’app dit où se trouve l’interrupteur.
  • Le secret pour sudo est libéré par Face ID sur l’appareil et voyage comme opération à part, pas comme des frappes dans le flux. Le propriétaire l’autorise séparément ; par défaut c’est éteint.
  • Un espace en lecture seule vaut aussi pour le terminal — et pour les processus qu’il lance. Si l’interdiction ne peut pas être appliquée, on vous le dit au lieu de vous laisser le supposer.

Portée d’accès

Un appareil à la fois, sauf décision contraire

Par défaut, exactement un appareil travaille avec l’agent. Le réglage va de un à cinq, ou se retire. La place appartient à l’appareil, pas à la connexion.

  • Un appareil au-delà de la limite est refusé avec le motif nommé — pas lâché en silence.
  • Le relais s’interdit agent par agent : direct et local seulement, ou rien du tout.
  • La liste des nœuds Rendezvous est un réglage de l’agent, pas quelque chose de figé dans l’app. Une liste vide veut dire : réseau local uniquement — une façon de fonctionner prise en charge, pas une panne.
  • Un nœud du catalogue publié n’entre dans la liste de travail que par votre action. La consultation du catalogue elle-même se désactive, et le produit reste pleinement utilisable sans elle.

Contrôle de lieu

Seulement un appareil qui dit où il est

Activez-le et seule se connecte une machine qui nomme sa localisation. Un appareil dont la localisation est coupée ou refusée est éconduit — avec le motif, et avec l’endroit où l’activer.

  • Le lieu est inscrit au journal avec sa précision et la mention « selon l’appareil » — car c’est exactement cela : déclaré, pas vérifié. L’agent ne fait pas semblant du contraire.
  • Un refus pour lieu manquant s’inscrit comme s’inscrit une admission. Le contrôle laisse une trace dans les deux cas.
  • C’est un contrôle, pas un traceur : on garde ce que l’appareil a dit au moment de la connexion, et rien entre deux connexions.

Journal d’accès

Chaque opération — et jamais son contenu

L’agent note ce qu’a demandé un appareil connecté : le moment, l’appareil, le type d’opération, son issue et l’objet nommé par la requête elle-même.

  • L’objet, c’est le chemin, la branche, le processus, la chaîne recherchée, les octets transférés — ce que la requête a nommé.
  • La connexion et la déconnexion sont notées au même titre que les opérations.
  • Jamais : le contenu des fichiers, la sortie des commandes, la saisie du terminal, ni un mot d’une conversation avec une IA. À aucun niveau de détail.
  • La même opération sur le même objet depuis le même appareil dans une fenêtre incrémente un compteur au lieu d’ajouter une ligne.
  • Borné par l’âge et par la taille ; les plus anciennes entrées partent les premières.
  • Filtrage par appareil, par type, par fragment d’objet. Export en fichier. Extinction — et l’extinction s’inscrit elle-même dans le journal.
  • Un échec d’écriture n’annule ni ne retarde jamais l’opération qu’il s’apprêtait à noter.
  • Le protocole n’a pas d’opération de lecture du journal. On ne peut le récupérer ni depuis le téléphone, ni chez nous, ni nulle part : il se lit sur le Mac, par la personne assise devant.

Copies

Le Mac apprend ce qu’est devenu le fichier confié

L’appareil rend compte du sort de ce qu’il a reçu : gardé sur l’appareil, envoyé à une autre app, supprimé.

  • Quand le système nomme l’app destinataire, le rapport la nomme aussi.
  • Une entrée déclarée est marquée comme déclarée et reste distincte de ce que l’agent a observé lui-même — dans le journal comme à l’écran.
  • Le rapport survit à une coupure et arrive à la connexion suivante.
  • Et l’interface dit tout haut ce qui gêne : l’absence de rapport ne veut pas dire l’absence de copie. Une garantie qu’on ne peut pas tenir n’est pas vendue ici comme une garantie.

Apple Watch

La montre a sa propre clé, et c’est vous qui signez pour elle

La montre a sa paire de clés. Son pouvoir lui est délégué par l’iPhone, et l’agent n’accepte cette délégation qu’après votre confirmation sur le Mac.

  • La délégation a une durée et se renouvelle au contact de l’iPhone.
  • Révoquer l’iPhone annule tout ce qu’il a délégué.
  • Ce que le poignet peut faire dépend du risque : refuser est toujours possible ; accepter l’est à risque faible, demande un tour de couronne à risque moyen, et passe au téléphone à risque élevé. Une demande reconnue par heuristique ne se valide à la montre qu’à risque faible.
  • Les opérations de fichiers et git ne sont pas disponibles à la montre, pas du tout.

Énergie

Le Mac reste éveillé, parce qu’un Mac verrouillé ne sert à rien

Tant que l’agent tourne, il empêche le Mac de verrouiller l’écran. Un Mac verrouillé ne peut pas assembler ses clés et la connexion échoue — c’est donc une valeur par défaut, pas une règle rigide.

  • Le maintien se désactive ; un Mac verrouillé refuse alors la connexion en nommant précisément cette raison, au lieu de tomber dans une erreur générique.
  • L’agent tient sur le Mac son propre journal des opérations privilégiées, distinct du journal d’accès.

À quoi ressemble une ligne du journal

Lue sur le Mac, restée sur le Mac, et pas plus détaillée que cela.

14:32:09  iPhone «Denis»  files.read    ~/projects/api/docs/audit.md
14:32:11  iPhone «Denis»  files.keep    gardé sur l’appareil — selon l’appareil
14:33:40  iPhone «Denis»  git.commit    api · main · 4 fichiers
14:41:02  Apple Watch     ai.decide     Codex · autorisé · risque low
14:52:18  iPhone «Denis»  connect       Phuket ±40 km · selon l’appareil
15:02:55  iPad «Studio»   files.write   refusé — espace en lecture seule

Aucun contenu de fichier. Aucune sortie de commande. Aucune saisie de terminal. Aucune conversation avec une IA. Non parce que nous avons choisi de les retirer du fichier, mais parce que l’agent ne les y écrit jamais.

Pourquoi c’est la moitié qu’on paie

Tout outil d’accès à distance demande de la confiance. La plupart répondent « nous ne regardons pas vos données » et vous laissent y croire.

Ici la réponse est une forme, pas une phrase. Les droits vivent sur la machine qui est la vôtre. La frontière est vérifiée là-bas : après les liens, avant l’opération. La trace reste là-bas, et le protocole n’a pas de verbe qui puisse l’emporter.

L’abonnement ouvre la distance et le nombre. Il ne vous vend pas une politique — elle était déjà la vôtre.

Ce que cela donne sur une journée · les questions qui viennent ensuite

Votre machine.
Vos règles. Votre trace.

Gratuit pour un Mac sur votre propre réseau.