Files
miku-discord/CLI_README.md
koko210Serve a7f3a0a0ee Add comprehensive CLI tool with interactive shell mode
- Created miku-cli.py: Full-featured CLI for Miku bot API
- Added interactive shell mode for continuous command execution
- Implemented all API endpoints: status, mood, autonomous, DM, blocking, profile pictures
- Consistent hyphenated command naming across shell and regular modes
- Created API_REFERENCE.md: Complete API endpoint documentation
- Created CLI_README.md: User guide with examples and usage instructions
- Error handling and user-friendly output formatting
2025-12-10 10:02:34 +02:00

6.2 KiB

Miku CLI - Command Line Interface

A powerful command-line interface for controlling and monitoring the Miku Discord bot.

Installation

  1. Make the script executable:
chmod +x miku-cli.py
  1. Install dependencies:
pip install requests
  1. (Optional) Create a symlink for easier access:
sudo ln -s $(pwd)/miku-cli.py /usr/local/bin/miku

Quick Start

# Check bot status
./miku-cli.py status

# Get current mood
./miku-cli.py mood --get

# Set mood to bubbly
./miku-cli.py mood --set bubbly

# List available moods
./miku-cli.py mood --list

# Trigger autonomous message
./miku-cli.py autonomous general

# List servers
./miku-cli.py servers

# View logs
./miku-cli.py logs

Configuration

By default, the CLI connects to http://localhost:3939. To use a different URL:

./miku-cli.py --url http://your-server:3939 status

Commands

Status & Information

# Get bot status
./miku-cli.py status

# View recent logs
./miku-cli.py logs

# Get last LLM prompt
./miku-cli.py prompt

Mood Management

# Get current DM mood
./miku-cli.py mood --get

# Get server mood
./miku-cli.py mood --get --server 123456789

# Set mood
./miku-cli.py mood --set bubbly
./miku-cli.py mood --set excited --server 123456789

# Reset mood to neutral
./miku-cli.py mood --reset
./miku-cli.py mood --reset --server 123456789

# List available moods
./miku-cli.py mood --list

Sleep Management

# Put Miku to sleep
./miku-cli.py sleep

# Wake Miku up
./miku-cli.py wake

# Send bedtime reminder
./miku-cli.py bedtime
./miku-cli.py bedtime --server 123456789

Autonomous Actions

# Trigger general autonomous message
./miku-cli.py autonomous general
./miku-cli.py autonomous general --server 123456789

# Trigger user engagement
./miku-cli.py autonomous engage
./miku-cli.py autonomous engage --server 123456789

# Share a tweet
./miku-cli.py autonomous tweet
./miku-cli.py autonomous tweet --server 123456789

# Trigger reaction
./miku-cli.py autonomous reaction
./miku-cli.py autonomous reaction --server 123456789

# Send custom autonomous message
./miku-cli.py autonomous custom --prompt "Tell a joke about programming"
./miku-cli.py autonomous custom --prompt "Say hello" --server 123456789

# Get autonomous stats
./miku-cli.py autonomous stats

Server Management

# List all configured servers
./miku-cli.py servers

DM Management

# List users with DM history
./miku-cli.py dm-users

# Send custom DM (LLM-generated)
./miku-cli.py dm-custom 123456789 "Ask them how their day was"

# Send manual DM (direct message)
./miku-cli.py dm-manual 123456789 "Hello! How are you?"

# Block a user
./miku-cli.py block 123456789

# Unblock a user
./miku-cli.py unblock 123456789

# List blocked users
./miku-cli.py blocked-users

Profile Picture

# Change profile picture (search Danbooru based on mood)
./miku-cli.py change-pfp

# Change to custom image
./miku-cli.py change-pfp --image /path/to/image.png

# Change for specific server mood
./miku-cli.py change-pfp --server 123456789

# Get current profile picture metadata
./miku-cli.py pfp-metadata

Conversation Management

# Reset conversation history for a user
./miku-cli.py reset-conversation 123456789

Manual Messaging

# Send message to channel
./miku-cli.py send 987654321 "Hello everyone!"

# Send message with file attachments
./miku-cli.py send 987654321 "Check this out!" --files image.png document.pdf

Available Moods

  • 😊 neutral
  • 🥰 bubbly
  • 🤩 excited
  • 😴 sleepy
  • 😡 angry
  • 🙄 irritated
  • 😏 flirty
  • 💕 romantic
  • 🤔 curious
  • 😳 shy
  • 🤪 silly
  • 😢 melancholy
  • 😤 serious
  • 💤 asleep

Examples

Morning Routine

# Wake up Miku
./miku-cli.py wake

# Set a bubbly mood
./miku-cli.py mood --set bubbly

# Send a general message to all servers
./miku-cli.py autonomous general

# Change profile picture to match mood
./miku-cli.py change-pfp

Server-Specific Control

# Get server list
./miku-cli.py servers

# Set mood for specific server
./miku-cli.py mood --set excited --server 123456789

# Trigger engagement on that server
./miku-cli.py autonomous engage --server 123456789

DM Interaction

# List users
./miku-cli.py dm-users

# Send custom message
./miku-cli.py dm-custom 123456789 "Ask them about their favorite anime"

# If user is spamming, block them
./miku-cli.py block 123456789

Monitoring

# Check status
./miku-cli.py status

# View logs
./miku-cli.py logs

# Get autonomous stats
./miku-cli.py autonomous stats

# Check last prompt
./miku-cli.py prompt

Output Format

The CLI uses emoji and colored output for better readability:

  • Success messages
  • Error messages
  • 😊 Mood indicators
  • 🌐 Server information
  • 💬 DM information
  • 📊 Statistics
  • 🖼️ Media information

Scripting

The CLI is designed to be script-friendly:

#!/bin/bash

# Morning routine script
./miku-cli.py wake
./miku-cli.py mood --set bubbly
./miku-cli.py autonomous general

# Wait 5 minutes
sleep 300

# Engage users
./miku-cli.py autonomous engage

Error Handling

The CLI exits with status code 1 on errors and 0 on success, making it suitable for use in scripts:

if ./miku-cli.py mood --set bubbly; then
    echo "Mood set successfully"
else
    echo "Failed to set mood"
fi

API Reference

For complete API documentation, see API_REFERENCE.md.

Troubleshooting

Connection Refused

If you get "Connection refused" errors:

  1. Check that the bot API is running on port 3939
  2. Verify the URL with --url parameter
  3. Check Docker container status: docker-compose ps

Permission Denied

Make the script executable:

chmod +x miku-cli.py

Import Errors

Install required dependencies:

pip install requests

Future Enhancements

Planned features:

  • Configuration file support (~/.miku-cli.conf)
  • Interactive mode
  • Tab completion
  • Color output control
  • JSON output mode for scripting
  • Batch operations
  • Watch mode for real-time monitoring

Contributing

Feel free to extend the CLI with additional commands and features!