developing-with-streamlit
Build production-grade Streamlit apps. Used when creating, editing, debugging, or deploying Streamlit applications. Routes to specialized sub-skills for performance, layouts, design, data display, and more.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
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 |
Resources
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-02-04
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!