gas-drive-html-server
Create or update an independent Google Apps Script Web App that indexes and serves HTML files from a specified Google Drive folder, including its subfolders.
Skill by dceoy
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/dceoy-gas-drive-html-server
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.
About
Use cases: frontend, backend
Reviews
Write a reviewNo 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 Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 2
codeload.github.com· found in install commandgoogleapis.com· found in code
Files it touches
~/.claude/skills/gas-drive-html-server
What's inside
- Skill name
gas-drive-html-server- Description
- Create or update an independent Google Apps Script Web App that indexes and serves HTML files from a specified Google Drive folder, including its subfolders. Does not depend on gas-html-artifact.
- License
- AGPL-3.0
- Instructions
- 98 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (5)
- SKILL.md
- deploy.mjs · scripts/
- Code.gs · templates/
- Index.html · templates/
- appsscript.json · templates/
SKILL.md (first lines)
# GAS Drive HTML Server Deploy a **self-contained** Google Apps Script directory index. The GAS project's `Index.html` is an Apache/Nginx-style autoindex page: on each request it lists HTML files and subfolders beneath a chosen Google Drive root. Drive HTML is read at request time; content changes do **not** require GAS redeployment. This skill never creates or edits the HTML artifacts in Drive. ## Routing | URL | Behavior | | --------------------- | ------------------------------ | | `/exec` | Index configured root folder | | `/exec?dir=FOLDER_ID` | List a descendant folder | | `/exec?file=FILE_ID` | Display a descendant HTML file | Links use an absolute Web App URL, Drive IDs (avoids duplicate names) and `<base target="_top">` for iframe navigation. The index displays names, last modified times and byte sizes, with folders listed before files. All user data in `Index.html` is contextually escaped by `<?= ... ?>` scriptlets. Child containment follows parents to the configured root; shortcuts are not traversed. Only `.html`/`.htm` files with `text/html` MIME type are served. No cache or background synchronization is required. ## Preconditions and security 1. Obtain a real Google Drive folder ID. Confirm the deploying Google account can read the folder and intended descendants. Do not guess a replacement. 2. Review the folder's HTML, editors and dependencies for secrets, hostile scripts, unsupported HTML Service features and unintended disclosure. Files added/modified later become visible _without_ code deployment. 3. Choose deployment access/identity deliberately. New deployments default to `MYSELF`/`USER_DEPLOYING`. Broader access requires an explicit flag. `USER_DEPLOYING` reads private Drive data as the deployer even for visitors with no direct Drive permissions. `USER_ACCESSING` requires viewers' OAuth consent and their own Drive access. 4. Install Google's `@google/clasp` CLI, Node.js >=20, authenticate with `clasp login`, and enable the Apps Script API. 5. Use a fresh dedicated workdir and ensure exclusive remote edit coordination before updating an existing project. ## Deploy The skill's own `scripts/deploy.mjs` and `templates/` are self-contained and do **not** call or import `gas-html-artifact`. ```bash # New standalone Web App; defaults to deployer-only visibility node scripts/deploy.mjs \ --folder-id 'DRIVE_FOLDER_ID' --workdir '/tmp/gas-index-new' \ --new-project 'Drive HTML directory' # Update an existing deployment, keeping its deployment URL node scripts/deploy.mjs \ --folder-id 'DRIVE_FOLDER_ID' --workdir '/tmp/gas-index-update' \ --script-id 'SCRIPT_ID' --deployment-id 'DEPLOYMENT_ID' \ --exclusive-coordination ``` Provide `--access` (`MYSELF`, `DOMAIN`, `ANYONE`, `ANYONE_ANONYMOUS`) and `--execute-as` (`USER_DEPLOYING`, `USER_ACCESSING`) together. Wider access requires `--acknowledge-exposure`. Changes to an existing policy additionally require `--allow-policy-change`, and changing its Drive root requires `--allow-folder-change`. Reassess published content before either change. The deployer refuses an existing GAS project that is not exclusively owned by this skill. It validates selected deployment metadata, checks production and HEAD policies, and requires other manifest settings to match the bundled template. Reconcile custom manifest settings manually before updating. It re-clones before pushing to detect concurrent modifications, checks readback, creates a version and verifies the deployed `/exec` URL. There is no atomic compare-and-swap; exclusive remote coordination is mandatory. Inspect `deployment.json` and `.clasp.json` inside the private workdir for recovery. Remote creation/push/deployment may succeed despite CLI failure. **Never blindly retry a project creation.** Credentials must not be committed, displayed, or stored in the deployment payload. A metadata-verified URL is not a runtime smoke test; verify the real page and links separately with consent. ## Limitations - Apps Script HTML Service runs in an iframe sandbox and is not a general Nginx/Apache static server. Relative CSS/JS/image assets, arbitrary HTTP headers, status codes, MIME types, SPA fallback and unrestricted APIs are unsupported. HTML must be self-contained or reference compatible HTTPS assets. - Error pages returned by HTML Service cannot set HTTP 403/404 status codes. - Very large directories may exceed Apps Script execution/Drive quotas. - DriveApp has limitations for shared drives; Advanced Drive Service would require separate implementation. - The script needs the `drive.readonly` OAuth scope, which covers more than one folder at authorization time. The runtime applies its own root restriction. Publishing the Web App publicly exposes the selected folder's HTML to visitors. Documentation: [Apps Script Web Apps](https://developers.google.com/apps-script/guides/web), [DriveApp](https://developers.google.com/apps-script/reference/drive/drive-app), [HTML templates](https://developers.google.com/apps-script/guides/html/templates).
From dceoy/ai-coding-agent-skills, AGPL-3.0.
More from dceoy/ai-coding-agent-skills
- 0.611score
gas-html-artifact
dceoy
Deploy an existing HTML artifact to Google Apps Script HTML Service with Google's clasp CLI, preserving compatible bytes or applying reviewed compatibility…
SkillAFreshness: A★ 4Claude Code +9 - 0.608score
x-timeline
dceoy
Read an authenticated X Following or For You timeline through agent-browser without APIs or engagement actions.
SkillAFreshness: A★ 4Claude Code +9 - 0.603score
local-qa
dceoy
Run local QA including formatting, linting, and testing for the repository.
SkillAFreshness: A★ 4Claude Code +9 - 0.571score
github-productivity
dceoy
Collect, retain, normalize, and analyze GitHub organization repository/PR/review/timeline/commit data through `gh api` into an organization-week delivery…
SkillBFreshness: B★ 4Claude Code +9 - 0.571score
parameterized-tests
dceoy
Enforce native parameterized or table-driven tests when adding or modifying unit tests that exercise the same behavior with multiple data cases.
SkillBFreshness: B★ 4Claude Code +9 - 0.569score
oracle-chatgpt
dceoy
Run exactly one arbitrary prompt through ChatGPT via Oracle browser mode and return the captured response without reinterpretation.
SkillBFreshness: B★ 4Claude Code +9 - 0.569score
claude-agent-converter
dceoy
Convert Claude Code subagents (.claude/agents/*.md) to standard Agent Skills (skills/*/SKILL.md).
SkillBFreshness: B★ 4Claude Code +9 - 0.569score
simplify-codebase
dceoy
Reduce a repository's maintenance surface across the whole codebase with KISS, DRY, and YAGNI while preserving required behavior.
SkillBFreshness: B★ 4Claude Code +9 - 0.564score
commit
dceoy
Create a single git commit from current staged and unstaged changes with an appropriate message.
SkillBFreshness: B★ 4Claude Code +9 - 0.564score
commit-push-pr
dceoy
Commit staged and unstaged changes, push the branch to origin, and open a pull request using the GitHub CLI.
SkillBFreshness: B★ 4Claude Code +9 - 0.563score
clean-gone-branches
dceoy
Remove local git branches whose configured upstream is marked [gone], including associated worktrees.
SkillBFreshness: B★ 4Claude Code +9 - 0.519score
claude-command-converter
dceoy
Convert Claude Code commands (.claude/commands/*.md) to standard Agent Skills (skills/*/SKILL.md).
SkillCFreshness: C★ 4Claude Code +9
Signals
- Stars
- 4
- Forks
- 1
- Open issues
- 2
- Last commit (this folder)
- Oct 14, 2026 (14 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/dceoy/ai-coding-agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from dceoy
- 0.611score
gas-html-artifact
dceoy
Deploy an existing HTML artifact to Google Apps Script HTML Service with Google's clasp CLI, preserving compatible bytes or applying reviewed compatibility…
SkillAFreshness: A★ 4Claude Code +9 - 0.608score
x-timeline
dceoy
Read an authenticated X Following or For You timeline through agent-browser without APIs or engagement actions.
SkillAFreshness: A★ 4Claude Code +9 - 0.603score
local-qa
dceoy
Run local QA including formatting, linting, and testing for the repository.
SkillAFreshness: A★ 4Claude Code +9 - 0.571score
parameterized-tests
dceoy
Enforce native parameterized or table-driven tests when adding or modifying unit tests that exercise the same behavior with multiple data cases.
SkillBFreshness: B★ 4Claude Code +9 - 0.571score
github-productivity
dceoy
Collect, retain, normalize, and analyze GitHub organization repository/PR/review/timeline/commit data through `gh api` into an organization-week delivery…
SkillBFreshness: B★ 4Claude Code +9 - 0.569score
oracle-chatgpt
dceoy
Run exactly one arbitrary prompt through ChatGPT via Oracle browser mode and return the captured response without reinterpretation.
SkillBFreshness: B★ 4Claude Code +9
Cite this page
gas-drive-html-server skill. Agent Mart. https://agentmart.dev/skills/dceoy-gas-drive-html-server (last updated 2026-10-24)