Skip to main content

Upload office files to Google Drive with auto-conversion to Docs/Sheets/Slides

Project description

goodoc

Upload .docx, .xlsx, .pptx, and .pptm files to Google Drive with automatic conversion to native Google formats (Docs / Sheets / Slides). Integrates into macOS Finder as a right-click Quick Action.

Typical workflow: got a file to review → right-click → opens in Google Docs. No Word, no drag-and-drop.


Requirements

  • macOS
  • Python 3.10+
  • pipx
  • A Google Cloud project with Drive API enabled and an OAuth 2.0 Desktop credentials file

Installation

pipx install git+https://github.com/djachenko/goodoc.git

Or clone and install locally:

git clone https://github.com/djachenko/goodoc.git
cd goodoc
pipx install .

Google Cloud setup

  1. Go to console.cloud.google.com and create or select a project
  2. APIs & Services → Library → search for Google Drive APIEnable
  3. APIs & Services → CredentialsCreate Credentials → OAuth 2.0 Client ID
    • Application type: Desktop app
    • Download the JSON file
  4. Place the file at ~/.goodoc/credentials.json:
mkdir -p ~/.goodoc
mv ~/Downloads/client_secret_*.json ~/.goodoc/credentials.json

On first run, a browser window will open for Google authorization. The token is saved to ~/.goodoc/token.json — subsequent runs are silent.


Usage

goodoc file.docx           # upload and open in browser
goodoc file.xlsx --no-open # upload without opening

Supported formats:

Extension Converts to
.docx Google Docs
.xlsx Google Sheets
.pptx Google Slides
.pptm Google Slides

Finder integration (macOS Quick Action)

  1. Open AutomatorNew DocumentQuick Action
  2. Set Workflow receives current: files or folders in Finder
  3. Add a Run Shell Script action, set Pass input: as arguments
  4. Paste the script:
for f in "$@"; do
    "$(which goodoc)" "$f"
done
  1. File → Save → name it Open in Google Docs

Right-click any .docx, .xlsx, .pptx, or .pptm in Finder → Quick Actions → Open in Google Docs.

If which goodoc doesn't work in Automator, replace it with the full path from which goodoc in your terminal (e.g. /Users/you/.local/bin/goodoc).

If the action doesn't appear in the menu: Finder → Finder menu → Services → Services Preferences… → find Open in Google Docs and enable it.


Revoking access

To re-authorize, delete the token:

rm ~/.goodoc/token.json

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

goodoc-1.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

goodoc-1.1.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file goodoc-1.1.0.tar.gz.

File metadata

  • Download URL: goodoc-1.1.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for goodoc-1.1.0.tar.gz
Algorithm Hash digest
SHA256 fc3cc6840c607fda9c8ae1cefab02d092fcd3804d04eb7f39963ac133c32a040
MD5 c2615dfac0f4fbf82fa92b41614bfc6e
BLAKE2b-256 6c9a80a143b96f004c8292c681fb07e3406613a2ffed5289e25630cbe55a944d

See more details on using hashes here.

Provenance

The following attestation bundles were made for goodoc-1.1.0.tar.gz:

Publisher: release.yml on djachenko/goodoc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file goodoc-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: goodoc-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for goodoc-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e8a919a184e3cf27a7d15c4a0e18e59dc2274a009bf89f8e629047b501baf7c
MD5 2d54b24db07d60aceb1a280548a9bd20
BLAKE2b-256 cbf0dbf5c5fb9dc076a1d23ca0c46ae66ca15b08834098aaab28d991d237aae9

See more details on using hashes here.

Provenance

The following attestation bundles were made for goodoc-1.1.0-py3-none-any.whl:

Publisher: release.yml on djachenko/goodoc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page