Tim O'Farrell f292f3a84d
V1 Integration (#11183)
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: sp.wack <83104063+amanape@users.noreply.github.com>
Co-authored-by: Engel Nyst <enyst@users.noreply.github.com>
2025-10-14 02:16:44 +00:00

55 lines
1.6 KiB
Python

"""Main entry point for OpenHands CLI with subcommand support."""
import sys
# Import only essential modules for CLI help
# Other imports are deferred until they're actually needed
import openhands
import openhands.cli.suppress_warnings # noqa: F401
from openhands.cli.fast_help import handle_fast_commands
def main():
"""Main entry point with subcommand support and backward compatibility."""
# Fast path for help and version commands
if handle_fast_commands():
sys.exit(0)
# Import parser only when needed - only if we're not just showing help
from openhands.core.config import get_cli_parser
parser = get_cli_parser()
# Special case: no subcommand provided, simulate "openhands cli"
if len(sys.argv) == 1 or (
len(sys.argv) > 1 and sys.argv[1] not in ['cli', 'serve']
):
# Inject 'cli' as default command
sys.argv.insert(1, 'cli')
args = parser.parse_args()
if hasattr(args, 'version') and args.version:
from openhands import get_version
print(f'OpenHands CLI version: {get_version()}')
sys.exit(0)
if args.command == 'serve':
# Import gui_launcher only when needed
from openhands.cli.gui_launcher import launch_gui_server
launch_gui_server(mount_cwd=args.mount_cwd, gpu=args.gpu)
elif args.command == 'cli' or args.command is None:
# Import main only when needed
from openhands.cli.main import run_cli_command
run_cli_command(args)
else:
parser.print_help()
sys.exit(1)
if __name__ == '__main__':
main()