@cutoffs/openclaw-plugin 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,79 @@
1
+ # Cutoffs OpenClaw Plugin
2
+
3
+ Third-party OpenClaw plugin that lets OpenClaw talk to external SaaS apps through [Cutoffs](https://cutoffs.dev)'s hosted integration layer.
4
+
5
+ > **Not affiliated with OpenClaw.** Cutoffs is an independent service. This package is published by the Cutoffs team under the npm scope [`@cutoffs`](https://www.npmjs.com/package/@cutoffs/openclaw-plugin). Source: [public GitHub repository](https://github.com/cutoffs/cutoffs). License: AGPL-3.0.
6
+
7
+ ## What it does
8
+
9
+ Cutoffs stores provider OAuth tokens and API credentials on Cutoffs servers, encrypted at rest, for a growing catalog of business apps on your behalf. It then exposes a uniform set of tools so OpenClaw can read from and write to those apps without per-provider setup. Today that includes integrations like Google Docs, Google Sheets, Google Calendar, Google Drive, Twilio, and Google Search Console. Setup is browser pairing: OpenClaw opens a Cutoffs approval page, you approve the device once, then return to chat and send `done` so the plugin can store its local Cutoffs device credential safely.
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ openclaw plugins install clawhub:cutoffs-plugin
15
+ ```
16
+
17
+ Or directly from npm:
18
+
19
+ ```bash
20
+ openclaw plugins install @cutoffs/openclaw-plugin
21
+ ```
22
+
23
+ ## Configure
24
+
25
+ 1. In OpenClaw, start browser pairing:
26
+ - let the assistant call `cutoffs_begin_pairing`
27
+ - if your session started before the plugin was installed and the tools are not visible yet, start a fresh chat and retry pairing there
28
+ - if a fresh chat still doesn't show the tools, contact your OpenClaw admin or Cutoffs support to reload the gateway
29
+ 2. Open the returned Cutoffs pairing URL in your browser and approve the device.
30
+ 3. Go back to OpenClaw and send `done`.
31
+ 4. Let the assistant call `cutoffs_get_pairing_status` to finish storing the local credential.
32
+
33
+ The resulting device credential is stored locally in `~/.openclaw/openclaw.json` under `plugins.entries.cutoffs-plugin.config.apiKey` and is only sent to `cutoffs.dev`.
34
+
35
+ Full setup walkthrough: https://docs.cutoffs.dev/openclaw
36
+
37
+ ## Tools
38
+
39
+ The plugin registers ten tools. OpenClaw's assistant discovers available integrations dynamically — you don't need to configure individual apps here.
40
+
41
+ - `cutoffs_begin_pairing` — start or resume browser pairing for this OpenClaw install
42
+ - `cutoffs_get_pairing_status` — finish pairing after the user returns from the browser and says `done`
43
+ - `cutoffs_start_connection` — start a hosted OAuth/connect session for a new app
44
+ - `cutoffs_get_connection_status` — poll an in-progress connect session
45
+ - `cutoffs_list_integrations` — list apps already connected
46
+ - `cutoffs_list_tools` — list callable tools for one connected app
47
+ - `cutoffs_search_tools` — search connected tools by capability or keyword
48
+ - `cutoffs_describe_tool` — fetch schema and usage guidance for one tool
49
+ - `cutoffs_preview_tool` — preview a tool call before execution, especially for writes
50
+ - `cutoffs_call_tool` — execute a tool against a connected app
51
+ - `cutoffs_get_result` — read a large stored result in slices (path / fields / offset / limit / count)
52
+
53
+ ## File Arguments
54
+
55
+ Some Cutoffs tools accept file arguments shaped as `{ name, mimetype, s3key }`. When OpenClaw attaches a local file, the plugin reads files only from OpenClaw media directories, rejects path traversal and files over 25 MB, then sends the file bytes to Cutoffs in the request's `files` envelope. Cutoffs stages those bytes with Composio before executing the provider tool, so local OpenClaw attachment paths are not forwarded directly to providers.
56
+
57
+ If a tool accepts a public URL alternative such as `image_url` or `video_url`, agents may use that instead of a local file attachment.
58
+
59
+ ## Support Commands
60
+
61
+ Normal onboarding should happen through tools and browser pairing. These commands remain as support/debug escape hatches:
62
+
63
+ - `/cutoffs pair [deviceLabel]` — start or resume browser pairing from the plugin fast path
64
+ - `/cutoffs pair-status` — check whether browser pairing has been approved yet and finish setup after browser approval
65
+ - `/cutoffs status` — show whether the plugin is paired
66
+ - `/cutoffs logout` — remove the saved credential
67
+
68
+ ## Security
69
+
70
+ - ClawHub package: `cutoffs-plugin`
71
+ - npm package: `@cutoffs/openclaw-plugin`
72
+ - ClawHub publishes are source-linked to the public GitHub repository and the latest ClawHub security scan is clean.
73
+ - npm releases are published from GitHub Actions with npm provenance.
74
+ - ClawHub verification includes source-linked release metadata for the published artifact.
75
+ - The plugin only makes outbound HTTPS requests to `https://cutoffs.dev`.
76
+ - Browser pairing stores only a local Cutoffs device credential under `~/.openclaw/openclaw.json`.
77
+ - Provider tokens and API keys are not written to OpenClaw config or shown to the assistant; they stay on Cutoffs servers encrypted at rest.
78
+ - The local device credential is sent only as the `X-Cutoffs-API-Key` header to Cutoffs.
79
+ - Report security issues to security@cutoffs.dev.