Skip to main content

Frankenreview v12.1.1

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.1

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.1
File Size Uploaded
frankenreview-12.1.1.tar.gz 135.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for frankenreview 12.1.1
File Interpreter ABI Platform
frankenreview-12.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 282.5 kB

Release files / frankenreview-12.1.1.tar.gz

Download URL frankenreview-12.1.1.tar.gz
Size 135.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e06a2ed14f92cc151fdd1d3ab9828799e9c439732165542dba25347f6a947725
BLAKE2b-256 checksum
How to use checksums
5ba6cf9343a8292592c311a43ad6bd6609e05bf5cb974913a4a34625c981b32d
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.1-py3-none-any.whl

Download URL frankenreview-12.1.1-py3-none-any.whl
Size 147.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
579818a98d0672cac10409ed1971c0aea90636777484817fde10c3bc8a5216e2
BLAKE2b-256 checksum
How to use checksums
c190ff94963a2f928e72c0c4ab07544fb98b2bb0a56d382b284b18e3f9f63af5
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.1 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