Open terminal via Streamlit Cloud

Hello all,

I’m new with Streamlit.

I’m trying to use Streamlit Cloud to share a small app with my colleagues.
This app behavior is to ask the user where their data is stored on their computer, and then to launch a command line to do some operations with an external software.
This software show through a windows terminal it’s progression while operating on datas (and that’s why I want to open a terminal).

For this example, let’s consider an easier command.
On my local Streamlit on Windows, I can use the command os.system(“start cmd /k echo HELLO”).
Then, a terminal popup appears with “HELLO”.

When I deploy my app on Streamlit Cloud, I do the same command but this occurs :
sh: 1: start: not found

I understand that the command start don’t work like this with Streamlit cloud (as maybe windows is not in the cloud environnement ?)

Do you have any idea about how to deal with this ?
Thanks in advance for your time !

I’m not sure I understood your use case correctly.

However, I suspect that there is a misunderstanding here about how Streamlit works. Streamlit consists of a client component (webbrowser) and a server component (the Streamlit app). As long as the client and server are identical, Streamlit can access the client machine. But this is just a happy accident as long as you develop locally.

As soon as Streamlit is hosted, this doesn’t work anymore. All interaction between the client and the server must be done through the browser. All attempts to work around this are doomed to failure once Streamlit is hosted. Streamlit will not be able to execute shell commands on the client machine.

2 Likes

Thank you for this very quick answer.

I had indeed a problem in my understanding. It is clearer now, I will try to do differently to solve this problem.

Thanks again for your help.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.