Documentation

Tout ce qu'il faut pour démarrer avec STH en quelques minutes.

Installation

STH v0.2.3
Publié le 8 mai 2026
Voir les patchnotes

v0.2.3

macOS / Linux — Homebrew

brew install Grandpied33/sth/sth
sth version

Windows — winget ou Chocolatey

# winget
winget install Grandpied33.STH

# Scoop
scoop bucket add sth https://github.com/Grandpied33/scoop-sth
scoop install sth

# Chocolatey
choco install sth

Binaire depuis GitHub Releases

Si vous préférez une installation manuelle ou que vous êtes sur une plateforme non couverte, téléchargez l'archive correspondante depuis la page Releases (chaque archive est accompagnée d'un fichier SHA256SUMS pour vérifier l'intégrité), puis placez le binaire dans votre PATH.

# macOS / Linux
tar -xzf sth-darwin-arm64.tar.gz   # ou linux-amd64, darwin-amd64
chmod +x sth
sudo mv sth /usr/local/bin/

# Windows : extraire sth-windows-amd64.zip et déplacer sth.exe dans un dossier de %PATH%

Vérifier l'installation

sth version

Premiers pas

Depuis la racine de votre projet (typiquement un dossier qui contient déjà .claude/) :

sth init
? Fournisseur          › github | gitlab | azure-devops | bitbucket | sth-cloud
? Dépôt / org-projet   › acme-corp/skills
? Branche / ref        › main
? Catalogue            › SKILLS.md
? Dossier cible        › .claude/skills

La configuration est écrite dans .sth/project.json (schema v2). Aucun secret n'y est stocké — STH lit les tokens Git depuis votre environnement et la clé STH Cloud depuis le keychain de votre OS.

Si vous avez choisi sth-cloud, authentifiez-vous avec :

sth login                  # invite à coller votre clé
sth login lsk_live_xxxxx   # passe la clé en argument (utile en CI)

Lancer sth sans argument dans un terminal interactif ouvre le menu guidé qui propose la prochaine action utile (init, list, install, update, buddy…).

Bannière de lancement

Lancer sth sans argument dans un terminal interactif joue une courte animation de réveil — 💤 puis 👀 — puis fige Buddy sur l'état réel du projet (à jour, mise à jour disponible, pas de configuration, etc.). Le tout dans un encadré de 78 caractères de large, parfait pour les terminaux modernes.

╭────────────────────────────────────────────────────────────────────────────╮
│                                                                            │
│      💧                                                                    │
│    ╭─────╮   STH dev                                                       │
│    │ >/< │   Skills Transfer Hub.                                          │
│    ╰─────╯                                                                 │
│                                                                            │
│  Astuce : tapez `sth help` pour voir la liste des commandes.               │
│  STH gère .claude/skills depuis un dépôt distant.                          │
│                                                                            │
╰────────────────────────────────────────────────────────────────────────────╯

Hors TTY (sortie redirigée, exécution en CI), seule la frame finale est imprimée — pas d'animation, pas de réécriture du buffer.

Authentification fournisseurs

STH s'appuie sur les variables d'environnement de votre shell pour les providers Git. La variable générique STH_TOKEN est tentée en premier, suivie de la variable spécifique au provider. Aucun secret n'est persisté dans .sth/.

FournisseurVariablePermission requise
GitHubSTH_TOKEN ou GITHUB_TOKENContents: Read
GitLabSTH_TOKEN ou GITLAB_TOKENread_repository
Azure DevOpsSTH_TOKEN, AZURE_DEVOPS_EXT_PAT ou AZURE_DEVOPS_TOKENCode: Read
BitbucketSTH_TOKEN ou BITBUCKET_TOKEN (API token Atlassian)Repositories: Read
STH Cloudsth login → keychain OS, ou STH_CLOUD_API_KEY en fallback CIClé API du compte

Pour la CI, deux patterns selon le provider : exportez le PAT (Git) ou la STH_CLOUD_API_KEY dans le contexte de la pipeline. Les installations self-hosted (GitHub Enterprise, GitLab self-managed) ne sont pas encore supportées — ouvrez une issue si le besoin est critique.

Catalogue de skills

STH peut découvrir vos skills de deux manières — vous choisissez celle qui colle à votre dépôt.

1. SKILLS.md (manifeste explicite)

| Type  | Name           | Folder | Source                    | Description           |
| ----- | -------------- | ------ | ------------------------- | --------------------- |
| skill | analyse-risque | skills | skills/analyse-risque.md  | Check-list QSE        |
| agent | reviewer       | agents | agents/reviewer.md        | Revue de PR auto      |

2. Auto-détection (bundles)

Si votre dépôt suit la convention category/folder/SKILL.md, STH détecte les bundles automatiquement :

react/form-wizard/SKILL.md         → bundle "react/form-wizard"
react/form-wizard/templates/...    → tous les fichiers synchronisés
commands/release-helper/SKILL.md   → bundle "commands/release-helper"

Commandes

sth init

Configure pas à pas un fournisseur (GitHub, GitLab, Azure DevOps, Bitbucket ou STH Cloud).

sth init
sth login [<api-key>]

Authentifie auprès de STH Cloud. La clé est stockée dans le keychain de l'OS.

sth login lsk_live_xxxxx
sth logout

Supprime la clé STH Cloud du keychain.

sth logout
sth list

Affiche les ressources disponibles dans le catalogue (SKILLS.md, auto-détection ou catalogue API STH Cloud).

sth list
sth install <ref> [--dry-run] [--force]

Installe une skill, un agent ou un bundle dans le dossier cible.

sth install react/form-wizard --dry-run
sth update [self] [--dry-run]

Met à jour les ressources installées. `sth update self` met à jour le binaire STH.

sth update
sth status [--json]

Affiche l'état de chaque ressource (à jour, en retard, modifiée localement, épinglée).

sth status --json
sth remove <name> [--yes]

Désinstalle une ressource et nettoie ses fichiers gérés.

sth remove react/form-wizard --yes
sth buddy [--watch]

Affiche la mascotte avec l'état du projet. --watch surveille les changements en direct.

sth buddy --watch
sth help [command]

Aide globale ou ciblée.

sth help install

Buddy, la mascotte

Buddy traduit en un coup d'œil l'état de votre projet. Lancée avec --watch, elle réagit en direct aux changements de fichiers.

  • 💧  >/< Tout est à jour
  • ⚠️  o.O Mise à jour disponible
  • 😶  ._. Pas de configuration
  •  x x Erreur
  •  >_< En cours
  •  ^.^ Terminé

Configuration

La configuration vit à la racine de votre projet, dans .sth/project.json. Vous pouvez la committer sans risque — elle ne contient aucun secret. Le schema v2 supporte plusieurs providers déclarés dans le tableau providers.

{
  "schema_version": 2,
  "providers": [
    {
      "id": "default",
      "provider": "github",
      "repository_id": "acme-corp/skills",
      "catalog_ref": "main",
      "catalog_path": "SKILLS.md",
      "target_dir": ".claude/skills"
    }
  ],
  "resources": []
}

Pour utiliser STH Cloud à la place du Git, le bloc provider devient :

{
  "id": "default",
  "provider": "sth-cloud",
  "repository_id": "votre-organisation",
  "catalog_ref": "main",
  "catalog_path": "SKILLS.md",
  "target_dir": ".claude/skills"
}

L'état des installations est stocké dans <target_dir>/sth-state.json (par exemple .claude/skills/sth-state.json). Il liste pour chaque ressource installée : le provider d'origine, les fichiers gérés, leurs hashes SHA-256 et le statut. sth status compare le disque à ce manifeste pour détecter les modifications locales.

STH Cloud

Bientôt

Hors Alpha

STH Cloud arrive après l’Alpha

Plus de PAT Git à gérer, un catalogue de skills mutualisé entre projets, audit logs centralisés, RBAC — dédié aux équipes qui prennent l’IA au sérieux. Pas encore disponible : on lance avec les plans Pro et Team à la sortie de bêta.

Me prévenir au lancement

Questions fréquentes

Git ou STH Cloud — comment choisir ?

Si votre équipe a déjà un dépôt Git de skills (interne, conventions internes, workflow PR), restez sur GitHub / GitLab / Azure DevOps / Bitbucket. Si vous voulez démarrer sans monter un dépôt Git ou bénéficier d'un catalogue mutualisé, choisissez sth-cloud. Vous pouvez basculer plus tard en relançant sth init.

Comment intégrer STH dans une CI ?

Téléchargez le binaire dans une étape setup (Homebrew/winget si disponible, sinon archive depuis Releases) et exportez le token approprié : STH_TOKEN pour Git, STH_CLOUD_API_KEY pour STH Cloud. Lancez ensuite sth update --dry-run pour vérifier qu'une PR n'a pas désynchronisé un bundle.

Le binaire se met-il à jour seul ?

STH vérifie une fois toutes les 24 heures s'il existe une nouvelle version stable et met le résultat en cache. Lancez sth update self pour appliquer la mise à jour.

Les fournisseurs self-hosted (GHE, GitLab self-managed) sont-ils supportés ?

Pas encore — seuls github.com, gitlab.com, dev.azure.com et bitbucket.org sont supportés côté Git. Vous pouvez surcharger les URLs API/raw via les variables STH_GITHUB_API_BASE_URL, STH_GITLAB_API_BASE_URL, STH_AZURE_DEVOPS_BASE_URL, STH_BITBUCKET_API_BASE_URL pour des cas avancés. Ouvrez une issue si le besoin self-hosted natif est critique.

Puis-je auto-héberger STH Cloud ?

Le CLI est open-source et tourne en local sans STH Cloud (option Git pure). La version self-hosted du backend SaaS est sur la feuille de route 2027.