A CLI wrapper for the Solana CLI, so you don't have to memorize or hand-type commands.
solctl wraps the official solana CLI in a menu-driven interface (with optional voice mode). Pick what you want to do — switch cluster, rotate a keypair, deploy a program — and it runs the correct underlying command with the right flags, checks your balance and cluster before anything touches mainnet, and reports a clean result instead of raw CLI output.
It does not replace the Solana CLI. It orchestrates it, safely.
Every Solana developer has, at some point:
- Deployed to the wrong cluster because they forgot which one was active
- Lost a keypair running
solana-keygen new --forcewithout a backup - Deployed without enough SOL for rent and gotten a confusing partial failure
- Left buffer accounts open, quietly bleeding SOL in rent
solctl exists to make these mistakes structurally harder to make — not by hiding the CLI, but by putting a confirmation gate in front of anything that costs real money on mainnet, and automating the safe defaults (backups, balance checks) that are easy to skip when you're moving fast.
| Category | Commands |
|---|---|
| Cluster | switch cluster, show current config, epoch diagnostics, block height, cluster node version, ping validator latency |
| Keypair | generate, rotate (with auto-backup), recover from seed phrase, list, set active, show pubkey |
| Balance / Tx | check balance, request airdrop, transfer SOL, confirm transaction signature |
| Deploy | preflight checks, deploy, upgrade, show program info, set upgrade authority, close buffer accounts |
solctl is published to crates.io as a set of modular workspace crates. This allows you to install the CLI binary globally or use its underlying safety and orchestration components as library dependencies in your own Rust projects.
To install the orchestrator executable on your system, run:
cargo install solctl-cliNote: This downloads the solctl-cli crate and registers the compiled binary globally under the command solctl.
If you are building your own tools and want to integrate the core executor or safety rules, you can add them to your Cargo.toml dependencies:
# The core Solana command executor
solctl-core = "0.2.0"
# The risk classifier and safety gating rules
solctl-safety = "0.2.0"
# The voice recording and intent mapping engine
solctl-voice = "0.2.0"To upgrade to the latest version, simply run:
cargo install solctl-cli --forcePrerequisite: The official Solana CLI must already be installed on your system — solctl orchestrates it, it does not replace it. Verify with:
solctl --version
solana --versionsolctlOpens the interactive menu. Arrow keys to navigate, Enter to select. Any action touching mainnet asks for confirmation twice — the second confirmation requires typing CONFIRM explicitly.
Direct command mode (skips the menu, still goes through the same safety gate):
solctl cluster switch devnet
solctl keypair rotate --label main
solctl balance
solctl deploy ./target/deploy/my_program.so
solctl transfer <recipient> <amount>
solctl confirm <signature>solctl features a continuous, hands-free voice command session.
To enable Voice Mode, you must set your free API keys for Groq (STT) and Gemini (intent classification):
solctl config set-key groq
solctl config set-key geminiOnce configured, you can trigger voice command sessions:
- Select Voice Command directly from the interactive menu, or
- Run the tool in voice mode directly from the terminal:
solctl --voice
- Dynamic Silence Detection: Records and monitors peak amplitude. If it hears 1.0 second of silence after you finish speaking (or 3 seconds of silence initially), it immediately stops recording and processes your command.
- Context-Aware Parameter Auto-Extraction: If you say "check balance" or "upgrade program" without specifying addresses/paths, the engine automatically resolves active parameters (such as deriving the active keypair's address or auto-detecting compiled
.sofiles intarget/deploy/) to keep the experience completely hands-free. - Multi-Command Voice Chaining: You can speak multiple commands in a single phrase (e.g. "switch to devnet and request a balance check"), and the engine will run each action in the chain sequentially.
- Continuous Loop: You can speak command after command hands-free.
- Graceful Return: Say "exit", "quit", or "goodbye" to stop voice mode and return to the main option menu safely.
Every action has a risk level:
- Read-only (balance check, list keypairs) — runs immediately
- Devnet write (airdrop, generate keypair) — single confirmation
- Mainnet write (deploy, upgrade, change upgrade authority) — shows active keypair, cluster, and estimated cost, then requires typing
CONFIRMexplicitly
This applies identically whether the action came from the menu or from voice — there is no path that skips it.
For detailed security guidelines, design principles, and double-confirmation specs, see SAFETY.md.
solctl/
├── crates/
│ ├── solctl-core/ # action logic, executor, config
│ ├── solctl-cli/ # binary, menu, clap
│ ├── solctl-safety/ # risk classification + confirmation gates
│ └── solctl-voice/ # optional STT + intent classification
We welcome contributions! Please review our Contributing Guidelines for rules, coding standards, and step-by-step guides on writing and testing updates.
MIT License.