developing-with-streamlit
A collection of agent skills for development of Streamlit apps.
npx skills add https://github.com/streamlit/agent-skills --skill developing-with-streamlitSKILL.md
Developing with Streamlit
A collection of skills for building production-grade Streamlit apps. Each skill focuses on a specific aspect of Streamlit development.
When to activate
Activate these skills when:
- Creating new Streamlit apps from scratch
- Adding features to existing apps
- Debugging performance issues
- Improving app design and UX
- Setting up project structure and environments
- Connecting to data sources like Snowflake
Quick routing
Performance issues or slow apps? → optimizing-streamlit-performance
Building a new UI? → choosing-streamlit-selection-widgets + using-streamlit-layouts
Building a dashboard? → building-streamlit-dashboards + displaying-streamlit-data
Making it look good? → improving-streamlit-design
Formatting text with markdown? → using-streamlit-markdown
Multi-page architecture? → building-streamlit-multipage-apps
Customizing appearance? → customizing-streamlit-theme
Setting up a project? → setting-up-streamlit-environment
App getting complex? → organizing-streamlit-code
Connecting to Snowflake? → connecting-streamlit-to-snowflake
Building a chatbot or AI assistant? → building-streamlit-chat-ui
Need features not in core Streamlit? → using-streamlit-custom-components
Using the Streamlit CLI? → using-streamlit-cli
State management and session state? → using-streamlit-session-state
Skill map
| Skill | Covers |
|---|---|
| building-streamlit-chat-ui | Chat interfaces, streaming responses, message history |
| building-streamlit-dashboards | KPI cards, metrics, dashboard layouts |
| building-streamlit-multipage-apps | Page structure, navigation, shared state |
| choosing-streamlit-selection-widgets | Selectbox vs radio vs segmented control vs pills vs multiselect |
| connecting-streamlit-to-snowflake | st.connection, query caching, credentials |
| customizing-streamlit-theme | Custom colors via config.toml, light/dark modes |
| displaying-streamlit-data | Dataframes, column config, charts |
| improving-streamlit-design | Icons, badges, colored text, visual polish |
| optimizing-streamlit-performance | Caching, fragments, forms, static vs dynamic widgets |
| organizing-streamlit-code | When to split into modules, separating UI from logic |
| setting-up-streamlit-environment | Python environment, dependency management |
| using-streamlit-custom-components | Third-party components from the community |
| using-streamlit-cli | CLI commands, running apps |
| using-streamlit-layouts | Sidebar, columns, containers, tabs, expanders, dialogs, alignment, spacing |
| using-streamlit-markdown | Colored text, badges, icons, LaTeX, and all markdown features |
| using-streamlit-session-state | Session state, widget keys, callbacks, state persistence |