composio-google-docs
The composio-google-docs skill provides verified Composio tool integrations for programmatically searching, reading, creating, and editing Google Docs on behalf of connected users. Use it whenever an agent task needs to interact with Google Docs, such as retrieving documents by query, reading plaintext content, creating new docs from markdown, or performing find-and-replace operations through the Composio API.
git clone --depth 1 https://github.com/desplega-ai/agent-swarm /tmp/composio-google-docs && cp -r /tmp/composio-google-docs/plugin/skills/composio-google-docs ~/.claude/skills/composio-google-docsSKILL.md
# Composio · Google Docs
Toolkit slug: **`googledocs`**. Read the [[composio]] hub first for the call model.
A document is identified by its `document_id` (the id in the Docs URL).
```bash
agent-swarm x composio POST /tools/execute/<SLUG> \
--body '{"user_id":"t@desplega.ai","connected_account_id":"ca_…","arguments":{ … }}'
```
## Headline tools
| Slug | What | Key args |
|---|---|---|
| `GOOGLEDOCS_SEARCH_DOCUMENTS` | Find docs (Drive search) | `query`, `max_results` (def 10), `order_by` (def `modifiedTime desc`), `modified_after`, `created_after`, `starred_only`, `shared_with_me`, `response_detail` (def `minimal`) |
| `GOOGLEDOCS_GET_DOCUMENT_PLAINTEXT` | Read doc as text | **`document_id`**, `include_tables` (def true), `include_headers`, `include_footers`, `include_footnotes`, `include_tabs_content` |
| `GOOGLEDOCS_GET_DOCUMENT_BY_ID` | Full structured doc JSON | `document_id` |
| `GOOGLEDOCS_CREATE_DOCUMENT` | Create blank/with text | `title`, `text` |
| `GOOGLEDOCS_CREATE_DOCUMENT_MARKDOWN` | Create from markdown | **`title`**, `markdown_text`, `image_assets` |
| `GOOGLEDOCS_UPDATE_DOCUMENT_MARKDOWN` | Replace body with markdown | `document_id`, `markdown_text` |
| `GOOGLEDOCS_INSERT_TEXT_ACTION` | Insert text at index | `document_id`, `text`, `index` |
| `GOOGLEDOCS_REPLACE_ALL_TEXT` | Find & replace | `document_id`, `find`, `replace` |
| `GOOGLEDOCS_COPY_DOCUMENT` | Duplicate a doc | `document_id`, `title` |
| `GOOGLEDOCS_EXPORT_DOCUMENT_AS_PDF` | Export to PDF | `document_id` |
Full set: 35 tools — `agent-swarm x composio GET "/tools?toolkit_slug=googledocs&limit=100" | jq -r '.items[]|"\(.slug)\t\(.name)"'`.
Prefer the `*_MARKDOWN` create/update tools for authoring; the granular
`INSERT_*`/`DELETE_*`/table tools are for surgical structural edits.
## Search recipe
```bash
agent-swarm x composio POST /tools/execute/GOOGLEDOCS_SEARCH_DOCUMENTS \
--body '{"connected_account_id":"ca_…","arguments":{"query":"workshop","max_results":5}}'
# → results under .data.files[] (id, name, modifiedTime …)
```
- Results are Drive file entries at **`.data.files[]`** — grab `.id` to read.
- `order_by` defaults to `modifiedTime desc` (most recent first).
- Use `modified_after` / `shared_with_me` to narrow.
## Read recipe
```bash
agent-swarm x composio POST /tools/execute/GOOGLEDOCS_GET_DOCUMENT_PLAINTEXT \
--body '{"connected_account_id":"ca_…","arguments":{"document_id":"<id>","include_tables":true}}'
```
Use `GET_DOCUMENT_PLAINTEXT` for reading content; only reach for
`GET_DOCUMENT_BY_ID` when you need the structured JSON (styles, indices) for an
edit.
## Create-from-markdown recipe
```bash
agent-swarm x composio POST /tools/execute/GOOGLEDOCS_CREATE_DOCUMENT_MARKDOWN \
--body '{"connected_account_id":"ca_…","arguments":{
"title":"Weekly updates","markdown_text":"# Heading\n\n- point one\n- point two"
}}'
```
## Gotchas
- Search returns Drive metadata, not document content — do a second
`GET_DOCUMENT_PLAINTEXT` call with the `.id` to read.
- Doc bodies can be long/token-heavy and may contain secrets — read only what you
need (`include_headers/footers/footnotes` default off for a reason).
- Create/update/replace are **write actions** — only on explicit request.Code search agent for exploring any codebase. Use for finding code by intent, locating implementations, understanding how something works, or discovering related code. Prefer over Grep/Glob/Read for any semantic or exploratory question.
Guide for running local E2E tests with API server, Docker lead/worker containers, task creation, log verification, UI dashboard, and cleanup
Close a GitHub or GitLab issue with a summary comment
Create a pull request (GitHub) or merge request (GitLab) from the current branch
Implement a GitHub issue or GitLab issue and create a PR/MR
Investigate and triage a Sentry error issue
Respond to a GitHub issue/PR or GitLab issue/MR
Review a task that has been offered to you and decide whether to accept or reject it