$npx skillfedfor your agent

streamlit-js-eval

A custom Streamlit component to evaluate arbitrary Javascript expressions.

With conditionsPyPI Dynamic ContentReleased Jan 2026120.8K downloads / moPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — streamlit_js_eval-1.0.0-py3-none-any.whl
v1.0.0 · released 2026-01-09 · Python >=3.8 · 1 runtime deps: streamlit

Yes, if you need browser API access in Streamlit and accept the maintenance risk. Install friction is low and the package has no known vulnerabilities. However, verify the license terms first (currently unclear), and be aware that maintenance is aging—last release was 217 days ago. The known limitation with st.button in branching contexts may affect some use cases; check whether the bootstrapButton workaround suits your needs.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python >=3.8 and a running Streamlit app; JavaScript execution depends on browser environment, so it only works in deployed or local Streamlit apps, not in headless contexts.
  • Low friction: pure Python wheel with only streamlit as a runtime dependency.
  • Maintenance status is aging—last commit was 217 days ago, though the repository is still active and not archived.

License · maintenance · safety

(unclear) — License status is unclear; the package declares no SPDX identifier or raw license text. Verify the actual license terms before use in proprietary or restricted contexts.

last release 2026-01-09 (217 days) · last repo commit 2026-01-13 · 93 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 120,848 downloads/mo, #12,008 on PyPI

Verify before relying

pip install streamlit-js-eval

import streamlit as st
from streamlit_js_eval import streamlit_js_eval

width = streamlit_js_eval(js_expressions='screen.width', key='SCR')
st.write(f"Screen width is {width}")
  • Whether the 'aging' maintenance status (217 days since last release) signals active development or dormancy; repo is not archived but commit frequency is unclear.
  • Actual license terms and any compatibility restrictions, given the unclear license_treatment.
  • Current state of the known limitation with st.button in branching contexts and whether bootstrapButton workaround is stable.
Same gist for agents: .md · .json

What it is and what it does

Streamlit-js-eval is a custom Streamlit component that bridges Python and the browser by executing arbitrary JavaScript expressions and returning their results. It exposes browser APIs—geolocation, clipboard, device dimensions, user agent, language preferences, and Android sharing—that are either unavailable or cumbersome to access from pure Python Streamlit code. The package includes convenience wrappers for common tasks like `get_geolocation()` and `get_page_location()`, with error handling for permission denials and failures.

You use it by calling `streamlit_js_eval()` with a JavaScript expression string and a unique key, or by invoking pre-built functions for specific browser capabilities. It's useful when your Streamlit app needs to adapt to the user's device or environment—detecting mobile screens, reading cookies, writing to clipboard, or requesting location permission—without leaving the Streamlit framework.

Use it for

  • Detect whether a user is on a mobile device by checking screen width and adapting the UI layout accordingly.
  • Request and retrieve user geolocation with error handling for permission denial or unavailable position.
  • Copy data to the user's clipboard or read clipboard contents programmatically from a Streamlit app.
  • Access browser metadata like user agent, language preference, or page URL components for analytics or personalization.
  • Implement Android-specific features like the native share sheet in a Streamlit web app.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you need browser API access in Streamlit and accept the maintenance risk.

Install friction is low and the package has no known vulnerabilities. However, verify the license terms first (currently unclear), and be aware that maintenance is aging—last release was 217 days ago. The known limitation with st.button in branching contexts may affect some use cases; check whether the bootstrapButton workaround suits your needs.

Install

streamlit-js-eval on PyPI

Before you install

Low friction: pure Python wheel with only streamlit as a runtime dependency. Maintenance status is aging—last commit was 217 days ago, though the repository is still active and not archived.

Requires Python >=3.8 and a running Streamlit app; JavaScript execution depends on browser environment, so it only works in deployed or local Streamlit apps, not in headless contexts.

License in practice

License status is unclear; the package declares no SPDX identifier or raw license text. Verify the actual license terms before use in proprietary or restricted contexts.

Quickstart

pip install streamlit-js-eval

import streamlit as st
from streamlit_js_eval import streamlit_js_eval

width = streamlit_js_eval(js_expressions='screen.width', key='SCR')
st.write(f"Screen width is {width}")

Verify before relying

  • Whether the 'aging' maintenance status (217 days since last release) signals active development or dormancy; repo is not archived but commit frequency is unclear.
  • Actual license terms and any compatibility restrictions, given the unclear license_treatment.
  • Current state of the known limitation with st.button in branching contexts and whether bootstrapButton workaround is stable.

Package facts

LicenseNot declared unclear
Python supportSupports the current Python release >=3.8
Install frictionLow. Pure-Python wheel
Runtime dependencies
1 package
streamlit
MaintenanceAging 217 days since the last release
Last repo commit
First released
Downloads120,848 / month, #12,008 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14

Evidence: streamlit_js_eval-1.0.0-py3-none-any.whl

Tags

Capabilities
streamlit javascript integrationbrowser api access from streamlitgeolocation in streamlitclipboard access streamlitdevice width detection streamlitstreamlit custom component javascriptweb api wrapper streamlit
Topics
browser-integrationstreamlit-component
PyPI keywords
PythonStreamlitJavaScript

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “streamlit javascript integration”

Give your agent the search over MCP, or paste the wish link into any chat.

More Dynamic Content packages

MarkupSafe Worth it
PyPI · Dynamic Content · released Sep 2025

MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.

BSD-3-Clausecompiled wheel · 3.9+aging
797.1Mdownloads / mo
Jinja2 Worth it
PyPI · Dynamic Content · released Mar 2025

Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.

BSD-3-Clausepure Python · 3.7+aging
718.6Mdownloads / mo
soupsieve Worth it
PyPI · Python Modules · released Aug 2026

Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.

Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.

MITpure Python · 3.10+
428.6Mdownloads / mo
Werkzeug Worth it
PyPI · Application Frameworks · released Apr 2026

Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.

BSD-3-Clausepure Python · 3.9+
268.1Mdownloads / mo
Flask Worth it
PyPI · Application Frameworks · released Feb 2026

Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.

BSD-3-Clausepure Python · 3.9+
211.4Mdownloads / mo
Mako Worth it
PyPI · Dynamic Content · released Aug 2026

Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.

MITpure Python · 3.10+
201.7Mdownloads / mo

See also streamlit-autorefresh · streamlit-javascript · streamlit-cookies-controller · extra-streamlit-components · streamlit-plotly-events · streamlit-pdf-viewer · streamlit-avatar · streamlit-ace · st-theme · streamlit-msal