AutoBroker v0.1.0 is a local-first helper for getting real new-car quotes from dealers. It runs on your Mac, keeps your shopping data local, and helps you move from "I know the car I want" to "I have comparable out-the-door quotes."
You need:
- macOS 12 or newer
- uv for Python setup
- Node.js 22 LTS for the local dashboard bundle
- Google Chrome for dealer websites and inventory pages
- A supported agent runner — either Claude Code (the
claudeCLI) or the Codex CLI (codex). Install and sign in to whichever you plan to use before step 3.
git clone https://github.com/ryanxwy/AutoBroker.git
cd AutoBroker
uv --project autobroker sync
(cd ui && npm install)AutoBroker can run the quote pipeline with either Claude or Codex/OpenAI.
- Claude: follow quickstart/auth-setup.md for subscription OAuth or an Anthropic API key.
- Codex/OpenAI: sign in with
codex login, then verify the local driver with:
uv --project autobroker run autobroker doctor --codexThe repo includes project configs for both providers. Browser automation uses
chrome-devtools-mcp by default, with Playwright MCP as the explicit fallback.
AutoBroker uses your own Gmail OAuth client. Follow the BYO OAuth walkthrough:
This keeps Gmail credentials under your local macOS account instead of a shared hosted service.
uv --project autobroker run autobroker upOpen:
The dashboard and backend run together on that local address. AutoBroker builds the UI bundle if needed and stores pipeline state in a local SQLite database.
AutoBroker helps you run a new-car quote workflow:
- Define the vehicle you want.
- Find nearby dealers.
- Prepare quote requests.
- Submit approved dealer forms.
- Read dealer replies from Gmail.
- Extract out-the-door quote details.
- Compare quotes and prepare follow-ups.
- Close out or reset the search when you are done.
It is local-first: your database, logs, Gmail tokens, and shopping state stay on your machine.
The dashboard is the main place to operate AutoBroker. Use it to:
- See the active search profile and dealer list.
- Start pipeline steps from "Run skill".
- Watch progress as the agent works.
- Review approvals before anything visible goes to a dealer.
- Compare extracted quotes once replies arrive.
The dashboard is not a hosted service. It is a local web app served by autobroker up at http://127.0.0.1:8100.
Run pipeline_reset only when you want to wipe the current local pipeline data and start over. AutoBroker asks for a typed YES before the reset proceeds.
Then run search_profile_intake to capture the car you want: year, make, model, trim, location, and buyer context.
Run dealer_geosearch to find nearby dealers for the active search. This uses browser navigation and local database writes, so it should not interrupt you for approval.
Run dealer_web_lead_submit when you are ready to contact dealers. AutoBroker can scout dealer websites and prepare form submissions, but it must ask you before submitting any dealer form or sending any outbound Gmail message.
Run dealer_inbox_check during the day to pull relevant Gmail replies. This reads Gmail and writes local routing state, so it should not interrupt you for approval.
Then run dealer_reply_extract to turn dealer replies into structured quote records.
Run quote_pipeline after replies are extracted. It can call quote audit, quote comparison, incentive refresh, follow-up drafting, and digest steps as needed.
Use quote_compare when you want a direct ranked view of current quotes.
Run negotiation_followup to draft replies from the quote context. AutoBroker must ask before sending any email.
Run dealer_closeout_email when you are ending a search and want to politely tell active dealers.
Run daily_digest to summarize the current state.
AutoBroker is designed to keep normal local work moving without stopping for every read, page visit, or database row.
These are normal local workflow actions:
- Reading or writing local SQLite pipeline data.
- Reading Gmail threads and attachments.
- Navigating public dealer websites.
- Using Google Maps or dealer pages for discovery.
- Updating local watermarks, logs, labels, and dashboard state.
These are hard gates:
- Sending outbound Gmail.
- Submitting a dealer web form.
- Running irreversible
dealer_hygienedatabase writes. - Running
pipeline_reset, which requires a typedYES.
If a dealer can see it, or if local state can be irreversibly removed or suppressed, AutoBroker asks first.
AutoBroker automates services that belong to other people and companies. You are responsible for using it lawfully and within the terms of service of everything it touches — the Gmail API, Google Maps, and each dealer's website. Review those terms before you run any outbound step.
- Placeholder phone by default. To limit unsolicited sales calls, AutoBroker fills dealer forms with a placeholder phone number (
(555) 010-0000) instead of your real one. To be reached on your real number, tellsearch_profile_intakeyou want dealers to call your real phone (this sets the search profile'sphone_policytoreal); otherwise the placeholder is used on every form. - Your budget stays private. AutoBroker never puts your budget or target price into dealer-facing forms or messages.
- Every outbound action is gated. Sending Gmail and submitting dealer forms always require your explicit confirmation — see Approval Boundaries.
- Provided "as is." AutoBroker is released under the MIT License with no warranty. Dealer responses, quote accuracy, and any consequences of submitting forms or sending email are your responsibility. Use at your own risk.
AutoBroker supports Claude and Codex/OpenAI providers.
Browser automation uses isolated MCP browser sessions:
chrome-devtools-mcpis the default browser backend.- Playwright MCP is a supported explicit fallback and can be used by Codex too.
- Both browser paths are isolated from your personal Chrome profile.
AutoBroker has deterministic checks for Python services, config, manifests, and
the React dashboard. The full quote pipeline is different: it is LLM-driven,
Gmail/Keychain-backed, browser-stateful, and permission-gated. That live
workflow is validated through the manual harness under harness/, not through a
fake deterministic test:e2e.
uv --project autobroker run autobroker up
uv --project autobroker run autobroker doctor
uv --project autobroker run autobroker statusCommon pipeline skills:
| Skill | When to use it |
|---|---|
search_profile_intake |
Start a new vehicle search |
dealer_geosearch |
Find dealers |
dealer_web_lead_submit |
Prepare and submit approved quote requests |
dealer_inbox_check |
Check Gmail for dealer replies |
dealer_reply_extract |
Extract quote details from replies |
quote_compare |
Compare current quotes |
negotiation_followup |
Draft approved follow-up emails |
daily_digest |
Summarize the current pipeline state |
pipeline_reset |
Start over after typed confirmation |
The root README stays focused on first-run usage. Additional project docs are indexed at docs/README.md.