Skip to content

Commit 91ad4e1

Browse files
committed
i love you 🇺🇸
1 parent 32083b1 commit 91ad4e1

File tree

3 files changed

+39
-9
lines changed

3 files changed

+39
-9
lines changed

‎interpreter/terminal_interface/start_terminal_interface.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,13 @@ def start_terminal_interface(interpreter):
266266
},
267267
]
268268

269+
if len(sys.argv) > 1 and not sys.argv[1].startswith("-"):
270+
message = " ".join(sys.argv[1:])
271+
interpreter.messages.append(
272+
{"role": "user", "type": "message", "content": "I " + message}
273+
)
274+
sys.argv = sys.argv[:1]
275+
269276
# Check for deprecated flags before parsing arguments
270277
deprecated_flags = {
271278
"--debug_mode": "--verbose",
@@ -566,7 +573,7 @@ def main():
566573
if contribute == "y":
567574
interpreter.contribute_conversation = True
568575
interpreter.display_message(
569-
"\n*Thank you for contributing!*"
576+
"\n*Thank you for contributing!*\n"
570577
)
571578

572579
if (

‎interpreter/terminal_interface/terminal_interface.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,12 @@
4747
def terminal_interface(interpreter, message):
4848
# Auto run and offline (this.. this isn't right) don't display messages.
4949
# Probably worth abstracting this to something like "debug_cli" at some point.
50-
if not interpreter.auto_run and not interpreter.offline:
50+
# If (len(interpreter.messages) == 1), they probably used the advanced "i {command}" entry, so no message should be displayed.
51+
if (
52+
not interpreter.auto_run
53+
and not interpreter.offline
54+
and not (len(interpreter.messages) == 1)
55+
):
5156
interpreter_intro_message = [
5257
"**Open Interpreter** will require approval before running code."
5358
]
@@ -74,12 +79,21 @@ def terminal_interface(interpreter, message):
7479

7580
while True:
7681
if interactive:
77-
### This is the primary input for Open Interpreter.
78-
message = (
79-
cli_input("> ").strip()
80-
if interpreter.multi_line
81-
else input("> ").strip()
82-
)
82+
if (
83+
len(interpreter.messages) == 1
84+
and interpreter.messages[-1]["role"] == "user"
85+
and interpreter.messages[-1]["type"] == "message"
86+
):
87+
# They passed in a message already, probably via "i {command}"!
88+
message = interpreter.messages[-1]["content"]
89+
interpreter.messages = interpreter.messages[:-1]
90+
else:
91+
### This is the primary input for Open Interpreter.
92+
message = (
93+
cli_input("> ").strip()
94+
if interpreter.multi_line
95+
else input("> ").strip()
96+
)
8397

8498
try:
8599
# This lets users hit the up arrow key for past messages

‎interpreter/terminal_interface/validate_llm_settings.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,17 @@ def validate_llm_settings(interpreter):
9090

9191
# Auto-run is for fast, light usage -- no messages.
9292
# If offline, it's usually a bogus model name for LiteLLM since LM Studio doesn't require one.
93-
if not interpreter.auto_run and not interpreter.offline:
93+
# If (len(interpreter.messages) == 1), they probably used the advanced "i {command}" entry, so no message should be displayed.
94+
if (
95+
not interpreter.auto_run
96+
and not interpreter.offline
97+
and not (len(interpreter.messages) == 1)
98+
):
9499
display_markdown_message(f"> Model set to `{interpreter.llm.model}`")
100+
if len(interpreter.messages) == 1:
101+
# Special message for "i {command}" usage
102+
# display_markdown_message(f"\n*{interpreter.llm.model} via Open Interpreter:*")
103+
pass
95104

96105
if interpreter.llm.model == "i":
97106
interpreter.display_message(

0 commit comments

Comments
 (0)