Short answer
What you need to know
Use Inspect Code to scan pasted Python or a local .py file for supported visibility issues. Then select Check syntax and names to compile both copies locally and review unresolved names. A visibility scan, a syntax check, and a name inspection answer different questions; none executes your program or proves its behavior is correct.
1. Start a Python code inspection
Open Inspect Code, paste your source or load a UTF-8 .py file, and select Inspect code. Each source is limited to 1 MiB. Preserve your original file before making changes. Loaded files retain their BOM and line endings until you edit the textarea; textarea editing uses its normalized line endings.
The source scanner reports supported invisible Unicode, confusing punctuation, indentation patterns, mixed line endings, trailing whitespace, and selected confusing identifier spellings. These are observations for review. Ordinary non-ASCII names and legitimate text inside strings are not automatically mistakes.
2. Read visibility findings beside the code
Use Show line to locate a finding in the selected Original source or Cleaned copy view. Technical details expands the rule and context information. Longer sources and finding lists are paged; very long code lines show excerpts around the selected location.
A tab or trailing-space finding is not the same as a Python compiler error. Trailing whitespace is often cosmetic. Mixed tabs and spaces can affect indentation even when an editor makes the lines appear aligned. A finding without Review fix requires manual review; the inspector does not invent an indentation correction.
3. Run the syntax and undefined-name checks
Select Check syntax and names in the section below the visibility results. The optional check uses Python 3.14.2 in a browser worker. Its initial runtime download is about 13 MB from this application, plus a small local name-analyzer package. The program you paste is never executed.
Original source and Cleaned copy each receive a syntax result. Python reports the first compiler error for that copy. If syntax passes, the name inspector looks for unresolved names and some local variables used before assignment. Name findings have their own source-location buttons; they do not appear in the visibility findings list.
A misspelled variable such as usernmae can be valid Python syntax but still refer to no known binding. Imports and aliases count as bindings without checking whether a package is installed. Wildcard imports and dynamic namespaces can supply names the scanner cannot resolve; treat those findings as uncertain.
Why does it say name checks were skipped?
Name inspection needs a valid syntax tree. For example, TabError: inconsistent use of tabs and spaces in indentation means Python rejected the source before name checking. Skipped with zero findings means not checked, not that every name is correct.
Fix the reported indentation in your editor, preserving the intended block structure, and inspect the corrected source again. Use spaces consistently for the affected blocks; do not blindly replace every tab in the file because tabs inside strings may be intentional. If cleanup decisions lock the input, save any copy or audit you need, then reset decisions or start a new inspection before replacing the source.
Correct the first syntax error, then recheck: Python may reveal another error afterward. Incomplete snippets can fail as standalone files even when they make sense inside a larger function or program.
4. Preview cleanup before applying a fix
Review fix opens the current and proposed text side by side. Labels make spaces, tabs, hidden characters, and line endings visible. Every preview page must be visited before applying a larger change. Conflicting choices require a combined preview that shows what will be reverted.
Keep original records a visibility-review decision without changing characters. Applied fixes can be reverted, undone, or redone. Reset decisions is also undoable. Any source change invalidates previous syntax and name results, so run Check syntax and names again after cleanup.
The inspector offers no automatic variable renaming. Correct a suspected typo in your source editor, then reinspect it. A name that looks misspelled may instead be supplied by a framework, another file, or a dynamic execution environment.
5. Save the reviewed Python copy
Copy cleaned source and Download cleaned .py use the same reviewed text. Downloads preserve UTF-8, the original BOM, and original newline sequences except for selected edits. A clipboard destination may normalize newlines. The abbreviated code display is not the downloaded file.
Export decision audit saves hashes, finding positions, offered edits, and cleanup history without the full original source. Replay requires the matching original and detector versions, and imported decisions are previewed before restoration. The audit is not a signed attestation or proof of correctness; syntax and name reports are not included in its version-1 format.
What this Python scanner does not check
This source inspector is not an antivirus scanner, a security audit, a full type checker, or a replacement for tests. Passing syntax does not validate package availability, attribute spelling, function-call signatures, every execution path, or intended results.
The compiler understands Python 3.14 syntax, but visibility detection inside formatted expressions remains conservative. Unicode confusable coverage is limited. Large analyses can be partial: visibility findings cap at 20,000, name findings cap at 1,000 per copy, and the worker has a 60-second analysis deadline. Read coverage and unavailable notices instead of interpreting missing results as a clean bill of health.
Does the Python inspection upload or run my code?
Inspect Code processes source in this browser, without uploading or executing it. Its runtime assets come from this application, and the workspace excludes site-wide analytics. This differs from the site's document-upload scanning workflow. The guide itself is a public informational page.
Keep your own original and reviewed files. Browser decisions are temporary; navigating away or closing the page can discard them. This guide describes the implemented workflow, not a guarantee of compatibility with every browser, Python version, or device.
Python inspection examples to try
Try a misspelled variable
Paste the first sample into Inspect Code, then select Inspect code and Check syntax and names.
Source to inspect
username = "Bradley"
print(usernmae)
Corrected example
username = "Bradley"
print(username)
The first sample passes syntax but reports usernmae as possibly undefined. Correcting it to username should remove that supported name finding. There is no automatic rename button.
Try confusing full-width punctuation
Paste the first sample into Inspect Code, then select Inspect code and Check syntax and names.
Source to inspect
print("Hello!")
Corrected example
print("Hello!")
The first sample uses full-width parentheses. The visibility scan should offer the two punctuation fixes. Review and apply both, then recheck: the cleaned copy should pass syntax while the unchanged original still fails.
Important limitation
Verify important findings
Use scanner findings to guide a human review. No findings means no supported findings were reported, not proof of safety or correct behavior. Use your project's tests and intended Python environment before relying on the program.
Further reading
Authoritative references
These primary sources support the manual steps in this guide. Their inclusion does not imply endorsement of Hidden Word Scanner.