Command Line Interface (CLI)
Tauri enables your app to have a CLI through clap, a robust command line argument parser. With a simple CLI definition in your tauri.conf.json
file, you can define your interface and read its argument matches map on JavaScript and/or Rust.
Supported Platforms
- Windows
- Linux
- macOS
Setup
This plugin requires a Rust version of at least 1.75
Install the CLI plugin to get started.
Use your project’s package manager to add the dependency:
-
Install the Core plugin by adding the following to your
Cargo.toml
file: -
Modify
lib.rs
to initialize the plugin: -
Install the JavaScript Guest bindings using your preferred JavaScript package manager:
Base Configuration
Under tauri.conf.json
, you have the following structure to configure the interface:
Adding Arguments
The args
array represents the list of arguments accepted by its command or subcommand.
Positional Arguments
A positional argument is identified by its position in the list of arguments. With the following configuration:
Users can run your app as ./app tauri.txt dest.txt
and the arg matches map will define source
as "tauri.txt"
and destination
as "dest.txt"
.
Named Arguments
A named argument is a (key, value) pair where the key identifies the value. With the following configuration:
Users can run your app as ./app --type foo bar
, ./app -t foo -t bar
or ./app --type=foo,bar
and the arg matches map will define type
as ["foo", "bar"]
.
Flag Arguments
A flag argument is a standalone key whose presence or absence provides information to your application. With the following configuration:
Users can run your app as ./app -v -v -v
, ./app --verbose --verbose --verbose
or ./app -vvv
and the arg matches map will define verbose
as true
, with occurrences = 3
.
Subcommands
Some CLI applications have additional interfaces as subcommands. For instance, the git
CLI has git branch
, git commit
and git push
. You can define additional nested interfaces with the subcommands
array:
Its configuration is the same as the root application configuration, with the description
, longDescription
, args
, etc.
Usage
The CLI plugin is available in both JavaScript and Rust.
Permissions
By default all plugin commands are blocked and cannot be accessed.
You must define a list of permissions in your capabilities
configuration.
See Permissions Overview for more information.
Permission | Description |
---|---|
cli:default | Allows reading the CLI matches. |
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. |
© 2024 Tauri Contributors. CC-BY / MIT