Screenshot to text converter for chats, error messages, slides and apps
Some text you cannot select: a chat in an app, an error dialog, a slide in a video call, a post someone screenshotted, or a code snippet in a tutorial video. Your todo.is agent reads the screenshot and gives you the exact text back, with code kept as code, chats kept as speaker lines and links written out.
The prompt
- Get the text out of the attached screenshot(s): [ATTACH THE SCREENSHOTS]. It shows [WHAT IT IS]. Copy the text exactly, including punctuation, numbers and capital letters. Skip interface parts like menus, buttons, battery and time. If it is code or an error message, put it in a code block with the exact spacing. If it is a chat, write it as "Name: message" lines with times. Write out any links or emails you see. Then [EXTRA].
What to change
- [ATTACH THE SCREENSHOTS]: Attach PNG or JPG screenshots from your phone or computer. Several at once is fine.
- [WHAT IT IS]: E.g. "a WhatsApp chat", "a Python error", "a slide from a webinar" or "a product page".
- [EXTRA]: E.g. "explain the error and how to fix it", "translate it", "put it in a table" or "nothing else".
Example result
- Screenshot to text: 2 screenshots of a terminal error
- Screenshot 1: the command and error
- $ python manage.py migrate
- Traceback (most recent call last):
- File "/app/manage.py", line 22, in <module>
- main()
- File "/app/manage.py", line 18, in main
- execute_from_command_line(sys.argv)
- django.db.utils.OperationalError: connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
- Is the server running on that host and accepting TCP/IP connections?
- Screenshot 2: the settings file in the editor
- DATABASES = {
- "default": {
- "ENGINE": "django.db.backends.postgresql",
- "HOST": "localhost",
- "PORT": "5432",
- }
- }
- Skipped: the editor tabs, file tree, status bar and the clock.
- What the error means
- Django tried to reach PostgreSQL on your own machine (localhost, port 5432) and nothing answered.
- How to fix it
- • Check that PostgreSQL is running: on macOS with Homebrew, run "brew services list"; on Linux, "systemctl status postgresql"
- • If the database runs in Docker, HOST should be the service name (for example "db"), not "localhost"
- • Make sure the port in your settings matches the port the database actually listens on
- Other things screenshots are good for
- • Chats: written out as "Name (time): message" lines in order
- • Slides: title, bullet points and speaker notes if visible
- • Posts and articles: the text plus any links written out in full
How to do it with todo.is
- Copy the prompt and say what the screenshot shows and what you want done with the text.
- Send the screenshots to your agent on WhatsApp or Telegram, or attach them on the todo.is Today screen.
- Your agent reads the text exactly and leaves out interface clutter.
- Copy the text from the reply. Ask a follow-up, like "translate this" or "fix my code", in the same chat.
Tips for a better result
- Crop to the part you need before sending. Less clutter means fewer mistakes.
- Full-resolution screenshots read far better than photos of a screen. Use the screenshot shortcut when you can.
- For code, say the language. It helps with characters that look alike, such as l, 1 and I.
- For long chats, send the screenshots in order and ask for one combined transcript.
screenshot to text converter: FAQ
- How do I copy text from a screenshot? Send the screenshot to your agent and ask for the text. It reads the image and replies with text you can copy and paste.
- Can it get code from a screenshot or video frame? Yes. Code is returned in a code block with its indentation. Check characters that look alike, especially in small or blurry frames.
- Can it turn a screenshot of a chat into text? Yes. It writes each message as a line with the sender and time, in order.
- Is there a phone shortcut? You can share screenshots straight from your phone to your agent's WhatsApp or Telegram chat.
JavaScript is required to use the todo.is app.