
Security Fundamentals
Turtles, Clams, and Cyber Threat Actors: Shell Usage
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
Shiny for Python is the best way to build fast, beautiful web applications in Python. You can build quickly with Shiny and create simple interactive visualizations and prototype applications in an afternoon. But unlike other frameworks targeted at data scientists, Shiny does not limit your app's growth. Shiny remains extensible enough to power large, mission-critical applications.
To learn more about Shiny see the Shiny for Python website. If you're new to the framework we recommend these resources:
How Shiny is different from Dash and Streamlit.
How reactive programming can help you build better applications.
How to use modules to efficiently develop large applications.
Hosting applications for free on shinyapps.io, Hugging Face, or Shinylive.
If you have questions about Shiny for Python, or want to help us decide what to work on next, join us on Discord.
To get started with shiny follow the installation instructions or just install it from pip.
pip install shiny
To install the latest development version:
# First install htmltools, then shiny
pip install git+https://github.com/posit-dev/py-htmltools.git#egg=htmltools
pip install git+https://github.com/posit-dev/py-shiny.git#egg=shiny
You can create and run your first application with shiny create
, the CLI will ask you which template you would like to use. You can either run the app with the Shiny extension, or call shiny run app.py --reload --launch-browser
.
main
branch: https://posit-dev.github.io/py-shiny/shinylive/py/examples/main
branch:
If you are working from a fork you may not have the git tags from the original repo. Git tags are required for the install to succeed. To add tags to your own fork:
git remote add upstream https://github.com/posit-dev/py-shiny.git
git fetch --tags upstream
Then install:
pip install -e ".[dev,test,doc]"
Additionally, you can install pre-commit hooks which will automatically reformat and lint the code when you make a commit:
pre-commit install
# To disable:
# pre-commit uninstall
Tests should now pass:
make check
# To apply formatting fixes instead of erroring:
# make check-fix
Or get a full list of helpers with just:
make
Typically, when developing new features for Shiny, you'll want to try them out in an application.
In a separate application directory, use can use -e
to reference your local checkout of py-shiny
:
# Rather than
# pip install shiny
# run:
pip install -e ../py-shiny --config-settings editable_mode=compat
See the docs README for instructions on building the documentation locally.
FAQs
A web development framework for Python.
We found that shiny demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security Fundamentals
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
Security News
At VulnCon 2025, NIST scrapped its NVD consortium plans, admitted it can't keep up with CVEs, and outlined automation efforts amid a mounting backlog.
Product
We redesigned our GitHub PR comments to deliver clear, actionable security insights without adding noise to your workflow.