仙kisenon

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 | sh

Detecta 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.Keon

O ejecuta el script de instalación directamente:

irm https://kisenon.com/install.ps1 | iex

Instala 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.

VariableScriptsDefault
KEON_INSTALL_VERSIONamboslatestFija una versión, p. ej. v0.1.56.
KEON_INSTALL_DIRambos~/.local/bin (sh), %LOCALAPPDATA%\keon (PowerShell)Directorio de instalación. También omite el recurso a /usr/local/bin.
KEON_INSTALL_NO_PATHambos—1 omite la edición del PATH.
KEON_INSTALL_HOSTamboshttps://kisenon.comHost de descarga. Debe ser https://.
KEON_CONFIG_DIRambos~/.config/keonDónde se escribe el archivo host. En Windows KEON_HOST_FILE tiene prioridad.
KEON_HOST_FILEsolo install.ps1~/.config/keon/hostRuta del archivo host.
KEON_API_URL_DEFAULTamboshttps://kisenon.comEl host de API que se registra en el archivo host al instalar.
KEON_UNINSTALLambossin definir1 elimina el binario y el bloque PATH. Las credenciales se conservan.
KEON_INSTALL_FORCEsolo install.shsin definir1 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 me

keon 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> --cascade

El mismo flag --cascade se aplica a keon branches delete <id>.

keon status

keon status

Informa 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
0Autenticado — la clave se validó contra /v1/auth/whoami.
1No autenticado — no hay credencial, o cp respondió 401/403.
2No 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 --skills

Coloca 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 --force

Despué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.

Reportar un error

github.com/Seiraiyu/Kisenon/issues

CLI · Kisenon