Excel-style keyboard shortcuts for Google Sheets on macOS.
Built for people who live in spreadsheets and do not want Chrome or Sheets fighting their hands.
Vexcel is a Manifest V3 Chrome extension that remaps Google Sheets around fast Excel-like workflows. It intercepts keystrokes before Sheets or Chrome can steal them, drives the Sheets UI when needed, and adds a lightweight accelerator system for power users who want ribbon-style access without touching the mouse.
The repo is especially focused on:
- fast fill behavior for
Cmd+DandCmd+R - browser-conflicting shortcut overrides that are actually usable
- finance-friendly format and color cycles
- an
Option-triggered accelerator overlay for high-speed actions - lightweight local debug/perf tooling for hardening flaky Sheets behavior
Cmd+Dfill down, including Excel-style single-cell behavior from the cell aboveCmd+Rfill right, including Excel-style single-cell behavior from the cell to the leftCtrl+Option+Fformat cycle for common spreadsheet formatsCtrl+Option+Cfont color cycleCtrl+Option+Aauto-color selection for hardcodes, formulas, and cross-sheet formulasOptionaccelerator overlay for menu-like command access- popup controls for enable/disable, debug mode, and opt-in browser overrides
- Clone or download this repo.
- Open
chrome://extensions. - Turn on Developer mode.
- Click Load unpacked.
- Select this folder:
Vexcel. - Open Google Sheets and start using the shortcuts.
This repo now includes a direct Google Sheets bridge so Codex can edit live Sheets ranges without exporting .xlsx files back and forth.
Use it for workflows like:
- read formulas from a live Google Sheet into Codex
- update a model range in place with
USER_ENTEREDformulas - append raw data rows directly to a sheet
- clear or rewrite scratch tabs without download/upload loops
Core files:
./scripts/gsheets./scripts/gsheets_cli.py./scripts/requirements-gsheets.txt./about/codex-google-sheets.md
Typical setup:
- Install the Python dependencies in a repo venv.
- Configure either a service account or an OAuth desktop client.
- Run
./scripts/gsheets authonce if you are using OAuth. - Add friendly spreadsheet aliases in
vexcel-sheets.json.
Then Codex can work directly against a live spreadsheet instead of round-tripping through local files.
There is also a popup-driven sync flow for workbook iteration:
- generate or update an
.xlsxlocally - copy its path to the clipboard with
./scripts/copy-path ... - start
./scripts/gsheets-sync-server - open the destination tab in Google Sheets
- press Sync Active Sheet From Clipboard in the Vexcel popup
That replaces the active Google Sheets tab with the workbook sheet data without making you manually export, upload, and re-import every iteration.
- Select a range and press
Cmd+Dto fill downward from the top row. - Select a range and press
Cmd+Rto fill rightward from the leftmost column. - Select a single cell and press:
Cmd+Dto pull from the cell aboveCmd+Rto pull from the cell on the left
- Tap
Optionto open the accelerator overlay. - Use shortcut overrides for actions Chrome normally steals.
- Use format and color cycles for fast model cleanup without hunting through menus.
- Turn on Debug Mode in the popup to see rolling command timings.
- Use the built-in perf summaries to spot slow Sheets flows quickly.
about/README.md: package overviewabout/architecture.md: runtime and execution modelabout/shortcuts.md: shortcut inventoryabout/file-map.md: folder-by-folder guideabout/codex-google-sheets.md: direct Codex-to-Sheets bridge
- Chrome Extension Manifest V3
- Injected into Google Sheets at
document_start - Works across top-frame UI plus iframe-based grid editing
- Uses a mix of direct DOM control, tool-finder automation, toolbar actions, and targeted fallbacks where Sheets is inconsistent
Vexcel is actively tuned for real spreadsheet use, especially finance-heavy workflows where latency and shortcut fidelity matter. The codebase is optimized for day-to-day use in Google Sheets on Mac, and the sharp edges are mostly around whatever DOM changes Google ships next.