Skip to content

Releases: juliandickie/scribe-plugin

Scribe v1.0.0 - Full Google Workspace Suite

15 May 03:01

Choose a tag to compare

The biggest release since the initial plugin. Scribe is now a complete Google Workspace orchestration layer with 10 service skills, 14 named workflow commands, and a refactored orchestration router.

What's new

14 named workflow commands for cross-service operations:

  • /scribe:daily-briefing - inbox + calendar morning sweep
  • /scribe:inbox-triage - categorise, label, draft replies
  • /scribe:support-scan - support inbox to tracking sheet + drafts
  • /scribe:meeting-prep - prep doc with related emails
  • /scribe:thread-to-doc - email thread to Doc + attachments to folder
  • /scribe:client-digest - full activity digest for a client
  • /scribe:weekly-wrap - weekly summary across services
  • /scribe:follow-up-tracker - find unanswered sent emails
  • /scribe:contact-onboard - bootstrap folder + Contact + Sheet + welcome
  • /scribe:doc-chase - nudge inactive doc reviewers
  • /scribe:attach-vault - organise email attachments into Drive
  • /scribe:event-recap - post-meeting notes doc + follow-up
  • /scribe:smart-reply - contextual draft from prior history
  • /scribe:educator-setup - bootstrap educator's Drive structure

10 service skills - one per Google service - now auto-activate to give Claude per-service MCP tool API depth - gmail, calendar, docs, drive, sheets, slides, contacts, tasks, forms, chat.

Three-layer skill architecture - orchestration router + service skills + workflow skills - keeps each skill focused under 500 lines and ensures Claude loads the right context per request.

Cross-plugin composition - workflow skills include "if ClickUp/Slack/Spiffy/AC Builder plugin is installed..." prose hints so Claude chains across plugins naturally without code coupling.

Multi-account orchestration - explicit multi-account intent ("check both my inboxes") triggers auto-loop across all authenticated accounts. Ambiguous intent prompts once.

make check-upstream maintenance ritual - new Makefile target hits PyPI's JSON API monthly to flag drift against the pinned workspace-mcp version.

Pre-release accuracy work

This release went through a full pre-tag code review against the actual workspace-mcp@1.20.4 tool surface. Every service skill's MCP tool reference was verified against the installed package source, not approximated. Caught and fixed - non-existent list_authenticated_accounts references, invented Sheets/Slides/Contacts/Tasks/Forms/Chat tool names, manage_event action="read" (replaced with get_events(event_id=...)), and other accuracy issues. The release ships with correct upstream tool names throughout.

Upgrading from 0.x

The install command is the same:

/plugin marketplace add juliandickie/scribe-plugin
/plugin install scribe

After upgrading, run /scribe:auth-status to confirm existing tokens still work. Existing tokens cover the broader scope set the v1.0 tool list requests, but if you see "Scope not authorized" errors on a specific service, re-run /scribe:auth-add EMAIL for that account.

Documentation

Credits

Wraps workspace-mcp@1.20.4 by @taylorwilsdon. The breadth of this release is possible because of his work on the underlying MCP server.

Scribe v0.3.1

13 May 12:30

Choose a tag to compare

Full Changelog: v0.3.0...v0.3.1

Scribe v0.3.0 - PyPI install path

07 May 14:58

Choose a tag to compare

Scribe v0.3.0

Minor-version release marking the shift from git-URL fork dependency to PyPI-published upstream. No user-facing capability changes.

What changed

The plugin's manifest used to install workspace-mcp from git+https://github.com/juliandickie/google_workspace_mcp.git@fork-extension. As of v0.3.0 it installs from PyPI -

- "args": [
-   "--from",
-   "git+https://github.com/juliandickie/google_workspace_mcp.git@fork-extension",
-   "workspace-mcp",
+ "args": [
+   "workspace-mcp@1.20.4",
    ...
  ]

This is possible because our markdown writer contribution (PR #727) and the QoL improvements that followed (PR #742) are now both shipped in upstream taylorwilsdon/google_workspace_mcp v1.20.4 on PyPI.

Why this matters

  • Faster cold start - uvx pulls from PyPI cache instead of cloning a git branch
  • Pinned to a known-good version - reproducible installs across machines and time
  • No more fork dependency - users no longer need to trust a branch on a downstream fork; they're consuming the same upstream package the maintainer publishes
  • Free upstream improvements - when taylor cuts v1.20.5, v1.21.0, etc., we test and bump the pin in plugin.json

Items addressed in upstream

The original deferred-items list from v0.2.1 has now been resolved -

Item Status
Auto-retry on transient HTTP 500s ✅ in v1.20.3+ via PR #742
import_to_google_doc description rewording ✅ in v1.20.3+ via PR #742
list_drive_items surfaces driveId ✅ in v1.20.3+ via PR #742
Configurable scope subset per install ⏳ design discussion at upstream issue #771

Migration

If you have v0.2.x installed -

/plugin update scribe

Or full reinstall in fresh sessions -

/plugin uninstall scribe
/plugin install scribe

Existing OAuth tokens at ~/.workspace-mcp/credentials/*.json continue to work. The upstream tool surface is the post-PR-727 shape (the consolidated manage_doc_tab action tool with populate_from_markdown, create, rename, delete actions) which the v0.2.2 skills already match.

What v0.3.0 is NOT

This is not a feature release. The plugin's user-facing surface (skills, slash commands, install flow, multi-org docs) is identical to v0.2.2. The change is entirely behind-the-scenes plumbing.

Acknowledgements

Major thanks to @taylorwilsdon for the responsive review of PR #727, the elegant manage_doc_tab consolidation refactor during merge, and the same-week turnaround on the four QoL improvements via PR #742. This release exists because upstream is healthy and active.

License

MIT - see LICENSE.

Scribe v0.2.2

27 Apr 01:08

Choose a tag to compare

Full Changelog: v0.2.1...v0.2.2

Scribe v0.2.1 - feedback-driven fixes

27 Apr 00:24

Choose a tag to compare

Scribe v0.2.1

Patch release driven by detailed user feedback after a real cross-org bulk-upload session. No new features - all changes target onboarding friction surfaced in the feedback document (paraphrased here).

What was broken before v0.2.1

If you followed the README's getting-started flow on a fresh machine and tried to push markdown from a project repo, you hit at least three friction walls in order -

  1. /scribe:auth-add failed with "OAuth client credentials not found" pointing at a uv cache path you'd never created
  2. /scribe:auth-init told you to save credentials at ~/.workspace-mcp/oauth_client.json but the server ignored that path unless you also set GOOGLE_CLIENT_SECRET_PATH env var manually
  3. import_to_google_doc rejected your project-repo file with a sandbox error that wasn't documented anywhere user-facing

What's fixed

Manifest (the leverage point)

plugin.json's mcpServers.scribe.env now sets -

  • GOOGLE_CLIENT_SECRET_PATH to ${HOME}/.workspace-mcp/oauth_client.json (matches what /scribe:auth-init tells you to do)
  • WORKSPACE_MCP_CREDENTIALS_DIR to ${HOME}/.workspace-mcp/credentials
  • ALLOWED_FILE_DIRS to ${HOME}/.workspace-mcp/attachments

The plugin's friendly outer surface now agrees with what the underlying MCP server actually does.

Skills

  • /scribe:auth-init rewritten with explicit canonical-path instruction, multi-org callout, and Troubleshooting section
  • /scribe:auth-add now checks for the OAuth client file BEFORE attempting the flow and prints a clear "run auth-init first" message if missing
  • /scribe:push documents the ALLOWED_FILE_DIRS sandbox up front, walks Claude through auto-copying outside-sandbox files into a session subdirectory, warns that symlinks don't bypass the check, and recommends file_path over content for batch operations

Docs

  • New File-path sandbox section in README explaining the directory restriction and how to extend it
  • Expanded Multi-account support split into within-org (works out of the box) and cross-org (needs the symlink-swap pattern below)
  • New docs/multi-org-setup.md walkthrough for the cross-Workspace case
  • New scripts/switch.sh ready-to-install helper for flipping between OAuth clients across orgs
  • Four new Troubleshooting entries (sandbox error, transient 500s, slash-command-not-found, OAuth client cache-path error)

Upgrading

If you already have v0.2.0 installed -

/plugin update scribe

Or full reinstall -

/plugin uninstall scribe
/plugin install scribe
/scribe:auth-status

Existing OAuth tokens at ~/.workspace-mcp/credentials/*.json continue to work - this release only changes the plugin's wiring, not the token format.

Items deferred to the upstream fork

These were flagged in the feedback but require changes in juliandickie/google_workspace_mcp rather than this plugin -

  • Auto-retry on transient HTTP 500/502/503/504 from Drive API
  • import_to_google_doc tool description rewording to prefer file_path over content
  • list_drive_items surfacing driveId for Shared Drive context
  • Configurable scope subset (drive-only vs drive+gmail+calendar) per install

These will be filed as upstream issues. If the fork's PR to taylorwilsdon's google_workspace_mcp merges, fixes flow back to all Scribe users automatically.

License

MIT - see LICENSE.

Scribe v0.2.0 - skills-first architecture

24 Apr 15:21

Choose a tag to compare

Scribe v0.2.0

Breaking change release. Migrates the plugin from the legacy commands/ directory to the modern skills/ pattern per Anthropic's 2026 plugin docs.

What changed

  • Slash commands are now namespaced. Old - /scribe-auth-init. New - /scribe:auth-init. Same for all five commands (auth-init, auth-add, auth-status, push, client-resolve).

  • Install-time warning gone. No more "it uses the legacy commands/ format" message.

  • Skills-first layout. All user-invoked slash commands now live in skills/<name>/SKILL.md. Three of the five (auth-init, auth-add, auth-status, client-resolve) use disable-model-invocation: true in frontmatter so they're purely user-triggered. push remains both user-invokable (via /scribe:push) and auto-activatable (when the user says things like "push this markdown to Drive").

  • skills/workspace/SKILL.md (renamed from skills/scribe) still auto-activates when Claude encounters Google-Workspace context. The rename avoids the ugly /scribe:scribe invocation name.

Migration path for users

Replace any saved commands or muscle memory -

Old New
/scribe-auth-init /scribe:auth-init
/scribe-auth-add /scribe:auth-add
/scribe-auth-status /scribe:auth-status
/scribe-push /scribe:push
/scribe-client-resolve /scribe:client-resolve

The /scribe-* (hyphen) versions stop working with v0.2.0+. If you're pinned to v0.1.0 you can keep using the old syntax.

Under the hood

Plugin structure now -

scribe-plugin/
├── .claude-plugin/plugin.json
├── skills/
│   ├── auth-add/SKILL.md
│   ├── auth-init/SKILL.md
│   ├── auth-status/SKILL.md
│   ├── client-resolve/SKILL.md
│   ├── push/SKILL.md
│   └── workspace/SKILL.md
├── hooks/post-install.sh   (optional manual installer)
├── docs/images/            (3 feature images)
├── LICENSE
└── README.md

commands/ directory is gone. No functional regressions - every capability from v0.1.0 is preserved.

License

MIT - see LICENSE.

Scribe v0.1.0 - initial release

24 Apr 14:35

Choose a tag to compare

Scribe v0.1.0

Initial public release of Scribe - a Claude Code plugin for Google Workspace automation.

What's in the box

  • gworkspace-plugin → scribe-plugin - the plugin manifest with inline mcpServers declaration. Claude Code auto-installs the MCP server via uvx on first use, no separate install step needed.

  • 5 slash commands for common operations - /scribe-auth-init, /scribe-auth-add, /scribe-auth-status, /scribe-push, /scribe-client-resolve.

  • 1 skill (skills/scribe/SKILL.md) that teaches Claude when and how to invoke the MCP tools.

  • Optional manual install script at hooks/post-install.sh for eagerly pre-warming the workspace-mcp install instead of waiting for first use.

Installation

In a Claude Code session:

/plugin marketplace add juliandickie/scribe-plugin
/plugin install scribe
/scribe-auth-init

See the README for Google Cloud Project setup walkthrough (5 minutes, one time).

What it wraps

Scribe wraps the workspace-mcp server - a fork of taylorwilsdon/google_workspace_mcp extended with a high-fidelity update_tab_from_markdown writer that converts CommonMark+GFM markdown into Google Docs API batchUpdate requests with full formatting fidelity.

Supports headings H1-H6, paragraphs, inline bold and italic and code and links, ordered and unordered lists, fenced code blocks, blockquotes, horizontal rules. Tab-aware for Docs with multi-tab layouts.

Production validation

  • 24 unit tests for the markdown writer passing

  • 2 integration tests against a real Google Doc passing

  • Real-world acceptance - an agency populated 12 condition documents × 8 content tabs each (96 tabs) for a clinic client in under 4 minutes end-to-end. The equivalent browser-paste workflow used to take close to an hour.

Known limitations

  • Images, tables, footnotes, smart chips, and equations are not yet supported by the markdown writer (tables fall through to plain-text rendering).

  • First-use install takes a few seconds while uvx downloads the MCP server from the fork. Subsequent invocations are instant.

  • API quota is Google's default 60 requests per minute per user. Heavy batch operations may need a quota increase.

License

MIT - see LICENSE.