Skip to content

Anantdadhich/Solctl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

solctl

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.


Why this exists

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 --force without 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.


What's in scope (v1.1)

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

Installation & Crates.io Structure

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.

1. Global Installation (CLI tool)

To install the orchestrator executable on your system, run:

cargo install solctl-cli

Note: This downloads the solctl-cli crate and registers the compiled binary globally under the command solctl.

2. Library Dependencies

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"

3. Upgrading

To upgrade to the latest version, simply run:

cargo install solctl-cli --force

Prerequisite: The official Solana CLI must already be installed on your system — solctl orchestrates it, it does not replace it. Verify with:

solctl --version
solana --version

Usage

solctl

Opens 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>

Voice Mode (Optional)

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 gemini

Once 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

How it works:

  • 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 .so files in target/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.

Safety model

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 CONFIRM explicitly

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.


Project structure

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

Contributing

We welcome contributions! Please review our Contributing Guidelines for rules, coding standards, and step-by-step guides on writing and testing updates.


License

MIT License.

About

A CLI wrapper for the Solana CLI, so you don't have to memorize or hand-type commands.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages