Mining/docs/user-guide/cli.md
snider 313782c161 docs: Add MkDocs documentation site with GitHub Pages deployment
Convert documentation to MkDocs with Material theme for GitHub Pages hosting.
Includes comprehensive guides for API, CLI, desktop app, and development.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 00:25:26 +00:00

8.5 KiB

CLI User Guide

The miner-ctrl command-line interface provides complete control over Mining Platform from your terminal.

Installation

See the Installation Guide for installation instructions.

Global Flags

These flags work with any command:

  • --config string: Config file path (default: $HOME/.mining.yaml)
  • --help: Show help for the command

Commands

serve

Start the mining service and interactive shell.

Usage:

miner-ctrl serve [flags]

Flags:

  • --host string: Host to listen on (default: 0.0.0.0)
  • -p, --port int: Port to listen on (default: 8080)
  • -n, --namespace string: API namespace (default: /api/v1/mining)

Examples:

# Start on localhost:9090
miner-ctrl serve --host localhost --port 9090

# Start with custom namespace
miner-ctrl serve --namespace /mining/v2

# Start with interactive shell
miner-ctrl serve

When the server is running, you can access:

  • REST API: http://localhost:8080/api/v1/mining/
  • Swagger UI: http://localhost:8080/api/v1/mining/swagger/index.html

start

Start a new miner instance.

Usage:

miner-ctrl start [miner-type] [flags]

Arguments:

  • miner-type: Type of miner to start (e.g., xmrig)

Flags:

  • --config string: Path to configuration file
  • --pool string: Mining pool URL
  • --wallet string: Wallet address
  • --algo string: Mining algorithm
  • --threads int: Number of threads to use

Examples:

# Start with config file
miner-ctrl start xmrig --config xmr-config.json

# Start with inline parameters
miner-ctrl start xmrig \
  --pool stratum+tcp://pool.supportxmr.com:3333 \
  --wallet YOUR_WALLET_ADDRESS \
  --algo rx/0 \
  --threads 4

# Start GPU mining
miner-ctrl start xmrig \
  --pool stratum+tcp://etc.woolypooly.com:3333 \
  --wallet YOUR_ETC_WALLET \
  --algo etchash \
  --cuda

stop

Stop a running miner instance.

Usage:

miner-ctrl stop [miner-name]

Examples:

# Stop a miner by name
miner-ctrl stop xmrig

# Stop all miners
miner-ctrl stop --all

status

Get the status and statistics of a running miner.

Usage:

miner-ctrl status [miner-name]

Output includes:

  • Hashrate (current and average)
  • Accepted/rejected shares
  • Uptime
  • Temperature (if supported)
  • Power usage (if supported)

Examples:

# Get status of specific miner
miner-ctrl status xmrig

# Get JSON output for scripting
miner-ctrl status xmrig --json

list

List running miners and available miner types.

Usage:

miner-ctrl list [flags]

Flags:

  • --running: Show only running miners
  • --available: Show only available miner types

Examples:

# List all running miners
miner-ctrl list

# Show available miner types
miner-ctrl list --available

# Detailed output
miner-ctrl list --verbose

install

Install or update a miner binary.

Usage:

miner-ctrl install [miner-type] [flags]

Flags:

  • --force: Force reinstall even if already installed
  • --version string: Install specific version

Examples:

# Install XMRig
miner-ctrl install xmrig

# Install specific version
miner-ctrl install xmrig --version 6.21.0

# Force reinstall
miner-ctrl install xmrig --force

Miners are installed to ~/.local/share/lethean-desktop/miners/[miner-type]/.

uninstall

Uninstall a miner and remove its files.

Usage:

miner-ctrl uninstall [miner-type]

Examples:

# Uninstall XMRig
miner-ctrl uninstall xmrig

# Uninstall with confirmation
miner-ctrl uninstall xmrig --confirm

update

Check for updates to installed miners.

Usage:

miner-ctrl update [flags]

Flags:

  • --check-only: Only check for updates, don't install
  • --all: Update all miners with available updates

Examples:

# Check for updates
miner-ctrl update --check-only

# Update all miners
miner-ctrl update --all

# Update specific miner
miner-ctrl update xmrig

doctor

Check the status of all installed miners and system configuration.

Usage:

miner-ctrl doctor

Output includes:

  • Installed miners and versions
  • GPU detection (OpenCL/CUDA)
  • System resources
  • Configuration file locations
  • Potential issues and recommendations

Examples:

# Run full diagnostic
miner-ctrl doctor

# Output to file for troubleshooting
miner-ctrl doctor > system-info.txt

completion

Generate shell completion scripts.

Usage:

miner-ctrl completion [shell]

Supported shells:

  • bash
  • zsh
  • fish
  • powershell

Examples:

# Bash completion
miner-ctrl completion bash > /etc/bash_completion.d/miner-ctrl

# Zsh completion
miner-ctrl completion zsh > "${fpath[1]}/_miner-ctrl"

# Fish completion
miner-ctrl completion fish > ~/.config/fish/completions/miner-ctrl.fish

Configuration File

Create a config file at ~/.mining.yaml:

server:
  host: localhost
  port: 9090
  namespace: /api/v1/mining

defaults:
  miner: xmrig
  threads: 4
  cpuPriority: 3

profiles:
  - name: XMR
    pool: stratum+tcp://pool.supportxmr.com:3333
    wallet: YOUR_XMR_WALLET
    algo: rx/0

  - name: ETC
    pool: stratum+tcp://etc.woolypooly.com:3333
    wallet: YOUR_ETC_WALLET
    algo: etchash

Load a profile:

miner-ctrl start --profile XMR

Interactive Shell

When you run miner-ctrl serve without backgrounding it, you get an interactive shell:

Mining Platform v1.0.0
API Server running on http://localhost:9090
Type 'help' for available commands

mining> help
Available commands:
  list      - List running miners
  start     - Start a miner
  stop      - Stop a miner
  status    - Get miner status
  profiles  - Manage profiles
  exit      - Exit shell

mining> list
Running miners:
  xmrig - Hashrate: 4520 H/s, Shares: 42/0

mining> status xmrig
Miner: xmrig
Status: Running
Hashrate: 4520 H/s
Accepted Shares: 42
Rejected Shares: 0
Uptime: 2h 15m

Output Formats

Most commands support multiple output formats:

# Human-readable (default)
miner-ctrl list

# JSON for scripting
miner-ctrl list --output json

# YAML
miner-ctrl status xmrig --output yaml

# Table format
miner-ctrl list --output table

Environment Variables

Configure behavior with environment variables:

# Set config file location
export MINING_CONFIG=~/.config/mining.yaml

# Set data directory
export MINING_DATA_DIR=~/.local/share/mining

# Set log level
export MINING_LOG_LEVEL=debug

# Start server
miner-ctrl serve

Examples

Basic Mining Workflow

# 1. Install miner
miner-ctrl install xmrig

# 2. Verify installation
miner-ctrl doctor

# 3. Start mining
miner-ctrl start xmrig \
  --pool stratum+tcp://pool.supportxmr.com:3333 \
  --wallet YOUR_WALLET \
  --algo rx/0

# 4. Monitor
miner-ctrl status xmrig

# 5. Stop when done
miner-ctrl stop xmrig

Dual Mining (CPU + GPU)

# Start CPU mining for Monero
miner-ctrl start xmrig-cpu \
  --pool stratum+tcp://pool.supportxmr.com:3333 \
  --wallet YOUR_XMR_WALLET \
  --algo rx/0 \
  --threads 4

# Start GPU mining for Ethereum Classic
miner-ctrl start xmrig-gpu \
  --pool stratum+tcp://etc.woolypooly.com:3333 \
  --wallet YOUR_ETC_WALLET \
  --algo etchash \
  --cuda

# Monitor both
miner-ctrl list

Automated Monitoring

# Create a monitoring script
cat > monitor.sh << 'EOF'
#!/bin/bash
while true; do
  clear
  echo "=== Mining Status ==="
  miner-ctrl status xmrig --output json | jq '.hashrate, .shares'
  sleep 10
done
EOF

chmod +x monitor.sh
./monitor.sh

Troubleshooting

Command Not Found

Ensure miner-ctrl is in your PATH:

which miner-ctrl
# If not found, add to PATH or use full path

Permission Denied

On Linux, you may need to run with appropriate permissions:

# Grant execute permission
chmod +x miner-ctrl

# Or run with sudo if needed (not recommended)
sudo miner-ctrl doctor

Miner Won't Start

Check logs for errors:

# Enable debug logging
miner-ctrl --log-level debug start xmrig ...

# Check system journal (Linux)
journalctl -u mining-service

Port Already in Use

If port 8080 is already in use:

# Use a different port
miner-ctrl serve --port 9090

Next Steps