Public Kitchen Report
Back to appScores
Score details and supporting evidence for each check.
All promised features found
Features found in source
App specification source review: 11 of 11 features (100%); partial features count half. Source review based on your App specification (11 features).
The AI read 32 of 66 source files.
Features found in the code
App specification source review: 11 of 11 features found in source (100%)
Show the 11 features
- ✓ Select a screen region using a configurable global shortcut or menu command, with multi-display support and cancellation. — found
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.
Evidence: Sources/Capture/CaptureCoordinator.swift:1, Sources/Capture/Capture/SelectionOverlay.swift:1, Sources/Capture/Capture/ScreenCapturer.swift:1
Files from your spec: Sources/Capture/CaptureCoordinator.swift, Sources/Capture/Capture/SelectionOverlay.swift, Sources/Capture/Capture/ScreenCapturer.swift
- ✓ Extract text from a selection using on-device recognition or an OpenRouter vision model. — found
Files 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.
Evidence: Sources/Capture/Features/TextExtractor.swift:1, Sources/Capture/UI/ResultPanel.swift:1
Files from your spec: Sources/Capture/Features/TextExtractor.swift, Sources/Capture/UI/ResultPanel.swift
- ✓ Translate selected content into a chosen language and display the result over the original text or in an editable panel. — found
Files 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.
Evidence: Sources/Capture/Features/InPlaceTranslator.swift:1, Sources/Capture/UI/TranslationOverlay.swift:1, Sources/Capture/Features/Translator.swift:1
Files from your spec: Sources/Capture/Features/InPlaceTranslator.swift, Sources/Capture/Features/Translator.swift, Sources/Capture/UI/TranslationOverlay.swift
- ✓ Copy original or translated text and open overlay translations as editable text. — found
Files 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.
Evidence: Sources/Capture/UI/TranslationOverlay.swift:1, Sources/Capture/UI/ResultPanel.swift:1
Files from your spec: Sources/Capture/UI/TranslationOverlay.swift, Sources/Capture/UI/ResultPanel.swift
- ✓ Chat about a captured selection with streaming replies, screenshot previews, recapture, retry, cancellation, and conversation reset. — found
Files 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.
Evidence: Sources/Capture/Chat/ChatPanel.swift:1, Sources/Capture/Chat/ChatSession.swift:1
Files from your spec: Sources/Capture/Chat/ChatPanel.swift, Sources/Capture/Chat/ChatSession.swift
- ✓ Review and approve or deny AI-requested clicks, typing, key presses, scrolling, and screenshot updates. — found
Files 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.
Evidence: Sources/Capture/Chat/ChatSession.swift, Sources/Capture/Agent/AgentTools.swift, Sources/Capture/Agent/InputSynthesizer.swift
Files from your spec: Sources/Capture/Chat/ChatSession.swift, Sources/Capture/Agent/AgentTools.swift, Sources/Capture/Agent/InputSynthesizer.swift
- ✓ Read active document text locally, including available PDF text layers, with partial-read notices and an area-capture fallback. — found
Files 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.
Evidence: Sources/Capture/Features/DocumentTextController.swift:44, Sources/Capture/Features/DocumentTextReader.swift:44, Sources/Capture/UI/ResultPanel.swift:44
Files from your spec: Sources/Capture/Features/DocumentTextController.swift, Sources/Capture/Features/DocumentTextReader.swift, Sources/Capture/UI/ResultPanel.swift
- ✓ Customize capture and document-reading shortcuts, with duplicate-shortcut rejection and registration error feedback. — found
Files checked: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Hotkey/HotkeyManager.swift, Sources/Capture/AppDelegate.swift
Both shortcuts recordable, duplicate rejected, registration errors surfaced.
Evidence: Sources/Capture/Settings/SettingsView.swift:30, Sources/Capture/Hotkey/HotkeyManager.swift:30, Sources/Capture/AppDelegate.swift:30
Files from your spec: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Hotkey/HotkeyManager.swift, Sources/Capture/AppDelegate.swift
- ✓ Browse image-capable AI models with pricing, search the catalog, refresh it, or enter a model ID manually. — found
Files 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.
Evidence: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/LLM/ModelCatalog.swift
Files from your spec: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/LLM/ModelCatalog.swift
- ✓ Save and test an OpenRouter API key, retry failed Keychain access, or explicitly confirm replacement of an inaccessible saved key. — found
Files 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.
Evidence: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Settings/Keychain.swift, Sources/Capture/LLM/OpenRouterClient.swift
Files from your spec: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Settings/Keychain.swift, Sources/Capture/LLM/OpenRouterClient.swift
- ✓ Configure automatic copying, translation display, image size, action approvals, and launch at login. — found
Files 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.
Evidence: Sources/Capture/Settings/SettingsView.swift:1, Sources/Capture/Settings/AppSettings.swift:1
Files from your spec: Sources/Capture/Settings/SettingsView.swift, Sources/Capture/Settings/AppSettings.swift
Static AI review of the source. Partial features count half. Actual run verification: Not tested; source presence and a responding demo do not prove the features work.
Good, small improvements suggested
Security screening
3 security issue(s) found; serious issues reduce this score most. No scan guarantees safety.
- medium · Persistent 'Allow all' bypasses per-action approval · Sources/Capture/Chat/ChatSession.swift
What to do: 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.
- low · Accessibility tree read may capture unintended text · Sources/Capture/Features/DocumentTextReader.swift
What to do: Add a confirmation step or restrict document reading to user-initiated, clearly scoped windows, and document the data exposure.
- low · Model output rendered as markdown from untrusted screen content · Sources/Capture/Chat/ChatPanel.swift
What to do: Sanitize or escape the text before rendering, or render as plain text, and consider stripping markdown links to non-http schemes.
Some setup steps missing
Setup files
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.
- ✓ README — README.md
- ✓ Environment example — No environment variables detected
- ✕ Install command
- ✕ Run entry point
- ✓ App specification or AGENTS — AGENTS.md, Saved App specification
- ✓ Confirmed How to run it
- ✕ Run manifest
Not checked
Not checked
Dependency & license health
Dependency and license evidence has not been checked.
Source coverage: Sampled — some eligible source files were omitted
Dependency vulnerability check: Inconclusive — dependency coverage is incomplete
Build not run by CookThisApp.
Suggestions (4)
Most serious first · Page 1
Persistent 'Allow all' bypasses per-action approval
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.
Review finding — does not by itself block publishing.
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
ai-security · Sources/Capture/Chat/ChatSession.swiftAccessibility tree read may capture unintended text
Low — 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.
Review finding — does not by itself block publishing.
Fix hint: Add a confirmation step or restrict document reading to user-initiated, clearly scoped windows, and document the data exposure.
Open
ai-security · Sources/Capture/Features/DocumentTextReader.swiftModel output rendered as markdown from untrusted screen content
Low — 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.
Review finding — does not by itself block publishing.
Fix hint: Sanitize or escape the text before rendering, or render as plain text, and consider stripping markdown links to non-http schemes.
Open
ai-security · Sources/Capture/Chat/ChatPanel.swiftPlatform check: macOS selected but no macOS project found
Low — an improvement hint for the developer, with no confirmed user harm.
Review finding — does not by itself block publishing.
Fix hint: Review the platforms in your listing Basics. This information does not affect the score or publication.
Open
platform-check ·
Kitchen Report
Current run: generation 1
capture · Version 01a1a71c-6a22-75a9-84db-3e1404610554
Report complete.
Live provider analysis
Ordinary dependency advisories are disclosed warnings and allow publication. Harmful source, malicious packages and unresolved rights or license blockers prevent publication.
Features found in source are not proof the app works. Actual run verification: Not tested. License and rights eligibility requires the seller’s declarations; dependency license compatibility: Not checked. Checks do not guarantee safety or production readiness.
Download reportView findings and fixesOur estimate: $7–13 in AI usage, plus your own time.
How we estimate
We estimate AI usage for repeated edits and context reads, priced at Claude Sonnet 5.5 rates. Repeated reads use the provider's cached-input price.
The developer sets the price; this estimate is guidance only.
Formula v4 · AI usage estimate · 5 rework iterations · 16× context · claude-sonnet-5-5 · Price table 2
Source checks
Source check ✓ 04/11/2026
- 1. Unpacking · ✓ Done
- 2. Secret scan · ✓ Done
- 3. Safety scan (S1) · ✓ Done
- 4. Dependency scan (S2) · ✓ Done
For developers: code quality
Improvement hints only; these do not contribute to buyer headline scores.
Architecture / structure: 83 / 100 (AI structure review)
Code cleanliness: 82 / 100 (AI maintainability review)
Test presence: 0 test files found (presence signal only). Coverage: Not checked.
Source size: 4055 LOC (metric, not a scored check).
- CaptureCoordinator centralizes capture flow cleanly; debug hooks are well isolated behind DEBUG. Sources/Capture/CaptureCoordinator.swift
- ChatSession is large; splitting tool execution and streaming into helpers would aid readability. Sources/Capture/Chat/ChatSession.swift
- TranslationOverlay mixes layout, drawing, and pixel analysis; consider extracting ImagePixels. Sources/Capture/UI/TranslationOverlay.swift