La consola interactiva
La consola (xamisdk console) es una forma cómoda de usar el xamiSDK: en vez
de teclear comandos largos, abres una sesión interactiva y trabajas con comandos cortos. Es
una opción adicional — todos los comandos sueltos (serve,
pades:sign, etc.) siguen funcionando igual.
Cómo abrirla
Con el SDK ya instalado y pareado, ejecuta:
xamisdk console
Verás el banner y el prompt xami> esperando comandos:
_ __ ___ __ _______ ____ __ ___ __
| |/ // | / |/ / _/ / __ \/ / / / | / /
| // /| | / /|_/ // / / /_/ / / / / |/ /
/ |/ ___ |/ / / // / _ / _, _/ /_/ / /| /
/_/|_/_/ |_/_/ /_/___/(_)_/ |_|\____/_/ |_/
Firma digital y blockchain · consola interactiva
Conectado como tenant 5 | endpoint https://api.xami.run
Escribe 'help' para ver los comandos, 'exit' para salir.
xami> start
servicio iniciado en segundo plano (puerto 8300, modo pull (cada 2s))
usa 'logs' para ver su salida
xami> credentials
5 credencial(es) en cache:
b52c2ec0-... tipo=pades device=Xami-A1 default_design=531ba341-...
xami> sign documento.pdf b52c2ec0-... name="Jose Zarate"
Preparando y enviando el hash a Xami (el documento NO sale)...
requestId: sig_4dd0...
Firmado -> documento_firmado.pdf
xami> logs -f
(siguiendo el log en vivo — Ctrl+C para volver)
2026-08-07 09:15:02 INFO servicio listo — esperando peticiones
2026-08-07 09:15:47 WARN no se pudo consultar a Xami: HTTP 503
2026-08-07 09:15:49 INFO conexion con Xami restablecida
2026-08-07 09:16:10 ERROR fallo inesperado en el polling
^C
(fin del seguimiento)
xami> exit
hasta luego.
Si aún no estás pareado, la consola te lo dirá. Ejecuta
xamisdk init primero (ver Instalar).
Al iniciar el servicio: manejo del puerto
Cuando ejecutas start, la consola comprueba si el puerto ya está en uso y
actúa según lo que encuentre:
había un servicio xamiSDK anterior en el puerto
8300; lo reinicio.el puerto 8300 está ocupado por otro programa (no es
xamiSDK). Usa otro puerto: start <otro_puerto>.Comandos de la consola
Dentro del prompt xami>, estos son los comandos disponibles:
credentialscredential_key. Es lo que puedes usar para firmar.designsdesign_key.syncreinstall [--force]--force para reinstalar igual). La consola actual se cierra: un programa no puede reemplazarse a sí mismo mientras corre.wrapperswrapper_key, estado y último uso.wrapper create <nombre>wrapper_key y el secret (el secret no se vuelve a mostrar, guárdalo).wrapper revoke <key>wrapper_key. Esa app deja de poder usar el SDK.sign <pdf> <credential_key> [variable=valor ...]name="Jose Zarate"). El PDF firmado se guarda junto al original. No necesita que el servicio esté levantado para lanzarse, pero sí para recibir el resultado.report <requestId>requestId; no se envía tu llave privada, tu token ni el contenido de tus documentos. Xami responde con un número de incidente que puedes mencionar al pedir soporte. El requestId aparece en verde tras firmar y en el log.start [puerto]serve) en segundo plano, en modo pull. La consola sigue disponible mientras el servicio corre. Puerto por defecto: 8300. Si el puerto ya está ocupado por otro servicio xamiSDK (por ejemplo uno que quedó de una sesión anterior), lo detecta y lo reinicia automáticamente; si lo ocupa otro programa, no lo toca y te avisa para que uses otro puerto.stopstart.restartstop seguido de start). Útil para que el SDK vuelva a sincronizar su configuración desde Xami.logslogs -f · followtail -f): las nuevas líneas aparecen según llegan, coloreadas por nivel — INFO en verde, WARN en amarillo, y las líneas de ERROR completas en rojo. Presiona Ctrl+C para volver al prompt. También disponible como follow.statusclearcls.help [comando]help sign), muestra la documentación detallada de ese comando: uso, descripción, ejemplos y notas.exit · quitDiferencia con los comandos sueltos
La consola no reemplaza nada: por dentro usa los mismos comandos que puedes ejecutar
directamente desde la terminal. La ventaja es que, una vez dentro, no repites
xamisdk ni las opciones largas, y puedes tener el servicio corriendo mientras
firmas y consultas — todo en un solo lugar. Para automatizaciones y scripts, sigue siendo
mejor usar los comandos sueltos (ver Comandos).
