✦ Setup Guide
Dripwriter Origin + AI
Let Claude type for you — human-like, into Google Docs, Canvas, or any text box.
Install Dripwriter Origin
Get the extension that powers human-like typing in Google Docs, Canvas, and any text box.
Install Claude in Chrome
Add Claude’s official Chrome extension to your browser.
Requires a paid Claude plan — e.g. Claude Pro at $20/month.
Add the Dripwriter Origin Skill to Claude
Copy the URL below and paste it directly in your address bar to open Claude’s Shortcuts page.
chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/options.html#prompts
Click + Create shortcut, set the name to:
/dripwriter
Paste this prompt into the prompt field:
You have access to **Dripwriter Origin**, a browser extension that types text into Google Docs, Canvas, Microsoft Word Online, the Packback editor, and virtually any text box on any website the way a human would: jittery speed, occasional neighbor-key typos, false-start words that get deleted, and short breaks every minute or so.
You interact with it using your **built-in JavaScript execution tool** — the tool that lets you run a script in the active browser tab. Do not open DevTools, do not press F12, do not interact with the browser UI directly.
On any page with an editable text box — a Google Doc, a Canvas assignment, the Packback editor, or any standard textarea or contenteditable field — with the extension's **Enable API mode** toggle turned on, the page exposes a global object:
```js
window._dripwriter
```
### Capabilities
| Member | Type | Behavior |
|--------|------|----------|
| `config` | mutable object | Settings snapshotted at `start()` time. See fields below. |
| `start()` | `() => Promise<void>` | Begins typing. Resolves when typing finishes; rejects on error or cancellation. |
| `stop()` | `() => Promise<void>` | Cancels the active run immediately (even mid-break). Resolves once acknowledged. |
| `test()` | `() => Promise<void>` | Runs a diagnostic matrix (8 input strategies). Use only when debugging. |
| `status()` | `() => Promise<{ running: boolean, detail: string, resumable?: boolean }>` | One-shot snapshot. **Do not poll in a loop.** `resumable` is true when a stopped run can be continued from the extension UI. |
| `version` | `string` | Extension semver. |
### `config` fields (mutate directly, then call `start()`)
| Field | Default | Valid range at `start()` |
|-------|---------|---------------------------|
| `text` | `""` | non-empty trimmed string |
| `wpm` | `60` | `20`–`150` |
| `speedVariance` | `30` | `0`–`80` (%) |
| `typoRate` | `3` | `0`–`30` (%) |
| `detourRate` | `3` | `0`–`25` (%) |
| `breakFrequencySeconds` | `55` | `10`–`600` |
| `breakFrequencyVariance` | `30` | `0`–`100` (%) |
| `breakMinSeconds` | `3` | `3`–`60` |
| `breakMaxSeconds` | `15` | `breakMinSeconds`–`90` |
Out-of-range values are clamped at `start()` time, not on assignment.
### Rules of use
1. **`await start()`.** It resolves on natural completion. Do not poll `status()` in a loop.
2. **Snapshot the text into `config.text` BEFORE calling `start()`.** Mutations after `start()` do not affect the in-flight run.
3. **Make sure you are on the tab with the text box you want to type into** — a Google Doc, a Canvas assignment, the Packback editor, or any textarea or contenteditable field. With API mode on, `_dripwriter` is exposed on whatever page you are viewing; use your JavaScript execution tool to read `location.href` if you need to confirm the page.
4. **Check that `window._dripwriter` exists.** If it's `undefined`, the user has not enabled API mode in the extension. Surface this to the user: *"Open the Dripwriter extension and enable API mode."*
5. **Ensure the cursor is inside the text box** before calling `start()`. If the cursor is lost mid-run, `start()` rejects — on Google Docs with `"The Google Docs cursor was lost. Click back into the document and retry."`, and on other fields with a similar "click back into it" message — surface it to the user verbatim.
6. **Handle `"cancelled"`** specifically: it means the user pressed Stop, or another `start()` call superseded yours, or API mode was toggled off. This is a *user action*, not an error — handle it gracefully (don't retry). After a stop, `status()` may show `resumable: true` — the user can resume from the extension UI.
7. **Handle `"Dripwriter API mode was disabled."`** by stopping further work; the user explicitly opted out.
8. **Never call `_dripwriter.test()`** unless the user is debugging which input strategies the editor is currently accepting. On Google Docs it writes diagnostic markers `AAA`–`HHH` into the document; on other fields it writes a single probe marker.
9. **Microsoft Word Online is not supported via the console API.** The Word Online editor runs inside a cross-origin iframe that the API bridge cannot reach. If the user needs to type into Word Online, tell them to use the Dripwriter extension directly instead.Leave everything else blank and click Create shortcut.
Enable API Mode
Reload the tab you want to type into — a Google Doc, a Canvas assignment, or any text box — open the Dripwriter Origin extension, scroll to the bottom, and toggle Enable API mode.
Use Dripwriter Origin with Claude
Click the Claude in Chrome extension and give it a natural-language instruction using /dripwriter.
Example
/dripwriter Use dripwriter to type 2 sentences about what GDP is in the Part A Response box, then type 2 sentences about what checking accounts are in the Part B response box. Make sure to verify you click the cursor inside the Part B response box after Part A is done.