Skip to main content

Camoscope

Project page and documentation · Get help · Support this and other apps

Camoscope is a macOS tool that helps interviewers and proctors investigate app windows a participant may be concealing from a screen share, including during online interviews. Run with the participant's knowledge and consent on their Mac, it flags windows for review, shows the owning app and available app details, and can optionally show text exposed to Accessibility tools.

Installing or importing Camoscope does not scan windows, read app text, or quit apps. It does not send scan results to a server. Those actions happen only when you run the corresponding command.

A result is a reason to investigate; it does not prove what the interviewer's screen-share view contains or establish misconduct. A scan with no results does not prove that every window or browser tab is visible. Compare findings with the actual share or recording before drawing a conclusion.

Intended use and permissions

Run Camoscope locally on the participant's Mac with their knowledge and consent. It cannot remotely inspect a participant's computer from the interviewer's Mac.

  • A scan checks window information supplied by macOS. Permissions and the current desktop session can affect what is available.
  • --dump, --stream, and the default scan's content preview need Accessibility permission for the terminal or executable running Camoscope. The text may come from other windows of the same app, not just the window reported by the scan. Some apps expose no readable text.
  • --quit first asks the selected app to close, then may force it to stop. This can discard unsaved work. It is allowed only for an app found in the current scan and requires permission to control that app. Check the PID before using it. It does not need Accessibility permission and never runs during installation or an ordinary scan.
  • Code-signing output is inspection metadata, not a signature validity verdict. Unknown, ad-hoc, or unsigned status alone does not establish that an app is malicious.

Install

On macOS with CPython 3.9 through 3.14 (Apple Silicon or Intel):

python3 -m pip install camoscope==0.1.3
camoscope --version

Public distribution is through compiled macOS wheels only. Linux and other platforms have no compatible wheel, so pip cannot install the published package there. A source checkout run on another operating system reports that the platform is not supported. There is no Homebrew release yet.

First check

Run a scan without reading app text:

camoscope --no-prompt --no-content

The command prints a summary and exits. If it reports a window, compare it with what the interviewer can see in the actual share or recording. If it reports no windows, that is only the result of this scan. It does not detect every concealed browser tab or guarantee that every app window is visible.

Usage

camoscope --help
camoscope --no-prompt --no-content  # one scan without app text
camoscope                           # scan with text preview, then interactive menu
camoscope --watch --no-content      # rescan every 2 seconds
camoscope --dump PID                 # show text exposed by the app once
camoscope --stream PID --interval 3  # repeat until stopped or PID exits
camoscope --quit PID                 # terminate the selected process

Use --no-content to scan without reading app text. The default scan tries to show available text for matching apps, so it needs Accessibility permission. A denied permission or failed window scan is an error, not a negative finding. Camoscope prints results to the terminal and does not save them automatically.

PIDs must be positive integers. --interval must be a positive finite number. --quit returns a nonzero exit status if the process cannot be terminated. Scan and Accessibility failures also return nonzero status. The CLI never treats a failed window scan as an empty result.

Permissions and troubleshooting

  • Accessibility denied: --dump, --stream, and the default scan's text preview need permission for the terminal or app running Camoscope. Open System Settings → Privacy & Security → Accessibility and allow that app. You can still scan without text using --no-content. See Apple's Accessibility permission guide.
  • Scan failed or seems incomplete: run Camoscope from a signed-in desktop session. Check System Settings → Privacy & Security → Screen & System Audio Recording if macOS asks for access. Window information can be limited even when the command returns successfully. Compare against a real share or recording. See Apple's screen-recording permission guide.
  • camoscope command not found: use python3 -m camoscope with the same Python you used for installation, or activate its virtual environment.
  • Quit refused: Camoscope only quits a process found in the current scan when macOS identifies it as a running app. It will refuse an unknown or changed process rather than send it a signal.

If you need help, use the shared developer contact page.

Release status

Version 0.1.3 is a public beta. Automated tests cover command behavior and important safety cases. A broader comparison with actual screen-sharing and recording apps across macOS versions is still pending. Treat Camoscope as an investigation aid, not a conclusive visibility or misconduct verdict. The PyPI release contains compiled macOS wheels and no source archive. Compiled code can still be reverse engineered.

License

MIT. The license text is included in the distribution.

Support the apps

If Camoscope or another app I build is useful to you, you can sponsor their continued development. For questions, bug reports, or collaboration, use the developer contact page.

Release files for camoscope 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for camoscope 0.1.3
File
camoscope-0.1.3-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
camoscope-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
camoscope-0.1.3-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
camoscope-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
camoscope-0.1.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
camoscope-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
camoscope-0.1.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
camoscope-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
camoscope-0.1.3-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
camoscope-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
camoscope-0.1.3-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
camoscope-0.1.3-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 1.4 MB

Release files / camoscope-0.1.3-cp314-cp314-macosx_11_0_arm64.whl

Download URL camoscope-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
Size 111.6 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
eb7416e8d5fcb765366c84a5b022b0cb683edc03b599f8689e28d0e9621afb40
BLAKE2b-256 checksum
How to use checksums
560df6d70f6a588b033b14f8082f7c7f7661e6d49e2ee8b97464a08ca022ab48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl

Download URL camoscope-0.1.3-cp314-cp314-macosx_10_15_x86_64.whl
Size 126.7 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
49ff19d86aedd224656b6869470c04a1ea522ef8366d923c5765f936b0e678b4
BLAKE2b-256 checksum
How to use checksums
b7e473ab92185fe76834e785b7230c0ef11abebc38bb970889a206a71c2cc85e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL camoscope-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Size 109.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bcb38186311ccde5879ed8f7e6fd7bedda365c39f4440042738840a221cc7641
BLAKE2b-256 checksum
How to use checksums
014c40b4afd343830797e73dc606e4c3d2baf0a53bbed3c63510ed25f05d3edd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl

Download URL camoscope-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl
Size 125.8 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
78b1ec4e25e5d8535c52f1e5550b29ba1fdd3bba08de45547cb6570571e542c4
BLAKE2b-256 checksum
How to use checksums
4ae4f5b11568147af968a95984c97e94bb5d3c6c66533ba7979cc9ec1c1568b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL camoscope-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Size 110.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7aacc41a5f8192166215c3f8992418afba0a50326598fb322abf89268e687a70
BLAKE2b-256 checksum
How to use checksums
35a91d924d093becf98a50b2ee2f4da2ba01415d5885bb62c22d6a7cc108156f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl

Download URL camoscope-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl
Size 126.1 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
a0c82ea676a66fde93a94d0c2dfb9d5963b031c78280cc4f661086a466304a88
BLAKE2b-256 checksum
How to use checksums
7e89c52acf0625137bdcd40ec74d8ce1690f16be3f4c51a162c5200788cb0e45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL camoscope-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Size 113.4 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9392e54a8f799942407b738cfe3bb7a575b5f207061fa87ccbdfb7b5ddec0796
BLAKE2b-256 checksum
How to use checksums
de03aafb58594b56eb58e790ec6eff64894a35303309187cdfb75d391f7b7412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl

Download URL camoscope-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl
Size 126.8 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
11f23d1da9ec344dd64e115b6314bc358ae1cd9b7a4c09740aa1e8ff6bb940d6
BLAKE2b-256 checksum
How to use checksums
3f8c62102899eaaccf6e3a0aabf3357816975d5763cb44b1d8d451986b7db2f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL camoscope-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Size 114.9 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a220cb58b3aed06693e63ef0223412867ce39abb0616195d8335f9b3cda50aeb
BLAKE2b-256 checksum
How to use checksums
67b782f7880c3f1134985db8598e3cf56d201edc434cc01c8b6562eba19f698a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl

Download URL camoscope-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl
Size 128.1 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
dd5dbabd2014460063f46c695e54283c0b9227539fbb79c727371ec1e1946ab8
BLAKE2b-256 checksum
How to use checksums
426c7f29e7d5c290f7901c668b330a8ae8105af3064525b1ff07660c3108a48b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp39-cp39-macosx_11_0_arm64.whl

Download URL camoscope-0.1.3-cp39-cp39-macosx_11_0_arm64.whl
Size 115.5 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f843ae4acf4c6ed1a03a68fe7ea29e37470b4d37be16e0fb7aa63bb05ee61212
BLAKE2b-256 checksum
How to use checksums
457c6303e57deb500945f2316321231bae08b2214fa0acf1f0e54c7eceb62518
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / camoscope-0.1.3-cp39-cp39-macosx_10_9_x86_64.whl

Download URL camoscope-0.1.3-cp39-cp39-macosx_10_9_x86_64.whl
Size 129.0 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
4af69acab12f3e31d48098c048bbad69a3342687236c5ba4f849009a487675b8
BLAKE2b-256 checksum
How to use checksums
e4ae0521327bf939acef41317e7a5f56d014bf2db5bffe1d13a38f7559d1ca79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

12 release files

0.1.2

12 release files

0.1.1

12 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page