Frankenreview v12.0.0
Lean, stateless, zero-cost code reviewer and research agent powered by Gemini via browser automation.
Architecture: Pull Model | Cost: $0.00 | Runtime: Playwright + Chrome
[!CAUTION] Data Privacy Notice: Google AI Studio may use submitted code for model training. Do NOT submit proprietary, confidential, or sensitive code.
Overview
Frankenreview packs a repository into structured XML context and submits it to Gemini via browser automation (no API key required).
Current browser flow:
- Starts or attaches to a Chrome debug session.
- Opens AI Studio on the requested model and verifies the active UI model.
- Enables temporary chat for one-shot reviews when available, avoiding delete cleanup.
- Sets AI Studio Thinking Level to High by default when the model exposes that control.
- Uploads repository context as a file-backed prompt, then triggers Run via native DOM click with mouse fallback.
- Extracts responses with AI Studio's native
Copy as markdownaction first, then falls back to DOM scraping.
| Layer | Module | Function |
|---|---|---|
| Dumper | engine/repo_dumper.py |
Repository to XML context |
| Browser | engine/browser/client.py |
AI Studio automation |
| CLI | cli.py |
Stateless command interface |
| Research | agents/research.py |
Deep research agent |
Installation
pip install frankenreview && playwright install chromium
Run Frankenreview from the project directory or pass --path explicitly. Filesystem roots such as /, C:\, and UNC share roots are rejected before any workspace files are created or scanned.
Usage
frankenreview --start-chrome # Start Chrome debugger
frankenreview -r # Review current directory
frankenreview -r --path "C:\path\to\repo" # Windows: review an explicit project
frankenreview -r -m gemini-3-pro # Use specific model
frankenreview -r -m lite # Alias: gemini-flash-lite-latest
frankenreview -r --thinking-level high # Set AI Studio thinking effort if available
frankenreview -r --json # JSON output for CI
frankenreview --research --prompt q.md # Deep research
frankenreview -t # Token eaters + token tree
# Model Discovery
frankenreview --available-models # Cached model list (instant)
frankenreview --fetch-models # Live fetch from Google AI docs
# Security Gates
frankenreview --secrets # Count exposed secrets in repo
frankenreview --secrets-gate # Toggle git-push secret scan
frankenreview --key-gate # Toggle shell key-exfiltration guard
# Session Management
frankenreview --open-chat # Open chat for manual use
frankenreview -r --continue # Continue previous session
frankenreview -r --continue --prompt "Summarize next steps"
frankenreview --delete-chat # Delete saved session
CLI Reference
| Flag | Description |
|---|---|
-r, --review |
Run code review |
--research |
Deep research mode |
--start-chrome |
Launch Chrome debugger |
--stop-chrome |
Stop Chrome instance |
--path PATH |
Target project |
-m, --model ID |
Gemini model ID; aliases: pro, flash, lite |
-t |
Run token-eaters and token-tree analysis |
--thinking-level LEVEL |
AI Studio Thinking Level: minimal, low, medium, high |
-i, --init |
Initialize project-local .frankenreview/ config and skill |
-gi, --gitignore |
Generate or merge clean, curated .gitignore |
-ds, --discover-selectors |
Verify live AI Studio selectors and update config |
--attach FILE |
Extra context files |
--json |
JSON output |
--continue |
Resume previous session |
--open-chat |
Open chat without review |
--delete-chat |
Delete saved session |
--available-models |
Display cached model compatibility list |
--fetch-models |
Actively fetch models from Google AI docs and update cache |
--secrets |
Scan repository for exposed secrets |
--secrets-gate |
Toggle git-push secret scan in zsh |
--key-gate |
Toggle shell guard for accidental key exfiltration |
Security Gates
Frankenreview masks secrets before XML dump writes when mask_secrets: true.
Manual checks:
frankenreview --secrets
Optional shell gates:
frankenreview --secrets-gate # Wraps git push with a pre-upload secret scan
frankenreview --key-gate # Guards common shell output paths for key-like data
Both gate toggles edit the current user's shell config and are reversible by running the same command again.
Configuration
Edit config.yaml:
chat_url: "https://aistudio.google.com/prompts/new_chat?model=gemini-flash-latest"
delete_after_review: true
use_temporary_chat: true
prune_dirs: [.git, node_modules, __pycache__]
model_failover: [gemini-3-flash-preview, gemini-2.5-pro, gemini-2.0-flash]
thinking_mode: true
thinking_level: high
mask_secrets: true
thinking_level is best-effort. If a model does not expose the AI Studio control, Frankenreview logs the miss and continues.
Model aliases:
| Alias | Resolves to |
|---|---|
pro / pro-latest |
gemini-pro-latest |
flash / flash-latest |
gemini-flash-latest |
lite / flash-lite / flash-lite-latest |
gemini-flash-lite-latest |
Run selector discovery when AI Studio changes:
frankenreview -ds --port 9222 # Selector + deterministic generation check
Selector discovery exercises the temporary-chat toggle at the start and ends
in a saved chat so the production delete flow can be checked. Temporary chats
do not expose Delete Prompt. Discovery submits exactly one probe and does
not rerun failed turns or switch models; normal reviews may still use
use_temporary_chat: true for one-shot cleanup.
Documentation
- CONTEXT_v11.md - Archived v11 architecture reference
- FR_FEATURE_CATALOG_v11.md - Archived v11 feature reference
- MODEL_COMPATIBILITY_2026.md - Models
License
MIT - See LICENSE
Metadata
Release files for frankenreview 12.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| frankenreview-12.0.0.tar.gz | 141.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| frankenreview-12.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 285.9 kB
Release files / frankenreview-12.0.0.tar.gz
| Download URL | frankenreview-12.0.0.tar.gz |
|---|---|
| Size | 141.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
82a0be792791bfb71bb3bc7c37f7d50831bf6d4ad879d591caaba1a9b145f445
|
|
BLAKE2b-256 checksum How to use checksums |
a30519f396cbd2dfa6ff8790176da1ccc279c12f99a1a43db8145a5e85fde5ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / frankenreview-12.0.0-py3-none-any.whl
| Download URL | frankenreview-12.0.0-py3-none-any.whl |
|---|---|
| Size | 144.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
078fc9c87eba245400e4642d74389034373d9332a1e60df8fbc7434412bd806c
|
|
BLAKE2b-256 checksum How to use checksums |
86a86bea29f64b3a090f72d09f2ee18630a36111f5c313cfa7817525b7df3d74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|