Una biblioteca de Rust con todas las funciones para crear parsers de argumentos de línea de comandos de forma declarativa o procedimental.
remkop/picocli
Framework de Java para crear aplicaciones de línea de comandos mediante anotaciones o una API programática, con subcomandos, colores ANSI y autocompletado de shell.
- Estrellas
- 5,453
- Forks
- 498
- Issues abiertos
- 186
- Último commit
- hace 3 meses
¿Qué es?
Picocli es una biblioteca de Java para crear aplicaciones de línea de comandos. Los desarrolladores anotan campos o métodos con opciones y parámetros, y picocli convierte los argumentos de entrada en valores fuertemente tipados. Admite subcomandos al estilo de git y subcomandos anidados, opciones cortas agrupadas al estilo POSIX, convertidores de tipos personalizados y solicitudes de contraseña. Genera automáticamente la ayuda de uso, que se puede personalizar con colores ANSI.
La biblioteca también permite abordar necesidades de análisis más avanzadas, como opciones mutuamente excluyentes o dependientes, grupos de argumentos, opciones negables, opciones de tipo mapa como -Dkey=value y archivos @-files para líneas de comandos muy largas. Picocli puede generar scripts de autocompletado para bash y zsh, y ofrece integración con JLine para shells interactivos.
El proyecto se distribuye como un único archivo fuente que se puede copiar en una aplicación, por lo que los usuarios finales no necesitan picocli como dependencia. También es posible compilar aplicaciones como imágenes nativas de GraalVM, y el proyecto incluye un procesador de anotaciones para ese fin. Funciona desde Java 5 en adelante y se puede usar desde Groovy, Kotlin y Scala.
Funciones clave
- 01API basadas en anotaciones y programáticas para definir comandos, opciones y parámetros.
- 02Subcomandos al estilo de git y subcomandos anidados.
- 03Ayuda de uso con colores generada automáticamente.
- 04Scripts de autocompletado con TAB para bash y zsh.
- 05Distribución en un solo archivo que se puede incluir como código fuente.
- 06Compatibilidad con imágenes nativas de GraalVM mediante un procesador de anotaciones.
Casos de uso
- Crear una herramienta de línea de comandos en Java o Kotlin con subcomandos y texto de ayuda.
- Distribuir una CLI como ejecutable nativo con un inicio rápido mediante GraalVM.
- Añadir autocompletado de shell a una aplicación de línea de comandos Java existente.
- Migrar un analizador de CLI Java existente a una API moderna basada en anotaciones.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es picocli?
- Framework de Java para crear aplicaciones de línea de comandos mediante anotaciones o una API programática, con subcomandos, colores ANSI y autocompletado de shell. Picocli es una biblioteca de Java para crear aplicaciones de línea de comandos. Los desarrolladores anotan campos o métodos con opciones y parámetros, y picocli convierte los argumentos de entrada en valores fuertemente tipados. Admite subcomandos al estilo de git y subcomandos anidados, opciones cortas agrupadas al estilo POSIX, convertidores de tipos personalizados y solicitudes de contraseña. Genera automáticamente la ayuda de uso, que se puede personalizar con colores ANSI.
- ¿picocli es gratuito? ¿Qué licencia tiene?
- picocli es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿picocli sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de picocli fue el 16 ago 2026.
- ¿Para qué puedo usar picocli?
- Crear una herramienta de línea de comandos en Java o Kotlin con subcomandos y texto de ayuda. Distribuir una CLI como ejecutable nativo con un inicio rápido mediante GraalVM. Añadir autocompletado de shell a una aplicación de línea de comandos Java existente. Migrar un analizador de CLI Java existente a una API moderna basada en anotaciones.
- ¿Dónde consigo picocli?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/remkop/picocli
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Paquete declarativo de Go para crear herramientas de línea de comandos, con subcomandos, flags, autocompletado de shell y generación de ayuda.
Toolkit de Python para crear interfaces de línea de comandos componibles, con comandos anidados, páginas de ayuda automáticas y subcomandos de carga diferida.
Una biblioteca de Swift con seguridad de tipos para declarar y analizar argumentos, opciones y flags de línea de comandos, con ayuda generada automáticamente.
Un gestor de plantillas y fragmentos de comandos para Bash, Zsh, Fish, Nushell y PowerShell que lleva IntelliSense a la terminal.
Un shell interactivo de línea de comandos, fácil de usar, para macOS, Linux y otros sistemas tipo Unix, con resaltado de sintaxis y sugerencias automáticas desde el primer momento.