{"library":"streamlit-js-eval","title":"Streamlit JavaScript Evaluator Component","type":"library","description":"streamlit-js-eval is a custom Streamlit component that enables developers to execute arbitrary JavaScript expressions directly within a Streamlit application. It facilitates interactions with the browser DOM, local storage, window properties, and more, returning results back to Python. The current version is 1.0.0, and it follows an infrequent release cadence, with stability being a primary focus.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install streamlit-js-eval"],"cli":null},"imports":["from streamlit_js_eval import streamlit_js_eval"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/aghasemi/streamlit_js_eval","docs":null,"changelog":null,"pypi":"https://pypi.org/project/streamlit-js-eval/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import streamlit as st\nfrom streamlit_js_eval import streamlit_js_eval\n\nst.set_page_config(layout=\"wide\")\nst.title(\"Streamlit JS Eval Demo\")\n\nst.header(\"1. Get Browser URL\")\ncurrent_url = streamlit_js_eval(js_expressions=\"window.location.href\", key=\"get_url\")\nst.write(f\"**Current URL:** `{current_url}`\")\n\nst.header(\"2. Set Local Storage Value\")\nif st.button(\"Set 'myKey' to 'myValue' in Local Storage\"):\n    streamlit_js_eval(js_expressions=\"localStorage.setItem('myKey', 'myValue');\", key=\"set_ls_value\", want_result=False)\n    st.success(\"Value set! Refresh the page to see it in browser dev tools.\")\n\nst.header(\"3. Get Local Storage Value\")\nlocal_storage_val = streamlit_js_eval(js_expressions=\"localStorage.getItem('myKey');\", key=\"get_ls_value\")\nst.write(f\"**Local Storage 'myKey':** `{local_storage_val}`\")\n\nst.header(\"4. Get Screen Width\")\nscreen_width = streamlit_js_eval(js_expressions=\"screen.width\", key=\"get_screen_width\")\nst.write(f\"**Screen Width:** `{screen_width}px`\")\n\nst.header(\"5. Redirect Page (example)\")\nif st.button(\"Go to Streamlit.io\"):\n    streamlit_js_eval(js_expressions=\"window.location.href='https://streamlit.io';\", key=\"redirect_streamlit\", want_result=False)\n","lang":"python","description":"This quickstart demonstrates how to use `streamlit_js_eval` to interact with browser-side JavaScript, including retrieving the current URL, setting and getting local storage values, getting screen dimensions, and performing a page redirect. Each `streamlit_js_eval` call requires a unique `key`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"1.0.0","pypi_latest":"1.0.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":15.3,"avg_import_s":1.35,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.48,"mem_mb":24.6,"disk_size":"444.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":15.9,"import_time_s":0.63,"mem_mb":19.9,"disk_size":"414M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":2,"mem_mb":26.4,"disk_size":"465.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":14.9,"import_time_s":1.11,"mem_mb":21.8,"disk_size":"434M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":2.02,"mem_mb":26.1,"disk_size":"449.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":14.2,"import_time_s":1.3,"mem_mb":21.1,"disk_size":"418M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.83,"mem_mb":26.3,"disk_size":"447.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":14.4,"import_time_s":1.21,"mem_mb":21.8,"disk_size":"416M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.3,"mem_mb":19.7,"disk_size":"429.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"streamlit-js-eval","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":17,"import_time_s":0.61,"mem_mb":15.1,"disk_size":"407M"}]}}