How do i hide/ remove the menu in production?


I would like to be able to remove the menu bar when shipping to production. Is that possible?


I would think it natural to remove. The user does not need to understand that this is a Streamlit app as far as I can see. Maybe they would still need to be able to recalculate? Or clear the cache? But so far I only see the use case for that in development.



Or even better. At some stage someone would ask for a menu for navigation. Could the existing menu be extended to that so that

  1. I as a developer i could configure which of the existing items to enable and disable.
  2. Add my own items that if clicked would trigger an update
  3. enable a tree structure of subitems of items.
  4. choose between the existing minimized layout or a maximized, expanded top menubar layout


so far I only see the use case for that in development.

I agree. We’ve been thinking about how to solve that one lately. One idea is: when developing a Streamlit app you’d use streamlit run as usual, but when serving it to users you’d use streamlit serve

The latter would start the app normally except:

  1. The hamburger menu have fewer items (or maybe it wouldn’t be there at all, as you propose)
  2. Streamlit would not watch your filesystem for changes
  3. Probably some other stuff :smiley:

I started a feature request to track this here:


And also this one:


Has there been a solution for removing this yet?


Hey @zacheism :wave:, this is a functionality that we’re still building out and we don’t yet have a set timeline for when it will be available. I’d definitely recommend following, upvoting, and/or commenting on the enhancement though! We’d :heart: to get your input on it, especially while it’s still in the development phase. We’re always looking for feedback from the community about workflows and how Streamlit is being used in those workflows.


Sounds good! I don’t really have much to add to the issue, just that this menu doesn’t really serve any purpose to the user, so there’s no reason the user should see it. I like the production / development mode idea though as it is helpful for clearing the cache / rerunning. But having two menus (the side bar and the hamburger), in my opinion, is just confusing and somewhat odd from a UI/UX perspective. But then again, I much prefer minimalistic design (which you guys otherwise nail) so this could just be my opinion.


I upvoted the Github issue to remove the hamburger menu. It’s a non starter. I won’t use streamlit to deploy apps to non-technical content consumers without being able to hide that menu – it’s just too confusing.

1 Like

hide_streamlit_style = “”"

#MainMenu {visibility: hidden;}
footer {visibility: hidden;}

st.markdown(hide_streamlit_style, unsafe_allow_html=True)

try this


@Mani Your answer is partially correct. I just tried it but need to add the style tags.

hide_streamlit_style = """
#MainMenu {visibility: hidden;}
footer {visibility: hidden;}

st.markdown(hide_streamlit_style, unsafe_allow_html=True) 

This will hide the hamburger menu completely.