Frankenreview v12.1.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 -m gemma # Alias: gemma-4-31b-it
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 |
--planner |
Critique plan.md against repository context |
--deep-scan, --cycles N, --resume |
Run or resume multi-cycle review |
--consolidation |
Analyze repository structure and standardization |
--start-chrome |
Launch Chrome debugger |
--stop-chrome |
Stop Chrome instance |
--chrome-stats |
Show Chrome resource usage |
--path PATH |
Target project |
--output FILE |
Override the output path |
--prompt TYPE|PATH |
Select a built-in prompt, prompt file, or supported raw follow-up |
--verbose |
Enable browser automation diagnostics |
-m, --model ID |
Gemini/Gemma model ID; aliases: pro, flash, lite, gemma |
--research-model ID |
Select a supported research model |
--profile NAME, --port N, --visible |
Select or expose the debug-browser session |
-d, --dump |
Generate a repository dump only |
-c, --copy-dump |
Generate a dump and copy its file reference |
--token-eaters, --token-tree, -t |
Analyze repository token use |
--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 |
--edit-config |
Open the effective configuration |
-ds, --discover-selectors |
Verify live AI Studio selectors and update config |
--self-check |
Run syntax, import, and configuration diagnostics |
--attach FILE |
Extra context files |
--prune-changelogs |
Exclude changelog history from review context |
--prune-list, --prune-add-*, --prune-remove-* |
Inspect or edit project pruning rules |
--json |
JSON output |
--continue |
Resume previous session |
--continue-new |
Start and preserve a fresh resumable session |
--open-chat |
Open chat without review |
--delete-chat |
Delete saved session |
--rigour, --workflow |
Print bundled review doctrine or workflow |
--rigour-edit, --workflow-edit, --prompt-edit |
Edit bundled/project workflow files |
--create-prompt NAME |
Create a project prompt |
--feature-research QUERY |
Run repository-backed feature research |
--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 |
--update |
Install the current checkout |
Run fr --help for authoritative argument details and aliases.
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 |
gemma |
gemma-4-31b-it |
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
- TESTING_PROCEDURES.md - Release verification matrix
- SELECTOR_DISCOVERY_GUIDE.md - AI Studio selector maintenance
- COMMAND_OUTPUT_REFERENCE.md - Generated non-review CLI output
License
MIT - See LICENSE
Metadata
Release files for frankenreview 12.1.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.1.0.tar.gz | 135.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| frankenreview-12.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 281.8 kB
Release files / frankenreview-12.1.0.tar.gz
| Download URL | frankenreview-12.1.0.tar.gz |
|---|---|
| Size | 135.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa091dd01b816d11bdcc99640fc32a6c63c5597b852d77ddbb068be2ab25b54a
|
|
BLAKE2b-256 checksum How to use checksums |
628a5b355cf172964b0e392bd7f733be936c39f61931e7394b1a4b8cdc5c775a
|
| 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.1.0-py3-none-any.whl
| Download URL | frankenreview-12.1.0-py3-none-any.whl |
|---|---|
| Size | 146.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b0e5a4230523f79cc3e292fc1c528055cd0faed43564f0dc52c403a37c0f380a
|
|
BLAKE2b-256 checksum How to use checksums |
645f772e13848bdf4ce3d52cfba51d94703d7900f4ddd0413ee59990bae9c559
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|