{"library":"streamlit-keyup","title":"Streamlit Keyup Input","type":"library","description":"Streamlit-keyup is a custom component for Streamlit applications that provides a text input field which updates its value in real-time, on every key press (on keyup event). This differs from Streamlit's native `st.text_input` which typically waits for the user to press Enter or for the widget to lose focus. The library is currently at version 0.3.0 and receives occasional updates, primarily for compatibility and minor fixes.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install streamlit-keyup"],"cli":null},"imports":["from st_keyup import st_keyup"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/blackary/streamlit-keyup","docs":null,"changelog":null,"pypi":"https://pypi.org/project/streamlit-keyup/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import streamlit as st\nfrom st_keyup import st_keyup\n\nst.title(\"Streamlit Keyup Demo\")\n\n# Basic usage: value updates after every key press\nvalue_basic = st_keyup(\"Enter text here\", key=\"keyup_basic\")\nst.write(f\"Basic Input: {value_basic}\")\n\n# Usage with a default value\nvalue_with_default = st_keyup(\"Enter with default\", value=\"Hello world\", key=\"keyup_default\")\nst.write(f\"Input with default: {value_with_default}\")\n\n# Usage with debounce to limit update frequency (e.g., update every 500ms)\nvalue_debounced = st_keyup(\"Enter with debounce\", debounce=500, key=\"keyup_debounced\")\nst.write(f\"Debounced Input: {value_debounced}\")\n\n# Example with max_chars, placeholder, and disabled\nvalue_complex = st_keyup(\n    \"Limited and Placeholder\",\n    max_chars=10,\n    placeholder=\"Max 10 chars\",\n    disabled=False, # Use os.environ.get for dynamic disable\n    key=\"keyup_complex\"\n)\nst.write(f\"Complex Input: {value_complex}\")","lang":"python","description":"This example demonstrates the basic usage of `st_keyup`, including setting a default value, using the `debounce` parameter to control update frequency, and combining `max_chars`, `placeholder`, and `disabled` arguments.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.3.0","pypi_latest":"0.3.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":15.3,"avg_import_s":1.34,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"streamlit-keyup","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-keyup","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":16,"import_time_s":0.61,"mem_mb":19.9,"disk_size":"414M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"streamlit-keyup","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.94,"mem_mb":26.4,"disk_size":"465.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"streamlit-keyup","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":15,"import_time_s":1.07,"mem_mb":21.8,"disk_size":"434M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"streamlit-keyup","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.92,"mem_mb":26.1,"disk_size":"449.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"streamlit-keyup","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":14.2,"import_time_s":1.33,"mem_mb":21.1,"disk_size":"418M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"streamlit-keyup","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.91,"mem_mb":26.3,"disk_size":"447.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"streamlit-keyup","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":14.3,"import_time_s":1.28,"mem_mb":21.8,"disk_size":"416M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"streamlit-keyup","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":1.26,"mem_mb":19.7,"disk_size":"429.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"streamlit-keyup","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":17.2,"import_time_s":0.59,"mem_mb":15,"disk_size":"407M"}]}}