In JMP 19.1.3, and plain vanilla Python 3.13.3 (Non JMP), I got the following improvement. This only pops up the .jmp table being created. So this is close to a solution. I would really still like to know if there is headless information ?
from pathlib import Path
import time
import win32com.client
def jsl_quote(path_or_text) -> str:
text = str(path_or_text)
text = text.replace("\\", "\\\\").replace('"', '\\"')
return f'"{text}"'
csv_path = Path(r"C:\Work\debug\jmp_debug\05302026.csv")
out_path = Path(r"C:\Work\debug\jmp_debug\05302026.jmp")
jmp = win32com.client.Dispatch("JMP.Application")
# Try False first. If nothing works, set True while debugging.
jmp.Visible = False
jsl = f"""
Names Default To Here( 1 );
dt = Open({jsl_quote(csv_path)},Invisible);
dt << Save As( {jsl_quote(out_path)} );
Close( dt, No Save );
"""
print("Running JSL...")
jmp.RunCommand(jsl)
# Give JMP a moment if RunCommand returns before save completes.
time.sleep(2)
print("Saved?", out_path.exists(), out_path)