{"id":24498,"library":"questo","title":"Questo","description":"Questo is a Python library for building extensible and modular CLI prompt elements, such as text inputs, confirmations, and lists with spinners and progress bars. Current version is 0.4.2, released with a relaxed Python constraint. The project is actively maintained with occasional releases.","status":"active","version":"0.4.2","language":"python","source_language":"en","source_url":"https://github.com/petereon/questo","tags":["cli","prompts","input","tui"],"install":[{"cmd":"pip install questo","lang":"bash","label":"Standard install"}],"dependencies":[{"reason":"Used for terminal styling and rendering","package":"rich","optional":false}],"imports":[{"note":"Old import path for v0.1.x","wrong":"from questo.prompts import TextPrompt","symbol":"TextPrompt","correct":"from questo import TextPrompt"},{"note":"Old import path for v0.1.x","wrong":"from questo.select import SelectPrompt","symbol":"SelectPrompt","correct":"from questo import SelectPrompt"},{"note":"Old import path for v0.1.x","wrong":"from questo.confirm import ConfirmPrompt","symbol":"ConfirmPrompt","correct":"from questo import ConfirmPrompt"},{"note":"Base class for custom prompts","wrong":null,"symbol":"Prompt","correct":"from questo import Prompt"}],"quickstart":{"code":"from questo import TextPrompt\n\nname = TextPrompt(\"What is your name?\").ask()\nprint(f\"Hello, {name}!\")","lang":"python","description":"Simple example of using TextPrompt to get user input."},"warnings":[{"fix":"Use `from questo import TextPrompt` instead of `from questo.prompts import TextPrompt`.","message":"Import paths changed in v0.2.0 from module-level (e.g., questo.prompts.TextPrompt) to top-level (questo.TextPrompt).","severity":"breaking","affected_versions":">=0.2.0"},{"fix":"Check the prompt type documentation for return types.","message":"The `ask()` method returns a string for TextPrompt, but other prompts like ConfirmPrompt return bool or int. Mixing types can cause unexpected output.","severity":"deprecated","affected_versions":"all"},{"fix":"Ensure your terminal supports ANSI escape codes or use a compatible terminal emulator.","message":"Questo requires Python >=3.7.8, but some prompt elements may not work on Windows if using Rich features without proper terminal support.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from questo import TextPrompt`.","cause":"Using legacy import path from older versions or incorrect spelling.","error":"ImportError: cannot import name 'TextPrompt' from 'questo'"},{"fix":"Rename the variable, e.g., `user_input = TextPrompt(...).ask()`.","cause":"Assigning the result of `ask()` to a variable named `input` overwrites built-in function.","error":"TypeError: 'str' object is not callable"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}