Quick Start

Installation

Install from binary releases

For most users, the easiest path is downloading a release binary:

Install from Crates.io

cargo install rauto

Build from source

git clone https://github.com/demohiiiii/rauto.git
cd rauto
npm ci
npm run web:build
cargo build --release

The built binary will be available at target/release/rauto.

Create a reusable credential

Create authentication once before connecting. The command securely prompts for the login username and password:

rauto credential add network-admin

See Device Credentials for Enable handling, import, encryption, and reference rules.

First command

rauto uses the autodetect profile by default, so you can start with either a Linux host or a supported network device:

rauto exec "uname -a" \
  --host 192.168.1.10 \
  --credential network-admin

You can still set --device-profile explicitly when you already know the platform or want to skip autodetection:

rauto exec "show version" \
  --host 192.168.1.1 \
  --credential network-admin \
  --device-profile cisco_ios

For read-only operational checks, rauto show maps objects to platform-specific commands and parses output with TextFSM by default:

rauto show interfaces \
  --host 192.168.1.1 \
  --credential network-admin \
  --device-profile cisco_ios

Launch the local web console

rauto web --bind 127.0.0.1 --port 3000

Then open http://127.0.0.1:3000 in your browser.

The first rauto web startup prints a generated password once and stores it under [web] in ~/.rauto/config.toml. Enter that password on the login page; browser sessions are cleared when rauto restarts.

The web console is useful for:

  • managing reusable credentials, connections, templates, and command flow templates
  • running commands, show objects, batch show queries, transactions, workflows, and orchestration
  • managing custom TextFSM templates, parser mappings, and custom show objects
  • viewing async tasks, recordings, blacklists, and backups
  • discovering SSH devices and saving selected results as connections
  • fetching running/startup configurations and comparing drift hashes

1. Test connectivity first

rauto connection test \
  --host 192.168.1.1 \
  --credential network-admin \
  --device-profile cisco_ios

2. Save a reusable connection profile

rauto connection add core-sw-01 \
  --host 192.168.1.1 \
  --credential network-admin \
  --ssh-port 22 \
  --device-profile cisco_ios \
  --ssh-security balanced

Then reuse it by name:

rauto show version --connection core-sw-01

For inventory-wide read-only checks, target saved connections directly or select groups and labels:

rauto show interfaces \
  --target core-sw-01 \
  --group access \
  --label campus

3. List or autodetect device profiles

rauto profile list
rauto profile autodetect --host 192.168.1.1 --credential network-admin

Built-in profiles come from rneter. Common examples include:

  • network vendors such as cisco_ios, cisco_xe, huawei, juniper_junos, fortinet, and arista_eos
  • servers such as linux

Common pitfalls

The default profile is autodetect

Autodetection resolves the actual built-in profile before execution and caches successful results by host:port. If the cached profile is wrong or the target changed, force a new probe:

--force-autodetect

upload requires SFTP support on the target

rauto upload is best for Linux or similar hosts that expose the sftp subsystem. Many network devices do not.

Saved connections help early

Once you move into templates, flows, transactions, and orchestration, use --credential <name> for direct targets and --connection <name> for reusable targets.

Next reading