Features found in source
All promised features found 100 / 100
App specification source review: 11 of 11 features (100%); partial features count half. Source review based on your App specification (11 features).
capture · Version 01a1a71c-6a22-75a9-84db-3e1404610554
Checked: 2026-11-04T15:14:42.442Z · Report generation 1
Status: complete · Analysis: live
Source check ✓ 2026-11-04T15:11:13.680Z
All promised features found 100 / 100
App specification source review: 11 of 11 features (100%); partial features count half. Source review based on your App specification (11 features).
Good, small improvements suggested 88 / 100
3 security issue(s) found; serious issues reduce this score most. No scan guarantees safety.
Some setup steps missing 57 / 100
Present: README, no environment variables detected, App specification or AGENTS. Missing: known install command, run entry point. Static check in .; code was not executed. Checks README, environment example, install and run scripts, app specification or AGENTS, confirmed How to run it (confirmed) and run manifest (absent). The app was not executed.
Not checked
Not checked
Dependency and license evidence has not been checked.
The AI read 32 of 66 source files.
App specification source review: 11 of 11 features found in source (100%)
Files checked: Sources/Capture/CaptureCoordinator.swift, Sources/Capture/Capture/SelectionOverlay.swift, Sources/Capture/Capture/ScreenCapturer.swift
Global hotkey/menu trigger, multi-display frozen overlays, and Escape/right-click cancellation found.
Files from your spec: Sources/Capture/CaptureCoordinator.swift, Sources/Capture/Capture/SelectionOverlay.swift, Sources/Capture/Capture/ScreenCapturer.swift
Evidence: Sources/Capture/CaptureCoordinator.swift:1, Sources/Capture/Capture/SelectionOverlay.swift:1, Sources/Capture/Capture/ScreenCapturer.swift:1Files checked: Sources/Capture/Features/TextExtractor.swift, Sources/Capture/UI/ResultPanel.swift, Sources/Capture/LLM/OpenRouterClient.swift
Vision on-device OCR and OpenRouter vision-model OCR both implemented; results shown in editable panel.
Files from your spec: Sources/Capture/Features/TextExtractor.swift, Sources/Capture/UI/ResultPanel.swift
Evidence: Sources/Capture/Features/TextExtractor.swift:1, Sources/Capture/UI/ResultPanel.swift:1Files checked: Sources/Capture/Features/InPlaceTranslator.swift, Sources/Capture/UI/TranslationOverlay.swift, Sources/Capture/Features/Translator.swift
Overlay in-place translation and panel translation into target language both implemented.
Files from your spec: Sources/Capture/Features/InPlaceTranslator.swift, Sources/Capture/Features/Translator.swift, Sources/Capture/UI/TranslationOverlay.swift
Evidence: Sources/Capture/Features/InPlaceTranslator.swift:1, Sources/Capture/UI/TranslationOverlay.swift:1, Sources/Capture/Features/Translator.swift:1Files checked: Sources/Capture/UI/TranslationOverlay.swift, Sources/Capture/UI/ResultPanel.swift, Sources/Capture/Features/DocumentTextController.swift
Copy original/translation and Open as text into editable panel found in overlay and result panel.
Files from your spec: Sources/Capture/UI/TranslationOverlay.swift, Sources/Capture/UI/ResultPanel.swift
Evidence: Sources/Capture/UI/TranslationOverlay.swift:1, Sources/Capture/UI/ResultPanel.swift:1Files checked: Sources/Capture/Chat/ChatPanel.swift, Sources/Capture/Chat/ChatSession.swift, Sources/Capture/UI/ResultPanel.swift
Streaming chat, screenshot preview, recapture, retry, stop, and New chat reset all found.
Files from your spec: Sources/Capture/Chat/ChatPanel.swift, Sources/Capture/Chat/ChatSession.swift
Evidence: Sources/Capture/Chat/ChatPanel.swift:1, Sources/Capture/Chat/ChatSession.swift:1Files checked: Sources/Capture/Chat/ChatSession.swift, Sources/Capture/Agent/AgentTools.swift, Sources/Capture/Agent/InputSynthesizer.swift
Approval prompt with allow/allowAll/deny gates click, type, key, scroll, screenshot tools.
Files from your spec: Sources/Capture/Chat/ChatSession.swift, Sources/Capture/Agent/AgentTools.swift, Sources/Capture/Agent/InputSynthesizer.swift
Evidence: Sources/Capture/Chat/ChatSession.swift, Sources/Capture/Agent/AgentTools.swift, Sources/Capture/Agent/InputSynthesizer.swiftFiles checked: Sources/Capture/Features/DocumentTextController.swift, Sources/Capture/Features/DocumentTextReader.swift, Sources/Capture/UI/ResultPanel.swift
Local AX/PDF text read, partial-read notice, and area-capture fallback button found.
Files from your spec: Sources/Capture/Features/DocumentTextController.swift, Sources/Capture/Features/DocumentTextReader.swift, Sources/Capture/UI/ResultPanel.swift
Evidence: Sources/Capture/Features/DocumentTextController.swift:44, Sources/Capture/Features/DocumentTextReader.swift:44, Sources/Capture/UI/ResultPanel.swift:44Files checked: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Hotkey/HotkeyManager.swift, Sources/Capture/AppDelegate.swift
Both shortcuts recordable, duplicate rejected, registration errors surfaced.
Files from your spec: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Hotkey/HotkeyManager.swift, Sources/Capture/AppDelegate.swift
Evidence: Sources/Capture/Settings/SettingsView.swift:30, Sources/Capture/Hotkey/HotkeyManager.swift:30, Sources/Capture/AppDelegate.swift:30Files checked: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/LLM/ModelCatalog.swift, Sources/Capture/Chat/ChatSession.swift
Image-capable model list with pricing, search, refresh, and manual ID field.
Files from your spec: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/LLM/ModelCatalog.swift
Evidence: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/LLM/ModelCatalog.swiftFiles checked: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Settings/Keychain.swift, Sources/Capture/LLM/OpenRouterClient.swift
Key save/test, Keychain retry, and confirmed replacement of inaccessible key found.
Files from your spec: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Settings/Keychain.swift, Sources/Capture/LLM/OpenRouterClient.swift
Evidence: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Settings/Keychain.swift, Sources/Capture/LLM/OpenRouterClient.swiftFiles checked: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Settings/AppSettings.swift, Sources/Capture/UI/TranslationOverlay.swift
Settings UI and persisted AppSettings cover auto-copy, translation display, max image side, ask-before-acting, and launch at login.
Files from your spec: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Settings/AppSettings.swift
Evidence: Sources/Capture/Settings/SettingsView.swift:1, Sources/Capture/Settings/AppSettings.swift:1Actual run verification: Not tested. Source review does not prove the app works. Dependency warnings permit publishing; harmful content and unresolved rights or license blockers prevent it. Checks do not guarantee safety.
Medium — could affect users in some situations; plan a fix.
A user who clicks 'Allow all' once grants the model permission to synthesize arbitrary clicks, keystrokes, and scrolls in the target app for the rest of the conversation, which could be abused by prompt-injected content on screen.
Fix hint: Require explicit user confirmation for every action, or at minimum re-prompt when the target app or action type changes, and never persist an 'allow all' decision across turns without a visible indicator.
open · Review finding
ai-security · Sources/Capture/Chat/ChatSession.swiftLow — limited impact; fix during routine maintenance.
The reader walks the focused window's accessibility tree and may capture sensitive text (e.g., other fields) that the user did not intend to expose, though secure text fields are skipped.
Fix hint: Add a confirmation step or restrict document reading to user-initiated, clearly scoped windows, and document the data exposure.
open · Review finding
ai-security · Sources/Capture/Features/DocumentTextReader.swiftLow — limited impact; fix during routine maintenance.
Screen content is fed to the model and its reply is rendered as markdown; a malicious page could induce the model to emit links or formatting that mislead the user into clicking.
Fix hint: Sanitize or escape the text before rendering, or render as plain text, and consider stripping markdown links to non-http schemes.
open · Review finding
ai-security · Sources/Capture/Chat/ChatPanel.swiftLow — an improvement hint for the developer, with no confirmed user harm.
Fix hint: Review the platforms in your listing Basics. This information does not affect the score or publication.
open · Review finding
platform-check ·Improvement hints only; excluded from buyer headline scores.
Code cleanliness: 82 / 100 (AI maintainability review). Architecture: 83 / 100 (AI structure review). Test presence: 0 test files (presence signal only). Coverage: Not checked.
Source coverage: Sampled. Build not run by CookThisApp.