Skip to content
Apothem
Référence de la CLI

diff

Référence de la CLI pour la commande apothem diff.

Prévisualise les changements de configuration en attente pour un seul environnement.

Synopsis

apothem diff --harness NAME [--profile PATH] [--project PATH]
             [--quiet|-q] [--verbose|-v]
             [--format plain|json] [--json] [--no-color]

diff est une commande d'inspection en lecture seule. Elle exécute la même matérialisation que celle qu'exécuterait la commande install, mais en mode simulation — rien n'est écrit sur le disque. Pour chaque cible en attente, elle affiche une action formulée en langage clair (par exemple Write file, Merge directory, Install skills ou Prune stale files), le chemin de la cible, un statut d'aperçu (would create, would update, would remove ou no change) et — pour les ancres détenues par l'opérateur qui seraient fusionnées — le diff unifié du changement. Le statut est calculé en comparant la source à la cible actuellement présente sur le disque ; une cible déjà conforme affiche donc no change et est masquée dans la vue par défaut. C'est la réponse à « que ferait apothem install à cet environnement en ce moment ? », sans effectuer le changement.

Le plan couvre chaque chemin que l'installation écrit : les entrées du manifeste, le fichier de configuration propre à l'environnement (par exemple opencode.json ou config.yaml), l'ancre d'instructions ou le document de profil dans lequel le profil partagé est projeté (comme CLAUDE.md), et les magasins de données partagés sous .apothem/. Juste après une installation, diff ne signale aucun changement en attente ; une réinstallation n'écrit alors rien et ne crée aucune nouvelle sauvegarde. install --dry-run affiche le même plan.

Pour les adaptateurs qui écrivent des skills dans votre répertoire personnel, le plan liste ces dossiers avec leurs chemins dans le répertoire personnel, avant les fichiers du projet, et un dossier de skill qu'Apothem n'a pas écrit apparaît sous la forme d'un avertissement skill_conflict.

Pour les cibles détenues par l'opérateur — des fichiers qui portent à la fois votre propre contenu et un bloc géré par Apothem — le diff montre les lignes exactes qui changeraient. Pour les autres cibles, l'action prévue et le statut d'aperçu sont résumés.

La vue par défaut ne liste que les changements en attente. Passez --verbose pour voir le plan complet, y compris les cibles inchangées, annoté avec le type d'opération interne brut et le résultat. L'enveloppe --json n'est pas affectée par la couche d'affichage : elle porte toujours les champs bruts operation et outcome pour les consommateurs automatisés.

diff opère sur un seul environnement. Contrairement à install ou à verify, elle n'accepte pas all ; passez un seul nom d'environnement.

Options

OptionDescription
--harness NAMEAdaptateur d'environnement à prévisualiser (obligatoire ; un seul environnement, pas all).
--profile PATHChemin vers le YAML du profil partagé. Par défaut : ~/.config/apothem/profile.yaml.
--project PATHRacine de projet pour les environnements à portée de projet. Obligatoire lorsque l'environnement sélectionné est à portée de projet.
--quiet, -qSupprime la sortie informative ; seules les erreurs sont émises.
--verbose, -vAffiche le plan complet, y compris les cibles inchangées, annoté avec le type d'opération brut et le résultat.
--format plain|jsonFormat de sortie (par défaut : plain).
--jsonRaccourci de --format json.
--no-colorDésactive les codes de couleur ANSI dans la sortie.
-h, --helpAffiche l'aide et quitte.

Sortie JSON

L'enveloppe --json reflète l'enveloppe de l'installation en mode simulation. status vaut dry_run, files_written est toujours vide, et le bloc materialization ainsi que la liste results portent le détail complet des cibles prévues. Le champ detail.diff de chaque ligne de résultat détenue par l'opérateur porte la chaîne du diff unifié.

{
  "schema_version": 1,
  "status": "dry_run",
  "command": "diff",
  "action": "dry_run",
  "harness": "claude-code",
  "files_written": [],
  "results": [
    {
      "harness": "claude-code",
      "outcome": "updated",
      "operation": "sentinel_merge",
      "path": "C:\\Users\\Example\\.claude\\CLAUDE.md",
      "message": "dry run: no filesystem changes made",
      "detail": {
        "ownership_class": "operator-owned",
        "diff": "--- a/CLAUDE.md\n+++ b/CLAUDE.md\n@@ ..."
      }
    }
  ],
  "warnings": [],
  "error": null,
  "materialization": { "...": "..." }
}

Exemples

apothem diff --harness claude-code
apothem diff --harness cursor --project .
apothem diff --harness claude-code --json

Codes de sortie

CodeSignification
0Diff signalé (les changements en attente sont signalés ; ce n'est pas une erreur)
1Erreur attendue de validation, de profil, d'environnement ou de projet
64Erreur d'utilisation : une option ou une commande inconnue, ou une valeur d'option manquante ou invalide. Sous --json, l'erreur est une enveloppe JSON avec le code cli.usage.

Voir aussi

  • apothem status — signale l'état d'installation, de vérification et de dérive de chaque environnement
  • apothem verify — vérifie l'installation d'un adaptateur d'environnement
  • apothem install — applique les changements prévisualisés

On this page