diff --git a/aider/args.py b/aider/args.py index f38113a3f..58a08f5a0 100644 --- a/aider/args.py +++ b/aider/args.py @@ -193,6 +193,12 @@ def get_parser(default_config_files, git_root): default=".aider.model.metadata.json", help="Specify a file with context window and costs for unknown models", ) + group.add_argument( + "--alias", + action="append", + metavar="ALIAS:MODEL", + help="Add a model alias (can be used multiple times)", + ) group.add_argument( "--verify-ssl", action=argparse.BooleanOptionalAction, diff --git a/aider/main.py b/aider/main.py index 28e347be8..49e17cd32 100644 --- a/aider/main.py +++ b/aider/main.py @@ -635,6 +635,18 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F register_models(git_root, args.model_settings_file, io, verbose=args.verbose) register_litellm_models(git_root, args.model_metadata_file, io, verbose=args.verbose) + # Process any command line aliases + if args.alias: + for alias_def in args.alias: + # Split on first colon only + parts = alias_def.split(':', 1) + if len(parts) != 2: + io.tool_error(f"Invalid alias format: {alias_def}") + io.tool_output("Format should be: alias:model-name") + return 1 + alias, model = parts + models.MODEL_ALIASES[alias.strip()] = model.strip() + if not args.model: args.model = "gpt-4o-2024-08-06" if os.environ.get("ANTHROPIC_API_KEY"):