> ## Documentation Index
> Fetch the complete documentation index at: https://sambanova-systems.mintlify.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Command reference

This document provides an overview of all available `snctl` commands, global options, and subcommands for managing SambaRack systems.

## Command structure

The basic command structure is:

```bash theme={null}
snctl [GLOBAL_OPTIONS] <SUBCOMMAND> [SUBCOMMAND_OPTIONS] [ARGUMENTS]
```

## Global options

Global options can be used with any `snctl` command.

### --log-level

Set the logging level for the current command execution.

| Value      | Description                    |
| ---------- | ------------------------------ |
| `DEBUG`    | Detailed debugging information |
| `INFO`     | General information (default)  |
| `WARNING`  | Warning messages only          |
| `ERROR`    | Error messages only            |
| `CRITICAL` | Critical errors only           |

**Example:**

```bash theme={null}
snctl --log-level DEBUG node list
```

### --snctl-dir

Override the base directory for configuration and logs. Default is `~/.snctl`.

**Example:**

```bash theme={null}
snctl --snctl-dir /custom/path/.snctl node list
```

### --version, -v

Display the CLI version and exit.

**Example:**

```bash theme={null}
snctl --version
```

## Subcommands

### config

Manage SambaRack Manager configuration.

| Command             | Description                          |
| ------------------- | ------------------------------------ |
| `snctl config init` | Interactive wizard for initial setup |
| `snctl config show` | Display current configuration        |

**config init**

The `config init` command provides an interactive wizard to:

* Set folder location for configuration files (default: `~/.snctl`)
* Generate a new encryption key
* Create an empty inventory file
* Set service account for GCS access (optional)
* Configure logs directory (optional)

<Note>
  This command requires an empty directory. If configuration files already exist in the target directory, initialization aborts.
</Note>

**config show**

Displays the current configuration information.

**Example output:**

```text theme={null}
                       Current Configuration
+---------------------+-------------------------------------------+
| Setting             | Value                                     |
+---------------------+-------------------------------------------+
| Folder Location     | /home/user1/.snctl                        |
| Encryption Key File | /home/user1/.snctl/encryption.key         |
| Inventory File      | /home/user1/.snctl/inventory.json         |
| Service Account     | None                                      |
| Logs Location       | /home/user1/.snctl/logs                   |
| Version             | 1.0                                       |
| Last Updated        | 2025-12-08T11:19:27.403696Z               |
+---------------------+-------------------------------------------+
```

See [Initial Setup](/en/v1.2.0/sambastack/hardware-admin/sambarack-manager/srm-initial-setup) for detailed instructions.

### doctor

Check system dependencies and environment configuration to ensure your system is ready to use SambaRack Manager.

```bash theme={null}
snctl doctor
```

This command checks for required system binaries and tools.

**Example output (all dependencies met):**

```text theme={null}
                                         System Dependencies
+-------------------+---------+----------------------------+------------------------------------------------+
| Dependency        | Status  | Path/Details               | Description                                    |
+-------------------+---------+----------------------------+------------------------------------------------+
| ipmitool          | OK      | /usr/bin/ipmitool          | Required for BMC power operations              |
| ssh               | OK      | /usr/bin/ssh               | Required for remote connections                |
| sshpass           | OK      | /usr/bin/sshpass           | Required for password-based SSH authentication |
| ping              | OK      | /usr/bin/ping              | Required for connectivity checks               |
| curl              | OK      | /usr/bin/curl              | Required for HTTP requests                     |
| jq                | OK      | /usr/bin/jq                | Required for JSON processing                   |
| sed               | OK      | /usr/bin/sed               | Required for text processing                   |
| grep              | OK      | /usr/bin/grep              | Required for text filtering                    |
| awk               | OK      | /usr/bin/awk               | Required for text processing                   |
| bc                | OK      | /usr/bin/bc                | Required for floating point arithmetic         |
| screen            | OK      | /usr/bin/screen            | Required for background tasks                  |
| gptipmitool-linux | MISSING | Not found                  | Required for specific IPMI operations          |
| in.tftpd          | OK      | /usr/sbin/in.tftpd         | Required for TFTP services                     |
+-------------------+---------+----------------------------+------------------------------------------------+

Some dependencies are missing. Please install them and try again.
```

### secret

Manage encrypted device credentials.

| Command                                              | Description                      |
| ---------------------------------------------------- | -------------------------------- |
| `snctl secret set --device-type <type>`              | Set a secret for a device type   |
| `snctl secret get --device-type <type>`              | Get a secret (masked by default) |
| `snctl secret get --device-type <type> --show-value` | Get a secret (unmasked)          |

See [Device Credentials](/en/v1.2.0/sambastack/hardware-admin/sambarack-manager/srm-device-credentials) for detailed instructions.

### rack

Manage racks and rack-level devices.

<Note>
  Rack IDs can range from 001 to 255.
</Note>

| Command                                        | Description                      |
| ---------------------------------------------- | -------------------------------- |
| `snctl rack add <rack_id> --type <partnumber>` | Add a new rack to inventory      |
| `snctl rack list`                              | List all configured racks        |
| `snctl rack show <rack_id>`                    | Show detailed rack information   |
| `snctl rack delete <rack_id>`                  | Delete a rack                    |
| `snctl rack add-device <device_path>`          | Add or update a device in a rack |
| `snctl rack delete-device <target_id>`         | Remove a device from a rack      |

See [Rack Administration](/en/v1.2.0/sambastack/hardware-admin/sambarack-manager/srm-rack-admin) for detailed instructions.

### node

Manage nodes and perform power operations.

<Note>
  Nodes are added automatically to SambaRack Manager when a rack is added. There is no command to add a node directly.
</Note>

| Command                                                | Description                    |
| ------------------------------------------------------ | ------------------------------ |
| `snctl node list`                                      | List all configured nodes      |
| `snctl node show <node_name>`                          | Show detailed node information |
| `snctl node rename <old_name> <new_name>`              | Rename a node                  |
| `snctl node powerstate --node <node_id> --type <type>` | Check power state              |
| `snctl node poweron --node <node_id> --type <type>`    | Power on nodes or devices      |
| `snctl node poweroff --node <node_id> --type <type>`   | Power off nodes or devices     |
| `snctl node powercycle --node <node_id> --type node`   | Power cycle nodes              |

See [Node Administration](/en/v1.2.0/sambastack/hardware-admin/sambarack-manager/srm-node-admin) for detailed instructions.

### group

Manage groups of racks for batch operations.

| Command                                          | Description               |
| ------------------------------------------------ | ------------------------- |
| `snctl group create <name> --description <desc>` | Create a new group        |
| `snctl group list`                               | List all groups           |
| `snctl group show <name>`                        | Show group details        |
| `snctl group delete <name>`                      | Delete a group            |
| `snctl group add-rack <name> --rack-id <id>`     | Add racks to a group      |
| `snctl group remove-rack <name> --rack-id <id>`  | Remove racks from a group |

<Note>
  Group names should be alphanumeric.
</Note>

See [Group Administration](/en/v1.2.0/sambastack/hardware-admin/sambarack-manager/srm-group-admin) for detailed instructions.

### device

Manage device firmware and perform device-level operations.

| Command                                                    | Description                        |
| ---------------------------------------------------------- | ---------------------------------- |
| `snctl device firmware-check --rack-id <id> --type <type>` | Check firmware versions on a rack  |
| `snctl device firmware-check --group <name> --type <type>` | Check firmware versions on a group |

See [Device Administration](/en/v1.2.0/sambastack/hardware-admin/sambarack-manager/srm-device-admin) for detailed instructions.

## Getting help

To get help for any command or subcommand:

```bash theme={null}
# Show top-level help
snctl --help

# Show subcommand help
snctl <subcommand> --help

# Show command-specific help
snctl <subcommand> <command> --help
```
