Skip to main content

Frankenreview v12.1.0

Version Python Cost Gemini Status

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 markdown action 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


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)

Source distribution for frankenreview 12.1.0
File Size Uploaded
frankenreview-12.1.0.tar.gz 135.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for frankenreview 12.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

12.1.0 This release

2 release files

11.6.9

2 release files

11.6.8

2 release files

11.6.7

2 release files

11.6.6

2 release files

11.6.5

2 release files

11.6.4

2 release files

9.5.0

2 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