René's URL Explorer Experiment


Title: feat(examples): Streamlit example apps over .deepnote files by voyti · Pull Request #523 · deepnote/deepnote · GitHub

Open Graph Title: feat(examples): Streamlit example apps over .deepnote files by voyti · Pull Request #523 · deepnote/deepnote

X Title: feat(examples): Streamlit example apps over .deepnote files by voyti · Pull Request #523 · deepnote/deepnote

Description: Adds Streamlit versions of the static and dynamic apps in examples/local-runner. This PR was split out of #466, which is now merged, and is rebased onto main. What examples/streamlit/: static_app.py shows the outputs saved in a snapshot. dynamic_app.py shows the notebook's inputs as widgets and runs the notebook through deepnote_toolkit.notebooks and deepnote_toolkit.streamlit. serve.mjs starts a local runner process for the dynamic app. Smoke tests, plus the example:streamlit:* and test:streamlit scripts. Why it is still a draft The apps import deepnote_toolkit.notebooks and deepnote_toolkit.streamlit. Both were merged in deepnote/deepnote-toolkit#122 but are not in a Deepnote Toolkit release yet. The latest release, 2.7.0, predates the merge. Until a release includes them, pnpm test:streamlit fails, because it installs the toolkit from PyPI. Verified The smoke tests pass against toolkit main (b6ae159, the #122 merge) on Python 3.12 and 3.14. In an offline test with network calls stubbed, the dynamic app sent DEEPNOTE_TOKEN to api.deepnote.com. With DEEPNOTE_PROJECT_ID exported, it stopped with "Could not resolve the Deepnote Streamlit app ID", as the README warns. With the local runner process (pnpm example:streamlit:runner), the app connects, the inputs match, and a run without a token fails with a clear error. On staging (toolkit b6ae159), following the README: deepnote run --cloud --push deployed the notebook to a new project, the files were uploaded, Streamlit app API access was turned on, and deepnote streamlit publish created the app and waited until it was running. A workspace admin and a workspace viewer each opened the app, connected to Deepnote Cloud and completed a run. The dashboard showed the metrics, chart, table, image and agent text. After one input was renamed in the deployed notebook, the app showed the mismatch warning and disabled the run button. Before marking ready for review A Deepnote Toolkit release that includes #122. Then pin the three uv --with scripts to it and drop the release condition from the README's test section. One live local run with an API token against a production notebook. A check on staging with a signed-out or link-only visitor. The test workspace does not allow link sharing. Notes The server gives hosted apps a viewer token only in workspaces where the rollout flag is on. Elsewhere, the token request is refused with "API access is not available for this app", and the run button stays disabled. Local runs with a token or a runner process are not affected. The run API does not show which viewer started a run, so the staging check could not confirm who each run belonged to. Summary by CodeRabbit New Features Added Streamlit examples for viewing saved notebook snapshots without network access and running notebooks dynamically, with sales metrics, regional charts, and available analysis. Dynamic runs support local or hosted runners, show run status and errors, and link to results when available. Added commands to launch the examples and run their tests. Documentation Linked the Streamlit and local runner examples from the examples guide, with guidance on setup, publishing, hosted access, and testing.

Open Graph Description: Adds Streamlit versions of the static and dynamic apps in examples/local-runner. This PR was split out of #466, which is now merged, and is rebased onto main. What examples/streamlit/: static_app....

X Description: Adds Streamlit versions of the static and dynamic apps in examples/local-runner. This PR was split out of #466, which is now merged, and is rebased onto main. What examples/streamlit/: static_app....

Opengraph URL: https://github.com/deepnote/deepnote/pull/523

X: @github

direct link

Domain: github.com

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:edf88369-7f61-b87f-d186-5b13879cec77
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idBE7C:2AB5E3:118DB4A:16FAA56:6AED66DA
html-safe-nonce13ff9e4d00589b325ffa0e5734de1335b84b5c5be177a4a8c877e68ca87cbeec
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCRTdDOjJBQjVFMzoxMThEQjRBOjE2RkFBNTY6NkFFRDY2REEiLCJ2aXNpdG9yX2lkIjoiNzM2MTgxMDM4MDc5MjYyMDc2MiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac0a5de0a400c22e9f45ed911dea52552263b7644ec204c1d94e8fcc715665eb2f
hovercard-subject-tagpull_request:4559193194
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/deepnote/deepnote/pull/523/files
twitter:imagehttps://avatars.githubusercontent.com/u/6819634?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/6819634?s=400&v=4
og:image:altAdds Streamlit versions of the static and dynamic apps in examples/local-runner. This PR was split out of #466, which is now merged, and is rebased onto main. What examples/streamlit/: static_app....
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None56fb42677ae87ed3e64410323d67980aa65d0485568a7858f874e7edfc6d1c11
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/deepnote/deepnote git https://github.com/deepnote/deepnote.git
octolytics-dimension-user_id45339858
octolytics-dimension-user_logindeepnote
octolytics-dimension-repository_id1066509034
octolytics-dimension-repository_nwodeepnote/deepnote
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1066509034
octolytics-dimension-repository_network_root_nwodeepnote/deepnote
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9c9a37e2423ed382cf39f70b5aa4b4858b40a3b0
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/deepnote/deepnote/pull/523/files#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fdeepnote%2Fdeepnote%2Fpull%2F523%2Ffiles
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fdeepnote%2Fdeepnote%2Fpull%2F523%2Ffiles
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=deepnote%2Fdeepnote
Reloadhttps://github.com/deepnote/deepnote/pull/523/files
Reloadhttps://github.com/deepnote/deepnote/pull/523/files
Reloadhttps://github.com/deepnote/deepnote/pull/523/files
deepnotehttps://github.com/deepnote
deepnotehttps://github.com/deepnote/deepnote
Codehttps://github.com/deepnote/deepnote
Issues13 (13)https://github.com/deepnote/deepnote/issues
Pull requests22 (22)https://github.com/deepnote/deepnote/pulls
Discussionshttps://github.com/deepnote/deepnote/discussions
Actionshttps://github.com/deepnote/deepnote/actions
Security and qualityhttps://github.com/deepnote/deepnote/security
Insightshttps://github.com/deepnote/deepnote/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fdeepnote%2Fdeepnote%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fdeepnote%2Fdeepnote%2Fissues%2Fnew%2Fchoose
voytihttps://github.com/voyti
mainhttps://github.com/deepnote/deepnote/tree/main
feat/streamlit-apps-exampleshttps://github.com/deepnote/deepnote/tree/feat/streamlit-apps-examples
Conversation 11 https://github.com/deepnote/deepnote/pull/523
Commits 10 https://github.com/deepnote/deepnote/pull/523/commits
Checks 21 https://github.com/deepnote/deepnote/pull/523/checks
Files changed https://github.com/deepnote/deepnote/pull/523/files
Please reload this pagehttps://github.com/deepnote/deepnote/pull/523/files
feat(examples): Streamlit example apps over .deepnote files https://github.com/deepnote/deepnote/pull/523/files#top
Show all changes 10 commits https://github.com/deepnote/deepnote/pull/523/files
830e9e7 feat(examples): Streamlit example apps over .deepnote files voyti Sep 17, 2026 https://github.com/deepnote/deepnote/pull/523/commits/830e9e7c2947dfb1d55571592e070cf30b75f316
f19106c fix(examples): match the Streamlit examples to the merged toolkit hel… voyti Sep 29, 2026 https://github.com/deepnote/deepnote/pull/523/commits/f19106c99ce8475b05a43f15ec0d9b65bfa820e5
d85d3cb docs(examples): the Streamlit runner sends inputs by name, not block ids voyti Sep 30, 2026 https://github.com/deepnote/deepnote/pull/523/commits/d85d3cbd0ca7692c06c4efb59ac026575774237c
8cd12de fix(examples): clearer wording and labels in the Streamlit examples voyti Sep 30, 2026 https://github.com/deepnote/deepnote/pull/523/commits/8cd12dea8cd19c5812fe574a19c68a954de3498b
3137c0b chore(examples): pin the Streamlit examples to Deepnote Toolkit 2.8.0 voyti Oct 6, 2026 https://github.com/deepnote/deepnote/pull/523/commits/3137c0bd95c5eb2554808f1bce8962c0c71e435a
b8b3547 Merge branch 'main' into feat/streamlit-apps-examples voyti Oct 9, 2026 https://github.com/deepnote/deepnote/pull/523/commits/b8b3547cca254badabbbb90a2474add39e7654fc
fc83bec fix(examples): keep the Streamlit chart labels and dollar amounts right voyti Oct 9, 2026 https://github.com/deepnote/deepnote/pull/523/commits/fc83bec16c2ef68b7c0eeddeb48e4d9246291a98
88d854d fix(examples): say why the dynamic Streamlit app can't run voyti Oct 9, 2026 https://github.com/deepnote/deepnote/pull/523/commits/88d854d89dab7023d31eac2ab3a3ac0406c29238
3fad8fc docs(examples): cover uv, notebook import, API access and agent blocks voyti Oct 9, 2026 https://github.com/deepnote/deepnote/pull/523/commits/3fad8fc3eb9f6ee6a2a1ffe81e5d07546e8c99d9
b31b3c9 ci: run the Streamlit example smoke tests voyti Oct 9, 2026 https://github.com/deepnote/deepnote/pull/523/commits/b31b3c935cd271f81c7b90726c9344c5ccb35fc0
Clear filters https://github.com/deepnote/deepnote/pull/523/files
Please reload this pagehttps://github.com/deepnote/deepnote/pull/523/files
Please reload this pagehttps://github.com/deepnote/deepnote/pull/523/files
ci.yml https://github.com/deepnote/deepnote/pull/523/files#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03f
.gitignore https://github.com/deepnote/deepnote/pull/523/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
docs-dictionary.txt https://github.com/deepnote/deepnote/pull/523/files#diff-c96df37ea86990896f0d35a689d39b33127421d7edae0369efa3de3e0284158a
README.md https://github.com/deepnote/deepnote/pull/523/files#diff-49aaa2819e35a856818ecec8c9fa7e1c79ad028d3f44bd749736353cfb51bac9
README.md https://github.com/deepnote/deepnote/pull/523/files#diff-fdc0917e0d9c07d15645f7233992d7de5e366bb28cff48cd33d00943bc7fd18a
_sales_dashboard.py https://github.com/deepnote/deepnote/pull/523/files#diff-ce2320d4215167bdadaefbdcf8546205c5eecd2dc438b45ed3b60dce347efc45
dynamic_app.py https://github.com/deepnote/deepnote/pull/523/files#diff-247fdd4cfd83ee641ef2f9948be4e486df969dd4b954c0eba89a10f2518161e8
index.html https://github.com/deepnote/deepnote/pull/523/files#diff-196c7345c3b2277c3ab10c60dc2b26839cca6fcb1db85efce8ae9d81057960ab
serve.mjs https://github.com/deepnote/deepnote/pull/523/files#diff-0a4e5d1a56d85413325c3c835e322af403c1d8bba7229728795bcac8c6c6414a
static_app.py https://github.com/deepnote/deepnote/pull/523/files#diff-caf50b5a3741a45620fcbf349641a830606537210a8bcbd5880a0b10eaa07b71
test_examples.py https://github.com/deepnote/deepnote/pull/523/files#diff-71e0ab8cb15ed223a44893e576e80465ed7e5654f59fdae3f1d28361fd607e82
package.json https://github.com/deepnote/deepnote/pull/523/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
.github/workflows/ci.ymlhttps://github.com/deepnote/deepnote/pull/523/files#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03f
View file https://github.com/deepnote/deepnote/blob/b31b3c935cd271f81c7b90726c9344c5ccb35fc0/.github/workflows/ci.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/523/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/pull/523/files#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03f
https://github.com/deepnote/deepnote/pull/523/files#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03f
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
.gitignorehttps://github.com/deepnote/deepnote/pull/523/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
View file https://github.com/deepnote/deepnote/blob/b31b3c935cd271f81c7b90726c9344c5ccb35fc0/.gitignore
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/523/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/pull/523/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
https://github.com/deepnote/deepnote/pull/523/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
docs-dictionary.txthttps://github.com/deepnote/deepnote/pull/523/files#diff-c96df37ea86990896f0d35a689d39b33127421d7edae0369efa3de3e0284158a
View file https://github.com/deepnote/deepnote/blob/b31b3c935cd271f81c7b90726c9344c5ccb35fc0/docs-dictionary.txt
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/523/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/pull/523/files#diff-c96df37ea86990896f0d35a689d39b33127421d7edae0369efa3de3e0284158a
https://github.com/deepnote/deepnote/pull/523/files#diff-c96df37ea86990896f0d35a689d39b33127421d7edae0369efa3de3e0284158a
https://github.com/deepnote/deepnote/pull/523/files#diff-c96df37ea86990896f0d35a689d39b33127421d7edae0369efa3de3e0284158a
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
examples/README.mdhttps://github.com/deepnote/deepnote/pull/523/files#diff-49aaa2819e35a856818ecec8c9fa7e1c79ad028d3f44bd749736353cfb51bac9
View file https://github.com/deepnote/deepnote/blob/b31b3c935cd271f81c7b90726c9344c5ccb35fc0/examples/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/523/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/pull/523/files#diff-49aaa2819e35a856818ecec8c9fa7e1c79ad028d3f44bd749736353cfb51bac9
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
examples/streamlit/README.mdhttps://github.com/deepnote/deepnote/pull/523/files#diff-fdc0917e0d9c07d15645f7233992d7de5e366bb28cff48cd33d00943bc7fd18a
View file https://github.com/deepnote/deepnote/blob/b31b3c935cd271f81c7b90726c9344c5ccb35fc0/examples/streamlit/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/523/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
examples/streamlit/_sales_dashboard.pyhttps://github.com/deepnote/deepnote/pull/523/files#diff-ce2320d4215167bdadaefbdcf8546205c5eecd2dc438b45ed3b60dce347efc45
View file https://github.com/deepnote/deepnote/blob/b31b3c935cd271f81c7b90726c9344c5ccb35fc0/examples/streamlit/_sales_dashboard.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/523/{{ revealButtonHref }}
Please reload this pagehttps://github.com/deepnote/deepnote/pull/523/files
Please reload this pagehttps://github.com/deepnote/deepnote/pull/523/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.