Saltearse al contenido
Tauri

Interfaz de línea de comandos (CLI)

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

This plugin requires a Rust version of at least 1.77.2

Platform Level Notes
windows
linux
macos
android
ios
  • Windows
    • Debido a una limitación del sistema operativo, las aplicaciones de producción no pueden escribir texto en la consola de llamada de forma predeterminada. Consulta tauri#8305 para obtener una solución alternativa.

Instala el plugin CLI para comenzar.

Utiliza el administrador de paquetes de tu proyecto para agregar la dependencia:

npm run tauri add cli

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

src-tauri/tauri.conf.json
{
"plugins": {
"cli": {
"description": "Ejemplo de plugin CLI de Tauri",
"args": [
{
"short": "v",
"name": "verbose",
"description": "Nivel de verbosidad"
}
],
"subcommands": {
"run": {
"description": "Ejecutar la aplicación",
"args": [
{
"name": "debug",
"description": "Ejecutar aplicación en modo de depuración"
},
{
"name": "release",
"description": "Ejecutar aplicación en modo de lanzamiento"
}
]
}
}
}
}
}

La matriz 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 argumentos definirá source como "tauri.txt" y destination como "dest.txt".

Un argumento con nombre es un par (clave, valor) donde la clave identifica el 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 argumentos definirá type como ["foo", "bar"].

Un argumento de bandera 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 argumentos definirá verbose como true, con occurrences = 3.

Algunas aplicaciones CLI tienen interfaces adicionales como subcomandos. Por ejemplo, la CLI git tiene git branch, git commit y git push. Puedes definir interfaces anidadas adicionales con la matriz 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';
// cuando uses `"withGlobalTauri": true`, puedes usar
// const { getMatches } = window.__TAURI__.cli;
const matches = await getMatches();
if (matches.subcommand?.name === 'run') {
// `./your-app run $ARGS` fue ejecutado
const args = matches.subcommand.matches.args;
if (args.debug?.value === true) {
// `./your-app run --debug` fue ejecutado
}
if (args.release?.value === true) {
// `./your-app run --release` fue ejecutado
}
}

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

Consulta la Descripción general de capacidades para obtener más información y la guía paso a paso para usar los permisos de los 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"]
}

Default Permission

Allows reading the CLI matches

This default permission set includes the following:

  • allow-cli-matches

Permission Table

Identifier Description

cli:allow-cli-matches

Enables the cli_matches command without any pre-configured scope.

cli:deny-cli-matches

Denies the cli_matches command without any pre-configured scope.


© 2025 Tauri Contributors. CC-BY / MIT