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
| Option | Description |
|---|---|
--harness NAME | Adaptateur d'environnement à prévisualiser (obligatoire ; un seul environnement, pas all). |
--profile PATH | Chemin vers le YAML du profil partagé. Par défaut : ~/.config/apothem/profile.yaml. |
--project PATH | Racine de projet pour les environnements à portée de projet. Obligatoire lorsque l'environnement sélectionné est à portée de projet. |
--quiet, -q | Supprime la sortie informative ; seules les erreurs sont émises. |
--verbose, -v | Affiche le plan complet, y compris les cibles inchangées, annoté avec le type d'opération brut et le résultat. |
--format plain|json | Format de sortie (par défaut : plain). |
--json | Raccourci de --format json. |
--no-color | Désactive les codes de couleur ANSI dans la sortie. |
-h, --help | Affiche 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 --jsonCodes de sortie
| Code | Signification |
|---|---|
| 0 | Diff signalé (les changements en attente sont signalés ; ce n'est pas une erreur) |
| 1 | Erreur attendue de validation, de profil, d'environnement ou de projet |
| 64 | Erreur 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