Clover/cli/parser.py
2026-01-13 02:00:28 -06:00

57 lines
2.2 KiB
Python

"""
CLI argument parser for Clover - A terminal assistant for AI-powered project management
"""
import argparse
import sys
def parse_args():
"""
Parse command line arguments for Clover CLI
"""
parser = argparse.ArgumentParser(
prog='clover',
description='Clover - AI-powered terminal assistant for project management',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
clover /list # List available models
clover /init # Initialize project summary
clover /timeout 300 # Set timeout to 300 seconds
clover /threads 5 # Set thread limit to 5
clover "Write a Python function to calculate factorial"
"""
)
# Positional argument for general prompts (no leading slash)
parser.add_argument('prompt', nargs='?', help='Prompt for AI assistant')
# Command arguments (starting with /) - these will be handled differently in interactive mode
parser.add_argument('--list', action='store_true',
help='List available models on the server')
parser.add_argument('--init', action='store_true',
help='Initialize project summary file')
parser.add_argument('--timeout', type=int, metavar='SECONDS',
help='Set timeout duration for AI operations')
parser.add_argument('--threads', type=int, metavar='COUNT',
help='Set maximum number of threads for concurrent operations')
return parser.parse_args()
def print_help():
"""Print help message"""
print("Clover CLI Tool")
print("=" * 40)
print("Available commands:")
print(" --list - List available models on the server")
print(" --init - Initialize project summary file")
print(" --timeout SECS - Set timeout duration for AI operations")
print(" --threads N - Set maximum number of threads for concurrent operations")
print("")
print("Examples:")
print(" clover --list")
print(" clover --init")
print(" clover --timeout 300")
print(" clover --threads 5")
print(" clover \"Write a Python function to calculate factorial\"")