CLI
Client de forme neonctl prêt à l'emploi pour la plateforme Kisenon.
keon est un client de forme neonctl prêt à l'emploi pour la plateforme Kisenon.
Installation sur macOS / Linux
curl -fsSL https://kisenon.com/install.sh | shDétecte votre plateforme, télécharge le binaire keon-<os>-<arch> correspondant,
vérifie le sha256 par rapport à /dl/latest/manifest.json, et l'installe dans
~/.local/bin — ou dans /usr/local/bin si ce répertoire est accessible en écriture
(par ex. en root). S'il n'est pas dans le PATH, le script l'ajoute à votre fichier rc
de shell. Le script est en sh POSIX ; bash n'est pas requis.
Installation sur Windows
Le canal principal est winget :
winget install Seiraiyu.KeonOu exécutez directement le script d'installation :
irm https://kisenon.com/install.ps1 | iexIl installe dans %LOCALAPPDATA%\keon et l'ajoute au PATH de votre utilisateur.
Variables d'environnement de l'installeur
Toutes les variables ne sont pas lues par les deux scripts — la colonne Scripts
indique lesquelles. Avec curl | sh, définissez-les côté sh :
curl -fsSL https://kisenon.com/install.sh | KEON_INSTALL_DIR=/opt/bin sh.
| Variable | Scripts | Default | |
|---|---|---|---|
KEON_INSTALL_VERSION | les deux | latest | Épingle une version, par ex. v0.1.56. |
KEON_INSTALL_DIR | les deux | ~/.local/bin (sh), %LOCALAPPDATA%\keon (PowerShell) | Répertoire d'installation. Désactive aussi le repli sur /usr/local/bin. |
KEON_INSTALL_NO_PATH | les deux | — | 1 ignore la modification du PATH. |
KEON_INSTALL_HOST | les deux | https://kisenon.com | Hôte de téléchargement. Doit être en https://. |
KEON_CONFIG_DIR | les deux | ~/.config/keon | Où le fichier host est écrit. Sous Windows, KEON_HOST_FILE est prioritaire. |
KEON_HOST_FILE | install.ps1 uniquement | ~/.config/keon/host | Chemin du fichier host. |
KEON_API_URL_DEFAULT | les deux | https://kisenon.com | L'hôte d'API inscrit dans le fichier host à l'installation. |
KEON_UNINSTALL | les deux | non défini | 1 supprime le binaire et le bloc PATH. Les identifiants sont conservés. |
KEON_INSTALL_FORCE | install.sh uniquement | non défini | 1 retélécharge même si la version installée correspond déjà. install.ps1 n'a aucun saut sur version identique — il retélécharge à chaque exécution, la variable n'aurait donc rien à forcer. |
Première connexion
keon login
keon mekeon login exécute un flux OAuth en boucle locale — pas de collage de clés. Il démarre un
écouteur local sur un port aléatoire, ouvre votre navigateur sur la page d'autorisation
de la console, et attend la redirection. Après votre autorisation, la
CLI échange le code à usage unique à POST /v1/cli/exchange contre une
clé API à longue durée de vie préfixée par nsk_, restreinte à votre
organisation active.
La clé est persistée dans ~/.config/keon/credentials.json avec le mode
0600. La CLI ne conserve que la clé résultante — jamais le code OAuth,
l'état, ni aucun jeton de fournisseur. keon logout supprime le fichier et
tente de révoquer la clé côté serveur (au mieux : en cas d'échec, il avertit et sort quand même avec 0) ; vous pouvez aussi la révoquer à tout moment depuis
Settings → API keys. Voir Authentification pour
le flux complet.
Sous Windows, le fichier est %USERPROFILE%\.config\keon\credentials.json ;
le mode 0600 ne s'y applique pas, et le fichier porte l'ACL de votre profil —
uniquement votre utilisateur, SYSTEM et Administrators.
Commandes courantes
keon projects list
keon branches list --project <id>
keon connection-string <branch> --project <id>keon connection-string affiche l'URI directe brute (donc
psql "$(keon connection-string main --project <id>)" fonctionne), quel
que soit votre format de sortie par défaut. --pooled affiche l'URI du
pooler et sort avec 1 et pooler_not_enabled si l'endpoint n'a pas de
pooler. -o json renvoie {"connection_string": "…"}.
Supprimer un projet supprime aussi ses branches et endpoints — passez
--cascade, sinon l'API renvoie 409 has_branches dès que le projet a une
autre branche que main :
keon projects delete <id> --cascadeLe même drapeau --cascade s'applique à keon branches delete <id>.
keon status
keon statusIndique si la CLI dispose d'identifiants valides. La clé est validée auprès de
/v1/auth/whoami, donc une clé révoquée ou expirée renvoie authenticated: false
plutôt qu'un succès périmé. Le corps contient toujours .authenticated et
latencyMs ; api_url, user et token_id sont remplis lorsqu'un identifiant
stocké est utilisé.
C'est le code de sortie qu'un script doit tester :
| Exit | |
|---|---|
0 | Authentifié — la clé a été validée auprès de /v1/auth/whoami. |
1 | Non authentifié — aucun identifiant, ou cp a répondu 401/403. |
2 | Indéterminé — connexion refusée, échec DNS, délai dépassé, ou un 5xx. |
2 n'est délibérément pas 1 : un control plane injoignable ne prouve pas que votre
identifiant est mauvais, et keon status && deploy.sh doit s'arrêter dans les deux cas.
Lisez le code de sortie directement — passer keon status dans un pipe le remplace par
celui du pipeline.
Flux de travail d'agent
keon couvre la surface sûre pour les agents, pas seulement les projets et branches :
keon sandbox— piloter des sandboxes d'agent : environnements de base de données éphémères capture-et-promotion pour les agents.keon ledger— lire le registre de promotion et vérifier les attestations de capture/promotion.keon ip-allow— gérer la liste d'autorisation d'IP d'un projet.
Les autres commandes de premier niveau incluent orgs, endpoints, databases,
roles, snapshots, operations, usage et audit. Exécutez
keon --help pour l'ensemble complet.
Format de sortie
Par défaut, c'est JSON. Pour des tableaux : keon config set output table, ou passez
--output table par commande.
Installer la compétence Claude
keon install --skillsDépose un SKILL.md + des docs de référence dans ./.claude/skills/keon/ afin qu'un
agent Claude puisse piloter la CLI sans tour de configuration.
Dépannage
macOS : « developer cannot be verified »
N'arrive que lorsque le binaire a été téléchargé via un navigateur avec l'attribut
Gatekeeper positionné — install.sh ne le positionne pas. Supprimez-le :
xattr -d com.apple.quarantine $(which keon)Windows : avertissement SmartScreen
Cliquez sur « More info » → « Run anyway ». Une fois par machine. L'installation via
winget install Seiraiyu.Keon évite l'invite. La réputation SmartScreen des builds Windows se construit avec
le temps.
Windows : winget upgrade indique que le paquet « a été modifié »
winget upgrade Seiraiyu.Keon échoue avec Unable to remove Portable package as it
has been modified si un keon update de la version 0.1.59 ou antérieure a remplacé le
binaire installé par winget. winget a enregistré l'empreinte du fichier d'origine à
l'installation et refuse d'écraser un fichier modifié. Contournez la vérification une
fois :
winget upgrade Seiraiyu.Keon --forceEnsuite, winget list et keon --version concordent de nouveau. Le keon actuel refuse
de se mettre à jour lui-même lorsqu'il est installé par winget, donc le problème ne se
reproduit pas.
macOS : quel binaire est signé
Seul keon-macos-universal — celui que télécharge install.sh — est signé et
notarié. Les binaires par architecture, keon-macos-arm64 et keon-macos-x64, ne le sont pas.
macOS : Gatekeeper a besoin d'un accès réseau pour valider
keon-macos-universal est notarisé, mais le ticket de notarisation ne peut pas être agrafé : stapler attache les tickets aux bundles et aux conteneurs (.app, .pkg, .dmg), pas à un exécutable Mach-O nu. Gatekeeper résout donc le ticket en ligne, et un Mac hors ligne ou qui bloque le service de notarisation d'Apple ne peut pas valider le téléchargement.
Cela n'affecte pas l'usage normal du CLI. La vérification de quarantaine de Gatekeeper passe par LaunchServices — un double-clic dans le Finder — et non par execve : un binaire lancé depuis un terminal n'est donc jamais bloqué, agrafé ou non. Les chemins curl et install.sh ne posent pas du tout l'attribut de quarantaine.