La CLI
Un solo comando sube tu JAR, lo protege en la nube y guarda el resultado. No necesitas herramientas locales, solo Java para ejecutar la propia CLI.
Instalación
Descarga la CLI desde tu cuenta — un único archivo
rymga-cli.jar que funciona en cualquier sistema con Java 21+ (Windows, macOS y Linux). Guárdalo donde prefieras y ejecútalo con java -jar rymga-cli.jar.
Autenticación
La CLI se autentica con una clave de API de plaza. Créala en
Plazas y claves (las claves tienen un formato similar a obf_sk_…
y solo se muestran una vez). Pásala mediante --key, define OBF_KEY, o deja que el modo interactivo la guarde una vez en ~/.rymga/cli.properties
(solo para el propietario), para que no vuelva a solicitarla.
Ejecución
Ejecútala sin argumentos y te guiará paso a paso: solicitará la clave —y ofrecerá recordarla—, el JAR de entrada, la configuración y el archivo de salida:
java -jar rymga-cli.jar
# It asks for what it needs:
Seat API key: ••••••••
Save this key for next time (~/.rymga/cli.properties)? [Y/n] y
Input JAR to protect: app.jar
Config file (JSON): config.json
Output JAR [app-protected.jar]:
También puedes pasar todos los valores como opciones, algo útil en scripts y CI. La URL predeterminada es
https://licenses.rymga.com y el producto predeterminado es lock-master, por lo que basta con esta forma abreviada:
export OBF_URL=https://licenses.rymga.com
export OBF_KEY=obf_sk_your_seat_key
java -jar rymga-cli.jar --product lock-master --in app.jar --config config.json --out app-obf.jar
La forma completa y explícita es:
java -jar rymga-cli.jar \
--url https://licenses.rymga.com \
--key obf_sk_your_seat_key \
--product lock-master \
--in app.jar \
--config config.json \
--out app-obf.jar
Cada ejecución completada consume un token, sea cual sea el tamaño de la compilación; consulta
Tokens. El JAR protegido se guarda en
--out.
Si tu proyecto depende de JAR que no incluye —como la API de Paper o bibliotecas sombreadas—, la CLI también sube los JAR de biblioteca declarados en la configuración para usarlos como referencia de jerarquía. Estas bibliotecas no se cobran, aunque cuentan para el límite de 350 MB por trabajo. Si la carpeta de dependencias es grande, usa
mode: "DEMAND_SAFE" para que el proceso de trabajo solicite solo los JAR necesarios y recurra expresamente a ALL. Consulta
Configuración → libraries.
Opciones
| Opción | Qué hace |
|---|---|
| --config <file> | Obligatorio. Ruta a la configuración JSON. Debe ser un objeto no vacío que active al menos una técnica; se rechaza un vacío, porque no haría nada y desperdiciaría un token. |
| --in <file> | El JAR que se va a proteger. |
| --out <file> | Ruta donde se guardará el JAR protegido. |
| --mapping <file> | Opcional. Ofuscación incremental: reutiliza los nombres de este archivo para los símbolos que no han cambiado —si el archivo existe— y escribe en él la nueva correspondencia. Así, una API renombrada se mantiene estable entre versiones. Incluye el archivo en el repositorio. Consulta el archivo de correspondencias. |
| --key <key> | Tu clave de API de plaza. También puedes definir OBF_KEY. |
| --url <url> | La URL del servicio. Opcional — el valor predeterminado es
https://licenses.rymga.com. También puedes definir OBF_URL. |
| --product <code> | El código de producto. Opcional — el valor predeterminado es
lock-master. |
| status / logs / resume / cancel | Consulta, recupera o cancela un trabajo por su ID después de que se interrumpa un comando o mientras siga ejecutándose. |
| doctor / version | Comprueba el plano de control o muestra la versión de la CLI o la API. |
| --json / --quiet / --verbose | Salida procesable por máquinas, ejecución silenciosa o progreso detallado para CI y soporte. |
| -h, --help | Muestra la ayuda de uso y finaliza. |
Si una ejecución falla, la CLI explica el motivo —configuración incorrecta, falta de tokens, autenticación o límite de tamaño— y termina con un código distinto de cero, por lo que puedes usarla con seguridad como condición de una compilación.
En CI
Guarda la clave de plaza como secreto de CI y ejecuta la CLI como un paso de compilación. Ejemplo para GitHub Actions:
# GitHub Actions step
- name: Obfuscate
env:
OBF_URL: https://licenses.rymga.com
OBF_KEY: ${{ secrets.RYMGA_KEY }}
run: |
java -jar rymga-cli.jar --product lock-master --in build/libs/app.jar \
--config config.json --out build/libs/app-obf.jar
Usa una plaza exclusiva para CI, de modo que puedas rotarla o revocarla sin afectar a tu portátil.