import gradio as gr import io import sys import os class PersistentRunner: def __init__(self): self.globals = {} def run(self, code): old_stdout = sys.stdout sys.stdout = buffer = io.StringIO() try: exec(code, self.globals) except Exception as e: print(f"Error: {e}") finally: sys.stdout = old_stdout return buffer.getvalue() runner = PersistentRunner() def run(code): if code.startswith("!"): os.system(code[1:]) else: return runner.run(code.replace("\\n", "\n")) demo = gr.Interface(fn=run, inputs="text", outputs="text") demo.launch()