
Gestionnaire de registre d'outils vérifié. Gère les chaînes d'outils des développeurs à partir de registres basés sur Git.
Gestionnaire de registres d'outils — gère les chaînes d'outils des développeurs à partir de registres basés sur git, superposé à mise.
kit résout les versions d'outils sur plusieurs registres, génère la configuration mise, vérifie les sommes de contrôle SHA-256 par rapport aux artefacts de publication de l'éditeur, vérifie les signatures cosign lorsque les éditeurs signent des binaires bruts, et automatise le suivi des mises à jour en amont via une architecture CI à trois pipelines.
Si vous n'avez pas encore Rust, le chemin le plus rapide est mise:
mise use --global rust
cargo install nomograph-kit
Ou utilisez rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install nomograph-kit
Le binaire s'appelle kit.
kit setup --registry https://gitlab.com/your/registry.git
kit sync
kit status
Un registre est un dépôt git avec des définitions TOML par outil :
tools/
_meta.toml # métadonnées du registre + politique de fusion
gh.toml # un fichier par outil
muxr.toml
...
Chaque définition d'outil est autonome :
[tool]
name = "gh"
source = "github"
repo = "cli/cli"
version = "2.89.0"
tag_prefix = "v"
bin = "gh"
tier = "high"
aqua = "cli/cli"
[tool.assets]
macos-arm64 = "gh_{version}_macOS_arm64.zip"
linux-x64 = "gh_{version}_linux_amd64.tar.gz"
[tool.checksum]
file = "gh_{version}_checksums.txt"
format = "sha256"
[tool.signature]
method = "github-attestation"
Sources : github, gitlab, npm, crates, direct, rustup, brew
La source brew délègue l'installation au backend brew: de mise (pas besoin de CLI brew locale en CI). kit suit les versions via l'API de formulae.brew.sh et émet des entrées name = "brew:<formula>@<version>" dans mise.toml.
Le kit add intelligent interroge l'amont et remplit automatiquement :
kit add jq jqlang/jq # GitHub
kit add muxr nomograph/muxr --gitlab # GitLab (résout project_id)
kit add claude-code --npm @anthropic-ai/claude-code
kit add cargo-nextest --crates
kit add chafa --brew # Formule Homebrew (le nom de la formule par défaut est le nom de l'outil)
kit add go121 --brew [email protected] # Formule Homebrew avec nom de formule explicite
Chaque outil a un niveau qui contrôle la politique de fusion :
| Niveau | Signification | Politique typique |
|---|---|---|
| own | Outils que vous construisez et publiez | Fusion automatique de toutes les mises à jour |
| high | Outils tiers critiques | Revue manuelle |
| low | Outils de commodité |
Les niveaux sont définis par outil dans la définition TOML. Le _meta.toml du registre définit quels niveaux sont fusionnés automatiquement :
[policy]
auto_merge_tiers = ["own", "low"]
auto_merge_bump = ["patch", "minor"]
auto_merge_requires_checksum = true
Configurez plusieurs registres dans ~/.config/kit/config.toml. Le premier registre l'emporte en cas de chevauchement d'outils. Les épingles locales prévalent.
[[registry]]
name = "nomograph"
url = "https://gitlab.com/nomograph/kits.git"
[[registry]]
name = "personal"
url = "https://gitlab.com/you/kits.git"
Séparez les registres par frontière de confiance. Par exemple, conservez vos propres outils dans un registre et les outils tiers dans un autre. Chaque registre a son propre pipeline, sa politique de fusion et sa cadence de mise à jour.
kit découvre kit.toml en remontant depuis le répertoire de travail. Lorsqu'il est trouvé, les outils sont limités à ce projet :
.kit.lock à côté de kit.toml (commité dans git).mise.toml fusionné avec les marqueurs # kit:begin / # kit:endkit alimente une architecture de chaîne d'approvisionnement à trois pipelines via le composant CI kit-registry :
include:
- component: gitlab.com/nomograph/pipeline/kit-registry@v3
inputs:
kit_version: "0.10.1"
mr_assignee: "andunn"
kit sense interroge les versions amont, télécharge les artefacts, vérifie les sommes de contrôle et consulte les bases de données d'avis. Classe chaque résultat par risque (niveau de mise à jour, niveau de confiance, statut de la somme de contrôle). N'échoue jamais sur la dérive de version — c'est ce qu'il détecte.
kit evaluate applique des règles déterministes (approuver automatiquement les patchs propres, rejeter les incohérences de somme de contrôle) et invoque éventuellement un LLM pour les cas particuliers (mises à jour majeures, sommes de contrôle manquantes, avis).
kit apply met à jour les fichiers TOML sur le disque et partitionne les mises à jour en deux groupes selon l'éligibilité à la fusion automatique :
Le composant CI crée une branche et une MR séparées pour chaque groupe. La MR de fusion automatique se fusionne elle-même après le passage du pipeline de vérification. La MR de revue reste ouverte pour examen humain.
kit verify-registry revalide toutes les définitions d'outils et revérifie les sommes de contrôle. S'exécute sur chaque MR comme porte de fusion.
Ce que kit fait réellement sur le chemin de vérification :
Ce que kit ne fait pas : vérification de somme de contrôle hors bande (les sommes de contrôle sont récupérées depuis la même version que l'artefact), vérification de signature de contenu d'archive, ou remplacement de la revue humaine pour les niveaux qui fusionnent automatiquement.
kit est retiré, remplacé par mise (jdx/mise). Les épingles d'outils résident désormais dans mise.toml versionné + un mise.lock commité (sha256 par plateforme + provenance) : la référence machine dans dunn.dev/harness, les configurations par domaine (ex. nomograph/keaton). Les mises à jour circulent via Renovate (avec un customManager pour les backends gitlab:) + un audit de provenance CI sur les différences de mise.lock — l'intention de kit d'installateur vérifié + mise à jour automatique, sur un hôte stable. Enregistrement de migration : nomograph/keaton -> campaigns/harness/sessions/baseline.md (2026-06-16).
MIT -- Nomograph
| Commande | Description |
|---|
kit setup | Configuration unique, possibilité d'ajouter un registre |
kit sync | Récupérer les registres, résoudre, générer la configuration mise, installer |
kit status | Outils installés vs registre, détection de dérive, force de vérification |
kit diff | Afficher les différences entre le fichier de verrouillage et le registre |
kit upgrade | Workflow interactif de mise à jour des outils |
kit verify | Re-vérifier tous les binaires installés (sommes de contrôle toujours ; cosign uniquement pour les actifs binaires bruts) |
kit audit | Vérifier les outils pour les avis de sécurité connus |
kit add <nom> <source> | Interroger l'amont, générer une définition d'outil |
kit push <nom> | Valider et pousser une définition d'outil |
kit remove <nom> | Supprimer un outil d'un registre inscriptible |
kit pin <nom> <version> | Épingler la version d'un outil localement |
kit unpin <nom> | Supprimer un épingle local |
kit sense | Détecter les changements amont, classer par risque (CI) |
kit evaluate | Revue basée sur des règles + LLM des résultats (CI) |
kit apply | Mettre à jour les fichiers TOML, partitionner par éligibilité à la fusion automatique (CI) |
kit verify-registry | Valider toutes les définitions d'outils avant fusion (CI) |
kit init [--ci] | Échafauder un nouveau registre |
kit completions <shell> | Completions shell (bash/zsh/fish) |
kit man-page | Générer la page de manuel |
| Fusion automatique des patchs/mineures |