# Command-line tools

> The FeatherPanel command-line tools. What the panel CLI, FeatherCli, the installer script and the featherwings binary do, how to install each one, and every command.

Source: https://featherpanel.com/docs/cli/

FeatherPanel has four command-line tools. They do different jobs and run in different places, so pick the one that
matches what you want to do.

| Tool | Runs on | Use it to | Reference |
|------|---------|-----------|-----------|
| Panel CLI (`featherpanel`, `php cli`) | The panel host, inside the backend | Run maintenance: migrations, settings, users, snapshots, cron | [Panel CLI](https://featherpanel.com/docs/cli/panel) |
| FeatherCli (`feathercli`) | Any machine with access to the panel URL | Control servers over the API, script backups and files, migrate from Pterodactyl | [FeatherCli](https://featherpanel.com/docs/cli/feathercli) |
| Installer (`installer.sh`) | A fresh or existing Linux host, as root | Install, update and remove the panel, FeatherWings, FeatherQuilld and SSL | [Installer script](https://featherpanel.com/docs/cli/installer) |
| `featherwings` | Each game node | Configure the daemon, run diagnostics, back up and update the node | [FeatherWings CLI](https://featherpanel.com/docs/wings/cli) |

## Install

The installer is the only tool you download by hand. It sets up the other three:

```bash
curl -sSL https://get.featherpanel.com/installer.sh | bash
```

- Installing the panel with the installer writes the `featherpanel` wrapper to `/usr/local/bin`. It runs the panel CLI in
  the Docker container or in the source install, whichever you chose. See [Panel CLI](https://featherpanel.com/docs/cli/panel#running).
- The installer's `[3] CLI` entry downloads FeatherCli to `/usr/local/bin/feathercli`. You can also fetch the binary from
  the GitHub releases yourself; see [FeatherCli](https://featherpanel.com/docs/cli/feathercli#install).
- Installing FeatherWings puts the `featherwings` binary on the node. See [Installing FeatherWings](https://featherpanel.com/docs/wings/installation).

## Panel CLI commands

Run these on the panel host as `featherpanel <command>`, or `php cli <command>` inside the backend.

| Command | What it does |
|---------|--------------|
| `setup` | First-time setup: database connection, `.env` file and encryption key |
| `migrate` | Apply pending database migrations |
| `users` | Interactive user manager |
| `settings` | Interactive settings editor |
| `snapshots` | Create, list and restore database snapshots |
| `cron` | Run the due cron jobs once |
| `logs` | Upload the panel logs and print share links for support |
| `module` | Enable optional modules such as phpMyAdmin |
| `saas` | Non-interactive admin helpers for scripts |

The full list, with subcommands and flags, is in the [Panel CLI reference](https://featherpanel.com/docs/cli/panel#commands).

## FeatherCli commands

```bash
feathercli config setup          # panel URL and API key
feathercli server list
feathercli server restart --uuid <uuid>
feathercli server backups create --uuid <uuid>
feathercli migrate check --pterodactyl-dir /var/www/pterodactyl
```

| Group | Purpose |
|-------|---------|
| `config` | Store and test the panel URL and API key |
| `server` | Power, console, logs, reinstall, plus `backups`, `files`, `databases` and `schedules` |
| `account` | Session, SSH keys and notifications |
| `oauth2` | Build and test OAuth2 integrations |
| `migrate` | Import a Pterodactyl panel |

See [FeatherCli](https://featherpanel.com/docs/cli/feathercli) for every subcommand and [Migrating from Pterodactyl](https://featherpanel.com/docs/migrating/pterodactyl)
for the migration steps.

## Installer flags

The installer is interactive by default. Flags and environment variables let you skip menus or run it unattended, which is
how the panel's node setup command works. Every flag is listed in the [installer reference](https://featherpanel.com/docs/cli/installer#flags).

## featherwings commands

`featherwings` runs the daemon and has subcommands for `configure`, `diagnostics`, `node-backup` and `update`. The
[FeatherWings CLI reference](https://featherpanel.com/docs/wings/cli) lists every command and flag.
