Skip to main content

goodoc

CI PyPI Python License

Upload Office files to Google Drive with automatic conversion to native Google formats (Docs / Sheets / Slides). Integrates into macOS Finder as a right-click action.

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


Usage

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

goodoc login                          # authorize without uploading
goodoc logout                         # forget the stored token

Supported formats:

Extension Converts to
.doc, .docx Google Docs
.xls, .xlsx Google Sheets
.ppt, .pptx, .pptm Google Slides

Installation

curl -fsSL https://raw.githubusercontent.com/djachenko/goodoc/master/install.sh | bash

Installs goodoc, the Finder Quick Action, and adds goodoc-update / goodoc-uninstall to your shell.

Alternatively, CLI only (no Quick Action or shell helpers):

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

First run

goodoc talks to Google Drive through your own Google Cloud project.

Google gates Drive access behind an OAuth client, and shipping a single shared client for everybody requires app verification — a domain, a privacy policy, a review. Until that happens, each user creates their own client. It's a one-time step.

On the first run, a setup wizard starts automatically:

  1. Google Cloud credentials — opens the browser, walks you through creating an OAuth client, prompts for the downloaded JSON file — step by step, including the case of a client that already exists: docs/oauth-client.md
  2. Authorization — opens the browser for Google sign-in, saves the token

Google shows an "unverified app" warning during authorization. It refers to the client you just created — proceed past it.

After that, every run is silent.

There is also a shared client maintained by the author, with limited capacity. If you have an access key, skip the wizard entirely:

goodoc login --key <KEY>

Ask for a key in issues. Treat the key as a credential — don't publish it.

Enable the Quick Action in: System Settings → Privacy & Security → Extensions → Finder Extensions.


Update / Uninstall

goodoc-update      # upgrade to latest version
goodoc-uninstall   # remove goodoc, the Quick Action, and credentials

To re-authorize without uninstalling:

goodoc logout

License

MIT

Metadata

Release files for goodoc 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goodoc 1.7.0
File Size Uploaded
goodoc-1.7.0.tar.gz 14.2 kB Details

Built distribution (wheel)

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

Total release size: 23.9 kB

Release files / goodoc-1.7.0.tar.gz

Download URL goodoc-1.7.0.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
40fa3b236c73f9de13d0874388c5f20c7417fd353389b814a37f71b8c407900c
BLAKE2b-256 checksum
How to use checksums
110802ffcfa2832231ae3af01d4670238c950ddb0d7055029c8d0e1ae9202b69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / goodoc-1.7.0-py3-none-any.whl

Download URL goodoc-1.7.0-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e135101479638fc181f6eadec29cc2bd2d4528a77df2fefd8b97ec5fb59e8466
BLAKE2b-256 checksum
How to use checksums
324191cee775433dbe137d9206964213b2c8633895fbb02a447b48cc854cbb5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

1.8.0

2 release files

This release

1.7.0 This release

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

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