Saltar al contenido

Interfaz de Línea de Comandos (CLI)

GitHubnpmcrates.io
Referencia de API

Tauri permite que tu aplicación tenga una CLI mediante clap, un analizador de argumentos de línea de comandos robusto. Con una definición simple de CLI en tu archivo tauri.conf.json, puedes definir tu interfaz y leer su mapa de coincidencias de argumentos en JavaScript y/o Rust.

Este plugin requiere una versión de Rust de al menos 1.77.2

PlataformaNivelNotas
windows
linux
macos
android
ios
  • Windows
    • Debido a una limitación del SO, las aplicaciones de producción no pueden escribir texto de vuelta a la consola que las llama de forma predeterminada. Consulta tauri#8305 para ver una solución alternativa.

Instala el plugin CLI para comenzar.

Usa el gestor de paquetes de tu proyecto para agregar la dependencia:

npm run tauri add cli

Bajo tauri.conf.json, tienes la siguiente estructura para configurar la interfaz:

src-tauri/tauri.conf.json
{
"plugins": {
"cli": {
"description": "Tauri CLI Plugin Example",
"args": [
{
"short": "v",
"name": "verbose",
"description": "Verbosity level"
}
],
"subcommands": {
"run": {
"description": "Run the application",
"args": [
{
"name": "debug",
"description": "Run application in debug mode"
},
{
"name": "release",
"description": "Run application in release mode"
}
]
}
}
}
}
}

El arreglo args representa la lista de argumentos aceptados por su comando o subcomando.

Un argumento posicional se identifica por su posición en la lista de argumentos. Con la siguiente configuración:

src-tauri/tauri.conf.json
{
"args": [
{
"name": "source",
"index": 1,
"takesValue": true
},
{
"name": "destination",
"index": 2,
"takesValue": true
}
]
}

Los usuarios pueden ejecutar tu aplicación como ./app tauri.txt dest.txt y el mapa de coincidencias de args definirá source como "tauri.txt" y destination como "dest.txt".

Un argumento con nombre es un par (clave, valor) donde la clave identifica al valor. Con la siguiente configuración:

tauri-src/tauri.conf.json
{
"args": [
{
"name": "type",
"short": "t",
"takesValue": true,
"multiple": true,
"possibleValues": ["foo", "bar"]
}
]
}

Los usuarios pueden ejecutar tu aplicación como ./app --type foo bar, ./app -t foo -t bar o ./app --type=foo,bar y el mapa de coincidencias de args definirá type como ["foo", "bar"].

Argumentos de Flag (Indicador)

Sección titulada “Argumentos de Flag”

Un argumento de flag es una clave independiente cuya presencia o ausencia proporciona información a tu aplicación. Con la siguiente configuración:

tauri-src/tauri.conf.json
{
"args": [
{
"name": "verbose",
"short": "v"
}
]
}

Los usuarios pueden ejecutar tu aplicación como ./app -v -v -v, ./app --verbose --verbose --verbose o ./app -vvv y el mapa de coincidencias de args definirá verbose como true, con occurrences = 3.

Algunas aplicaciones CLI tienen interfaces adicionales como subcomandos. Por ejemplo, la CLI de git tiene git branch, git commit y git push. Puedes definir interfaces anidadas adicionales con el arreglo subcommands:

tauri-src/tauri.conf.json
{
"cli": {
...
"subcommands": {
"branch": {
"args": []
},
"push": {
"args": []
}
}
}
}

Su configuración es la misma que la configuración de la aplicación raíz, con description, longDescription, args, etc.

El plugin CLI está disponible tanto en JavaScript como en Rust.

import { getMatches } from '@tauri-apps/plugin-cli';
// when using `"withGlobalTauri": true`, you may use
// const { getMatches } = window.__TAURI__.cli;
const matches = await getMatches();
if (matches.subcommand?.name === 'run') {
// `./your-app run $ARGS` was executed
const args = matches.subcommand.matches.args;
if (args.debug?.value === true) {
// `./your-app run --debug` was executed
}
if (args.release?.value === true) {
// `./your-app run --release` was executed
}
}

De forma predeterminada, todos los comandos y alcances (scopes) potencialmente peligrosos del plugin están bloqueados y no se puede acceder a ellos. Debes modificar los permisos en tu configuración de capabilities para habilitarlos.

Consulta la Visión General de Capacidades para obtener más información y la guía paso a paso para usar permisos de plugins.

src-tauri/capabilities/default.json
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "main-capability",
"description": "Capability for the main window",
"windows": ["main"],
"permissions": ["cli:default"]
}

Permiso Predeterminado

Permite leer las coincidencias (matches) de la CLI

Este conjunto de permisos predeterminado incluye lo siguiente:

  • allow-cli-matches

Tabla de Permisos

Identificador Descripción

cli:allow-cli-matches

Habilita el comando cli_matches sin ningún alcance preconfigurado.

cli:deny-cli-matches

Deniega el comando cli_matches sin ningún alcance preconfigurado.


© 2026 Colaboradores de Tauri. CC-BY / MIT