Skip to content

About

Automate ChatGPT from your Mac: a local-first AI agent that links a real ChatGPT chat in Google Chrome to a deterministic local executor with human-in-the-loop approvals. ChatGPT automation without OpenAI API key — Chrome extension, Ollama local LLM, privacy-first, offline workspace automation.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

288 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cortex Bridge

License: MIT Version 0.6.5 — unfinished preview

Use a ChatGPT web conversation as the reasoning side of a local, reviewed execution workflow. Choose the Atelier graphical interface or the optional CORTEX terminal. Both use the same local backend; neither adds a second engine.

Status: 0.6.5 unfinished technical preview, published for inspection and testing, not a stable or provider-authorized release. The version number identifies the source snapshot; it does not mean every acceptance gate passed. The 19 September evidence correction retracts the earlier release-validation claim. Current release evidence is incomplete. The new direction uses Codex as the operator and ChatGPT as the planning brain, with a bounded context and evidence journal rather than another mandatory UI. See the preview status, supervisor installation and harness contract. The Atelier and terminal paths remain available; their historical diagrams below do not describe automatic native attachments or an integrated Freebuff executor.

ChatGPT Web versus the ChatGPT desktop application

The supported 0.6.5 transport is the ChatGPT Web conversation in Chrome paired with the Cortex extension. Cortex can prepare bounded files, screenshots and links, ask for approval, transmit them through that browser channel and report the observed result.

Cortex does not connect directly to an arbitrary conversation already open in the ChatGPT desktop application. The desktop app does not expose the conversation identifier, history or a native attachment channel to this project. The supervisor must therefore never claim that a desktop file, image or link was sent. A future desktop adapter would be a separate capability with its own permission, transport and acceptance tests.

Created by Jonas Suhard. MIT-licensed, independent and not affiliated with OpenAI.

Three ways to use it

Use case What happens What does not happen
Chat Select a conversation, send text, read the reply A chat does not implicitly authorize local execution
Reviewed mission Confirm workspace and policy, review pending actions, inspect recorded results No automatic broad write approval
Terminal or Atelier Use the optional terminal or the web UI against one backend No separate queue, model subscription or execution service

Chat workflow Static version

Reviewed mission workflow Static version

Terminal and graphical interface Static version

Interactive diagrams and their limits

What is included in this candidate

  • Atelier conversation layout, collapsible diagnostics and clearer task states.
  • Geometric project card, action icons and reduced-motion behavior.
  • Optional French full-screen terminal with a CORTEX header, side-by-side ChatGPT/executor status, conversation history, replies, delivery acknowledgement and explicit controls. --plain keeps the line-oriented fallback for small or incompatible terminals.
  • Up to 50 listed conversations; the backend enforces two active writing leases.
  • No automatic resend when delivery is uncertain.
  • In-memory terminal drafts, isolated by submission and conversation.
  • Once-only terminal approvals bound to the backend's pending action identity.
  • Bounded cortex-context-request.v1 proposals for files, screenshots and links; each item is approved separately and duplicate approvals are idempotent.
  • A pure desktop-supervisor prompt/report formatter that keeps the ChatGPT attachment capability explicit instead of pretending that a file was sent.
  • Chrome-extension transport; no OpenAI API key on this transport path.
  • A deterministic local executor; Ollama remains optional.

Which model does what?

Layer Current mission behavior Selection means
ChatGPT planner Produces structured actions in the linked web conversation /modele selects a discovered ChatGPT model, not a local executor
Local mission executor Runs policy-approved tools deterministically No executor LLM is selected on this mission path
Ollama Separate legacy task path and diagnostics Its availability does not prove a mission used it
Freebuff Optional external installation/testing assistant Not an integrated mission executor

Changing an executor setting does not change the deterministic mission engine. Do not interpret the decorative Luna/Terra/Sol/Astra project card as a list of connected executors. A model comparison requires recorded model identity for each actual run, not just a selected label.

The full-screen terminal is a client of the same local API, not a second engine. Drafts do not survive terminal exit. Browser and file-upload support remain subject to the existing platform and transport limits.

Start from an existing checkout

scripts/cortex --help
scripts/cortex --version
scripts/cortex
scripts/cortex --plain
scripts/cortex ui

The source wrapper uses the existing Python environment. It does not install a global command or alter PATH. The default is the full-screen TUI; --plain is the explicit line-oriented fallback. Inside the fallback, use /aide, /conversations, /ouvrir 1, /historique, /suivre and /quitter. /demarrer delegates to the managed checkout launcher; it is not an installer.

Read the terminal guide for connection, missions, approval and error behavior.

Installation

Target: macOS with Google Chrome, Python 3.11+ and Git. Native Windows installation has not been validated for this candidate.

Inspect the installer plan before approving its exact hash:

./scripts/install.sh --dry-run --json
./scripts/install.sh --approve-plan PLAN_HASH --json
./scripts/cortex.sh doctor --json

Load the installer-reported chrome_extension_path in chrome://extensions using Load unpacked. The source directory is chrome-extension/, not extension/. Open Cortex in that Chrome profile, then use Ouvrir ChatGPT. Sign-in and browser permission prompts are human steps. File sending additionally requires the documented macOS Accessibility helper and permission.

Verification and benchmarks

Current test results and open gates separate automated fixtures, historical observations and untested live behavior. Benchmark evidence reports stored executor experiments with their small sample sizes and limitations.

No benchmark establishes equivalence to Codex, Astra, another ChatGPT model, or a commercial coding agent. Model names, account quotas and pricing are controlled by their providers, not Cortex. Freebuff is documented as an optional installation assistant; this candidate does not claim a tested Freebuff execution adapter or an OpenCodex integration.

Transport and security boundary

The backend is Python/FastAPI on http://127.0.0.1:8420. A paired Chrome extension carries structured commands to the selected ChatGPT tab. Local work uses the configured workspace and execution policy. The terminal accepts only root loopback HTTP URLs and does not use proxies, redirects or automatic retries.

The consumer-site transport is unofficial. OpenAI's Europe Terms of Use prohibit automatic extraction and bypassing restrictions. Technical tests and owner consent do not establish provider authorization. Cortex does not bypass login, CAPTCHA, account quotas or other access controls. Review the terms and security model before enabling it.

Screenshots and files use existing scoped staging and permission checks. The extension's documented transfer limit is 25 MiB, not a promised ChatGPT upload allowance. ChatGPT may apply additional limits.

Development

PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=.:console .venv/bin/python -m unittest discover -s tests
cd frontend
../scripts/npmw run test
../scripts/npmw run typecheck
../scripts/npmw run lint
../scripts/npmw audit --audit-level=high

The complete release gate is scripts/test-all.sh; individual green tests do not replace it. Playwright browser fixtures are test tooling, not a silent replacement for the product's Chrome connection.

Repository map

Path Responsibility
console/ FastAPI, settings, chat, missions and terminal modules
chrome-extension/ Manifest V3 service worker and content scripts
frontend/ React/Next.js Atelier UI and synthetic browser tests
orchestration/ Mission state machine and stored decisions
executor/ Local tools, policy and historical executor experiments
transport/ Browser drivers and test fixtures
scripts/ Lifecycle, install, terminal and verification commands

Architecture · Testing · Roadmap · LLM index · Contributing · Security policy · Changelog

About

Automate ChatGPT from your Mac: a local-first AI agent that links a real ChatGPT chat in Google Chrome to a deterministic local executor with human-in-the-loop approvals. ChatGPT automation without OpenAI API key — Chrome extension, Ollama local LLM, privacy-first, offline workspace automation.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages