CLI
Cliente drop-in con forma de neonctl para la plataforma Kisenon.
keon es un cliente drop-in con forma de neonctl para la plataforma Kisenon.
Instalar en macOS / Linux
curl -fsSL https://kisenon.com/install.sh | shDetecta tu plataforma, descarga el binario keon-<os>-<arch> correspondiente,
verifica el sha256 contra /dl/latest/manifest.json, e instala en
~/.local/bin — o en /usr/local/bin si ese directorio es escribible (p. ej. como
root). Si el directorio no está en el PATH, lo añade a tu archivo rc del shell.
El script es POSIX sh; no requiere bash.
Instalar en Windows
El canal principal es winget:
winget install Seiraiyu.KeonO ejecuta el script de instalación directamente:
irm https://kisenon.com/install.ps1 | iexInstala en %LOCALAPPDATA%\keon y lo añade al PATH de tu usuario.
Variables de entorno del instalador
No todas las variables las leen los dos scripts — la columna Scripts indica
cuáles. Con curl | sh, ponlas del lado de sh:
curl -fsSL https://kisenon.com/install.sh | KEON_INSTALL_DIR=/opt/bin sh.
| Variable | Scripts | Default | |
|---|---|---|---|
KEON_INSTALL_VERSION | ambos | latest | Fija una versión, p. ej. v0.1.56. |
KEON_INSTALL_DIR | ambos | ~/.local/bin (sh), %LOCALAPPDATA%\keon (PowerShell) | Directorio de instalación. También omite el recurso a /usr/local/bin. |
KEON_INSTALL_NO_PATH | ambos | — | 1 omite la edición del PATH. |
KEON_INSTALL_HOST | ambos | https://kisenon.com | Host de descarga. Debe ser https://. |
KEON_CONFIG_DIR | ambos | ~/.config/keon | Dónde se escribe el archivo host. En Windows KEON_HOST_FILE tiene prioridad. |
KEON_HOST_FILE | solo install.ps1 | ~/.config/keon/host | Ruta del archivo host. |
KEON_API_URL_DEFAULT | ambos | https://kisenon.com | El host de API que se registra en el archivo host al instalar. |
KEON_UNINSTALL | ambos | sin definir | 1 elimina el binario y el bloque PATH. Las credenciales se conservan. |
KEON_INSTALL_FORCE | solo install.sh | sin definir | 1 vuelve a descargar aunque la versión instalada ya coincida. install.ps1 no omite nada por versión coincidente — vuelve a descargar en cada ejecución, así que la variable no tendría nada que forzar. |
Primer inicio de sesión
keon login
keon mekeon login ejecuta un flujo de OAuth loopback — sin pegar claves. Inicia un
listener local en un puerto aleatorio, abre tu navegador a la página de
autorización de la consola, y espera la redirección. Después de que autorizas, la
CLI canjea el código de un solo uso en POST /v1/cli/exchange por una
clave de API de larga duración con prefijo nsk_, con alcance a tu
organización activa.
La clave se persiste en ~/.config/keon/credentials.json con modo
0600. La CLI conserva únicamente la clave resultante — nunca el código OAuth, el
estado ni ningún token del proveedor. keon logout elimina el archivo e
intenta revocar la clave en el servidor (de mejor esfuerzo: si falla, avisa y aun así sale con 0); también puedes revocarla en cualquier momento desde
Settings → API keys. Consulta Autenticación para
el flujo completo.
En Windows el archivo es %USERPROFILE%\.config\keon\credentials.json;
el modo 0600 no se aplica allí, y el archivo lleva la ACL de tu perfil — solo tu
usuario, SYSTEM y Administrators.
Comandos comunes
keon projects list
keon branches list --project <id>
keon connection-string <branch> --project <id>keon connection-string imprime la URI directa sin más (así
psql "$(keon connection-string main --project <id>)" funciona), sea cual
sea tu formato de salida predeterminado. --pooled imprime la URI del pooler
y sale con 1 y pooler_not_enabled si el endpoint no tiene pooler.
-o json devuelve {"connection_string": "…"}.
Eliminar un proyecto también elimina sus ramas y endpoints — pasa
--cascade; si no, la API devuelve 409 has_branches cuando el proyecto
tiene alguna rama además de main:
keon projects delete <id> --cascadeEl mismo flag --cascade se aplica a keon branches delete <id>.
keon status
keon statusInforma si la CLI tiene una credencial que funciona. Valida la clave contra
/v1/auth/whoami, de modo que una clave revocada o caducada informa
authenticated: false en lugar de un éxito obsoleto. El cuerpo siempre lleva
.authenticated y latencyMs; api_url, user y token_id se rellenan cuando se
usa una credencial almacenada.
El código de salida es lo que debe comprobar un script:
| Exit | |
|---|---|
0 | Autenticado — la clave se validó contra /v1/auth/whoami. |
1 | No autenticado — no hay credencial, o cp respondió 401/403. |
2 | No se pudo determinar — conexión rechazada, fallo de DNS, timeout o un 5xx. |
2 no es 1 a propósito: un control plane inalcanzable no prueba que tu credencial
sea mala, y keon status && deploy.sh debe detenerse en ambos casos. Lee el código de
salida directamente — canalizar keon status a otro comando lo sustituye por el de la
tubería.
Flujos de trabajo de agentes
keon cubre la superficie segura para agentes, no solo proyectos y ramas:
keon sandbox— impulsa sandboxes de agentes: entornos de base de datos efímeros de captura-y-promoción para agentes.keon ledger— lee el ledger de promociones y verifica las atestaciones de captura/promoción.keon ip-allow— gestiona la lista de permitidos de IP de un proyecto.
Otros comandos de nivel superior incluyen orgs, endpoints, databases,
roles, snapshots, operations, usage y audit. Ejecuta
keon --help para el conjunto completo.
Formato de salida
El predeterminado es JSON. Para tablas: keon config set output table, o pasa
--output table por comando.
Instalar la skill de Claude
keon install --skillsColoca un SKILL.md + documentos de referencia en ./.claude/skills/keon/ para que un
agente de Claude pueda impulsar la CLI sin un turno de configuración.
Solución de problemas
macOS: "developer cannot be verified"
Solo ocurre cuando el binario se descargó a través de un navegador con el
atributo de Gatekeeper establecido — install.sh no lo establece. Quítalo:
xattr -d com.apple.quarantine $(which keon)Windows: advertencia de SmartScreen
Haz clic en "More info" → "Run anyway". Una vez por máquina. Instalar mediante
winget install Seiraiyu.Keon evita el aviso. La reputación de SmartScreen en las compilaciones de Windows crece con
el tiempo.
Windows: winget upgrade dice que el paquete "ha sido modificado"
winget upgrade Seiraiyu.Keon falla con Unable to remove Portable package as it has
been modified si un keon update de la versión 0.1.59 o anterior reemplazó el binario
instalado por winget. winget registró el hash del archivo original al instalarlo y se
niega a sobrescribir uno modificado. Omite la comprobación una vez:
winget upgrade Seiraiyu.Keon --forceDespués, winget list y keon --version vuelven a coincidir. El keon actual se niega
a autoactualizar una instalación de winget, así que esto no se repite.
macOS: qué binario está firmado
Solo keon-macos-universal — el que descarga install.sh — está firmado y
notarizado. Los binarios por arquitectura, keon-macos-arm64 y keon-macos-x64, no lo están.
macOS: Gatekeeper necesita acceso a la red para validar
keon-macos-universal está notarizado, pero el tique de notarización no se puede grapar: stapler adjunta tiques a paquetes y contenedores (.app, .pkg, .dmg), no a un ejecutable Mach-O desnudo. Por eso Gatekeeper resuelve el tique en línea, y un Mac sin conexión o que bloquee el servicio de notarización de Apple no puede validar la descarga.
Esto no afecta al uso normal del CLI. La comprobación de cuarentena de Gatekeeper pasa por LaunchServices — doble clic en el Finder — y no por execve, así que un binario lanzado desde un terminal nunca se bloquea, esté grapado o no. Las rutas curl e install.sh no ponen el atributo de cuarentena en absoluto.