diff --git a/aider/coder.py b/aider/coder.py index f23fd6dfc..1890d2d4a 100755 --- a/aider/coder.py +++ b/aider/coder.py @@ -20,9 +20,6 @@ from aider import prompts from aider.commands import Commands from aider.repomap import RepoMap -openai.api_key = os.getenv("OPENAI_API_KEY") - - class Coder: abs_fnames = None repo = None @@ -41,7 +38,12 @@ class Coder: dry_run=False, use_ctags=False, verbose=False, + openai_api_key=None, ): + if openai_api_key: + openai.api_key = openai_api_key + else: + openai.api_key = os.getenv("OPENAI_API_KEY") self.verbose = verbose self.abs_fnames = set() self.cur_messages = [] diff --git a/aider/main.py b/aider/main.py index 20a461fa4..ba91e86eb 100644 --- a/aider/main.py +++ b/aider/main.py @@ -127,6 +127,11 @@ def main(args=None, input=None, output=None): dest="dirty_commits", help="Disable dirty commit of changes", ) + parser.add_argument( + "--openai-api-key", + metavar="OPENAI_API_KEY", + help="Specify the OpenAI API key", + ) parser.add_argument( "--dry-run", action="store_true", @@ -194,6 +199,7 @@ def main(args=None, input=None, output=None): dry_run=args.dry_run, use_ctags=args.ctags, verbose=args.verbose, + openai_api_key=args.openai_api_key, ) if args.dirty_commits: coder.commit(ask=True, prefix="wip: ", which="repo_files")