Skip to content
Agentmart
Submit a tool

gw-forms

Read and write Google Forms via CLI.

Skill by Elnora-AI

IndexedApache-2.0★ 2
Write a review

Chalk Labs

Need help deploying gw-forms?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/elnora-ai-gw-forms

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Read and write Google Forms via CLI. Get metadata, list responses, create new forms, add or remove items, edit title and description. Accepts form IDs or editor URLs. TRIGGERS: "google form", "google forms", "form responses", "form submissions", "create google form", "feedback form", "survey form", "whistleblower form", "anonymous form", "list form responses", "read form", "add question to form", "edit form", "delete form question"

Use cases: writing, research

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Nov 1, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/gw-forms

What's inside

Skill name
gw-forms
Description
Read and write Google Forms via CLI. Get metadata, list responses, create new forms, add or remove items, edit title and description. Accepts form IDs or editor URLs. TRIGGERS: "google form", "google forms", "form responses", "form submissions", "create google form", "feedback form", "survey form", "whistleblower form", "anonymous form", "list form responses", "read form", "add question to form", "edit form", "delete form question"
License
Apache-2.0
Instructions
200 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Forms

Read and write access to Google Forms via the Forms API v1. Reads are flag-driven (form ID,
page size, etc.); writes use a JSON spec file because Forms questions are too schema-heavy
for per-question CLI flags.

## Invocation

```bash
CLI="python3 ${CLAUDE_PLUGIN_ROOT}/cli/gw.py"
```

## Read commands

All read commands accept a form ID or editor URL (`https://docs.google.com/forms/d/<FORM_ID>/edit`).
Responder URLs (`.../forms/d/e/<E_ID>/viewform`) are rejected with a clear error — the segment
after `/d/e/` is a publication ID, not a form ID, and the API will not accept it.

```bash
$CLI forms get FORM_ID --compact
$CLI forms responses FORM_ID [--no-answers] [--page-size N] --compact
$CLI forms response FORM_ID RESPONSE_ID --compact
```

## Write commands

```bash
$CLI forms create --title "..." [--description "..."] [--from-json spec.json]
$CLI forms add-items FORM_ID --from-json items.json [--at INDEX]
$CLI forms update-info FORM_ID [--title "..."] [--description "..."]
$CLI forms delete-item FORM_ID INDEX
```

## JSON spec format

`--from-json` accepts either an array of item specs, or an object `{title, description, items}`.

Supported item types — every type accepts an optional `description` and (for questions) `required`:

```jsonc
// Section divider (forces a new page in the responder UI)
{"type": "section", "title": "About you", "description": "Optional intro text"}

// Short text answer
{"type": "text", "title": "Your name", "required": true}

// Long text answer
{"type": "paragraph", "title": "Tell us more"}
// Equivalent: {"type": "text", "title": "...", "paragraph": true}

// 1–10 (or any range) linear scale
{"type": "linear_scale", "title": "Rate it",
 "low": 1, "high": 10, "low_label": "Bad", "high_label": "Great", "required": true}

// Single-choice radio
{"type": "radio", "title": "Your role?",
 "options": ["Engineer", "Scientist", "Founder", "Other"], "required": true}

// Multi-select
{"type": "checkbox", "title": "Which apply?", "options": ["A", "B", "C"]}

// Dropdown
{"type": "dropdown", "title": "Pick one", "options": ["A", "B", "C"]}

// Date
{"type": "date", "title": "Event date", "include_time": false, "include_year": true}
```

Example full spec for a feedback form:

```json
{
  "title": "Workshop Feedback",
  "description": "Two minutes — your answers shape the next workshop.",
  "items": [
    {"type": "linear_scale", "title": "Overall rating",
     "low": 1, "high": 10, "low_label": "Bad", "high_label": "Great", "required": true},
    {"type": "radio", "title": "Your role?",
     "options": ["Scientist", "Engineer", "Founder", "Other"], "required": true},
    {"type": "paragraph", "title": "What did you like most?", "required": true},
    {"type": "paragraph", "title": "What could be improved?"}
  ]
}
```

## Response Shapes

`get`: form metadata with item summaries.
```json
{
  "formId": "FORM_ID",
  "title": "Anonymous Reporting Form",
  "documentTitle": "Anonymous Reporting Form",
  "description": "...",
  "responderUri": "https://docs.google.com/forms/d/e/.../viewform",
  "revisionId": "00000004",
  "itemCount": 6,
  "settings": {"emailCollectionType": "DO_NOT_COLLECT"},
  "publishSettings": {"publishState": {"isPublished": true, "isAcceptingResponses": true}},
  "items": [
    {"itemId": "0de6f9e9", "title": "Details of Suspected Violation", "type": "section", "required": false},
    {"itemId": "214f88dd", "title": "Date of Report", "type": "dateQuestion", "required": true}
  ]
}
```

`responses`: list of responses with question titles mapped onto each answer.
```json
{
  "formId": "FORM_ID",
  "count": 1,
  "responses": [
    {
      "responseId": "ACYDBN...",
      "createTime": "2026-05-01T04:44:39.545Z",
      "lastSubmittedTime": "2026-05-01T04:44:39.545092Z",
      "respondentEmail": null,
      "answers": [
        {"questionId": "542c6873", "question": "Date of Report", "values": ["2026-04-04"]},

From Elnora-AI/elnora-google-workspace, Apache-2.0.

More from Elnora-AI/elnora-google-workspace

Signals

Stars
2
Forks
0
Open issues
0
Last commit (this folder)
Jul 13, 2026 (3 months ago)
Last release
Oct 23, 2026 (9 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Elnora-AI

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get gw-forms running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying gw-forms?

CallGet help
Cite this page

gw-forms skill. Agent Mart. https://agentmart.dev/skills/elnora-ai-gw-forms (last updated 2026-10-24)