Not in the top 1,000 by GitHub stars
Hainrixz/all-deploy
Claude Code skill that deploys any web app, API, or agent to the internet — strict pre-deploy audit, preview → prod flow. Bilingual EN/ES. By @soyenriquerocha · Tododeia.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 0d35225e2e70
No earlier version was observed for comparison.
cowork-plugin/skills/publish-website/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 0d35225e2e70
No earlier version was observed for comparison.
Verified commit 0d35225e2e70aaa57c5141a5131b9927911d86a0
git clone --filter=blob:none --no-checkout https://github.com/Hainrixz/all-deploy.git .hotskills/hainrixz-all-deploy && git -C .hotskills/hainrixz-all-deploy checkout --detach 0d35225e2e70aaa57c5141a5131b9927911d86a0
# Copy each selected skill directory from .hotskills/hainrixz-all-deploy into .claude/skills/<skill-name>/Heat
3.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- all-deploy
/ - publish-website
cowork-plugin/skills/publish-website
How it works
all-deploy
When your agent uses it
Deploys websites, web apps, APIs, and agents to the internet with a strict pre-deploy audit and a preview → health-check → prod flow. Handles plain HTML/CSS/JS pages and static sites (Astro, Hugo, Jekyll, Eleventy, Vite) as well as Next, Remix, Nuxt, SvelteKit, FastAPI, Flask, Express, MCP servers, Claude Agent SDK scripts, Python workers, and Dockerized projects. Routes to free static hosts — Cloudflare Pages, Netlify, GitHub Pages, Render — or to Vercel, Railway, Docker+SSH VPS, or a cloudflared tunnel, and can also run the project locally. Use when the user says "/all-deploy", "/deploy", "/despliega", "deploy this", "ship this", "push to prod", "get this online", "publish my website", "sube mi página web", "publicar mi página", "hosting gratis", "free hosting", "custom domain", "dominio propio", "run it locally", "corre esto localmente", or otherwise asks to publish a site or project to a URL.
What it loads into context
Frontmatter
267 tokensAlways available to the agent
SKILL.md
7,221 tokensWhen the skill is activated
Reference documents
43,797 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Configuration (edit these lines to change default behavior)
- Hard Rules (never violate — these are the safety contract)
- Two Modes
- Cloud Deploy Workflow
- Target Selection — ranking rubric (quick reference)
- Bundled Resources
- Platform Notes
Scripts executed separately
docs/badges/generate.pyscripts/audit.pyscripts/env_extract.pyscripts/package_skill.pyscripts/static_check.pyscripts/sync_cowork_plugin.pytests/test_audit.pytests/test_env_extract.pytests/validate_skill.py
Files
.github/ISSUE_TEMPLATE/bug-report.ymlasset3,828 bytes.github/ISSUE_TEMPLATE/config.ymlasset502 bytes.github/ISSUE_TEMPLATE/target-request.ymlasset3,519 bytes.github/social-preview.pngasset64,871 bytes.github/workflows/ci.ymlasset1,955 bytes.gitignoreasset328 bytesCONTRIBUTING.mddoc11,821 bytesLICENSEasset1,089 bytesNOTICEasset626 bytesREADME.mddoc40,014 bytesSKILL.mdcore29,042 bytesSKILL.mdcore29,042 bytesSKILL.mdcore29,042 bytesassets/templates/.env.example.templateasset1,413 bytesassets/templates/Dockerfile.nodeasset1,711 bytesassets/templates/Dockerfile.pythonasset2,255 bytesassets/templates/docker-compose.example.ymlasset2,898 bytescowork-plugin/.claude-plugin/plugin.jsonasset517 bytescowork-plugin/README.mddoc6,693 bytesdocs/badges/claude-code-skill.svgasset860 bytesdocs/badges/generate.pyruns4,980 bytesdocs/badges/license.svgasset839 bytesdocs/demo-recording.mddoc8,708 bytesdocs/images/audit.pngasset3,210 bytesdocs/images/community.pngasset4,591 bytesdocs/images/deploy.pngasset3,624 bytesdocs/images/detect.pngasset3,406 bytesdocs/images/hero.pngasset8,438 bytesdocs/images/local.pngasset6,300 bytesdocs/images/rollback.pngasset5,306 bytesreferences/agents.mddoc6,768 bytesreferences/audit-checklist.mddoc8,930 bytesreferences/custom-domain.mddoc7,205 bytesreferences/env-mapping.mddoc8,260 bytesreferences/project-types.mddoc7,399 bytesreferences/static-hosting.mddoc6,808 bytesreferences/static-sites.mddoc10,175 bytesreferences/targets/cloudflare-pages.mddoc7,666 bytesreferences/targets/cloudflared-tunnel.mddoc5,502 bytesreferences/targets/docker-vps.mddoc5,782 bytesreferences/targets/github-pages.mddoc7,556 bytesreferences/targets/netlify.mddoc5,905 bytesreferences/targets/railway.mddoc5,811 bytesreferences/targets/render.mddoc5,580 bytesreferences/targets/vercel.mddoc7,330 bytesscripts/audit.pyruns33,809 bytesscripts/env_extract.pyruns5,356 bytesscripts/package_skill.pyruns3,890 bytesscripts/static_check.pyruns27,675 bytesscripts/sync_cowork_plugin.pyruns2,848 bytestests/test_audit.pyruns17,359 bytestests/test_env_extract.pyruns2,477 bytestests/validate_skill.pyruns5,178 bytes
Read SKILL.md
<!-- Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) · tododeia.com · id er-587bf42d -->
# all-deploy
Detects, audits, and deploys projects to the right host with a confirmed preview → prod flow. The unique value is **detect → audit → route to the right CLI**, not wrapping the CLI.
## Configuration (edit these lines to change default behavior)
```
CONFIRMATION_MODE: ask_at_start
# ask_at_start (default): the skill asks at the start of each cloud deploy
# whether to run full-auto or step-by-step.
# full_auto: skip the question. Audit → preview → prod with a
# 5-second ESC window before prod.
# always_ask: skip the question. Require explicit "yes" before prod.View the complete source on GitHubpublish-website
When your agent uses it
Puts a web page on the internet for free, with no terminal and no paid plan — a folder of HTML/CSS/JS, or a page Claude just built. Checks the page for the things that silently break it once it's live (wrong filename, broken image paths, capitalisation that works on your computer and 404s on the host, API keys left in the JavaScript), then walks through publishing it on Cloudflare Pages, Netlify, GitHub Pages or Render, and connecting a custom domain. Use when the user says "publish my website", "put my page online", "deploy my HTML", "host my site for free", "sube mi página web", "publicar mi página", "quiero subir mi página a internet", "dónde subo mi HTML", "hosting gratis", "free hosting", "custom domain", "dominio propio", or has a web page and doesn't know where to put it. For a web app, an API or anything with a backend, use /all-deploy instead.
What it loads into context
Frontmatter
241 tokensAlways available to the agent
SKILL.md
2,672 tokensWhen the skill is activated
Reference documents
3,577 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What this skill is not for
- Step 1 — Find the page
- Step 2 — Check the page
- Step 3 — Three questions, asked together
- Step 4 — Pick the host
- Step 5 — Publish
- Step 6 — Check it actually works
- Step 7 — Custom domain, if they want one
- Step 8 — Hand it over
- Bundled files
Scripts executed separately
scripts/static_check.py
Files
SKILL.mdcore10,925 bytesSKILL.mdcore10,925 bytesreferences/custom-domain.mddoc7,205 bytesreferences/hosts.mddoc6,793 bytesscripts/static_check.pyruns27,675 bytes
Read SKILL.md
<!-- Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) · tododeia.com · id er-587bf42d -->
# publish-website
Takes a web page from a folder on someone's computer to a public URL, for free, without assuming they have a terminal, a GitHub account, or any money.
Reply in the user's language. Most people reaching this skill are not developers — no jargon without a half-line explanation, and never a command without saying what it does.
## What this skill is not for
If the project has a backend — a database, a login, a server that runs code, an API — stop and say so: *"this isn't a static page, it needs a server."* Point at `/all-deploy`, which handles apps and APIs with a full pre-deploy audit. Trying to squeeze an app onto a static host wastes the user's afternoon.
Signals it's an app, not a page: `package.json` with a `start` script, `requirements.txt`, `Dockerfile`, `main.py`, anything that talks about a port.
## Step 1 — Find the pageView the complete source on GitHubSkills included
- all-deploy
- publish-website
Repository facts
- License
- MIT
- Created
- Apr 19, 2026
- Last pushed
- Oct 25, 2026
- Forks
- 14
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 3 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedcowork-plugin/skills/publish-website/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 5 dangerous shell commandsin 5 files: .github/ISSUE_TEMPLATE/target-request.yml:37 assets/templates/Dockerfile.python:22 references/audit-checklist.md:29 and 2 more
- 176 network referencesin 31 files: CONTRIBUTING.md:9 docs/demo-recording.md:24 tests/test_audit.py:125 and 28 more
- 2 obfuscation signalsin 2 files: NOTICE:3 README.md:534
- No instruction overrides
- 10 executable scriptsin 10 files: publish-website/scripts/static_check.py:1 docs/badges/generate.py:1 scripts/audit.py:1 and 7 more
- 45 references to secretsin 15 files: references/env-mapping.md:54 tests/test_audit.py:41 assets/templates/docker-compose.example.yml:7 and 12 more
- No requests to vote in Hot
Show all 238 signals by file
.github/ISSUE_TEMPLATE/config.yml
- Network accessline 2
contact_links: - name: 🌐 Tododeia community url: https://tododeia.com - Network accessline 3
- name: 🌐 Tododeia community url: https://tododeia.com about: Join the community, ask questions, share what you're building. - Network accessline 4
url: https://tododeia.com - Network accessline 5
about: Join the community, ask questions, share what you're building. - name: 📸 Instagram (@soyenriquerocha) url: https://instagram.com/soyenriquerocha - Network accessline 6
- name: 📸 Instagram (@soyenriquerocha) url: https://instagram.com/soyenriquerocha about: Follow for tutorials and updates. - Network accessline 7
url: https://instagram.com/soyenriquerocha - Network accessline 8
about: Follow for tutorials and updates. - name: 📚 SKILL.md documentation url: https://github.com/Hainrixz/all-deploy/blob/main/SKILL.md - Network accessline 9
- name: 📚 SKILL.md documentation url: https://github.com/Hainrixz/all-deploy/blob/main/SKILL.md about: Full phases, hard rules, and workflow reference before filing a bug. - Network accessline 10
url: https://github.com/Hainrixz/all-deploy/blob/main/SKILL.md
.github/ISSUE_TEMPLATE/target-request.yml
- Network accessline 35
description: What command installs the CLI? How does the user authenticate? placeholder: | Install: `brew install flyctl` (or `curl -L https://fly.io/install.sh | sh`) - Network accessline 36
placeholder: | Install: `brew install flyctl` (or `curl -L https://fly.io/install.sh | sh`) Auth: `flyctl auth login` (opens browser) - Dangerous shell operationline 37
Install: `brew install flyctl` (or `curl -L https://fly.io/install.sh | sh`) - Network accessline 37
Install: `brew install flyctl` (or `curl -L https://fly.io/install.sh | sh`)
.github/workflows/ci.yml
- Network accessline 48
run: | mkdir -p /tmp/static-fixture printf '<!doctype html><html lang="en"><head><meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1">\n<title>t</title><meta name="description" cont - Network accessline 49
mkdir -p /tmp/static-fixture printf '<!doctype html><html lang="en"><head><meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1">\n<title>t</title><meta name="description" content="t">\n<meta p - Network accessline 50
printf '<!doctype html><html lang="en"><head><meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1">\n<title>t</title><meta name="description" content="t">\n<meta property="og:title" content="t"><meta pr
.gitignore
- Access to secretsline 31
[Credential-related source omitted]
CONTRIBUTING.md
- Network accessline 9
Thanks for your interest in contributing. This skill is part of the [Tododeia](https://tododeia.com) community — built by [@soyenriquerocha](https://instagram.com/soyenriquerocha), maintained collaboratively. - Network accessline 26
git clone https://github.com/Hainrixz/all-deploy.git - Network accessline 62
3. **Phase 4 — Env delivery** — the exact CLI to push env vars. 4. **Phase 4 — Preview deploy** — the command + how to parse the preview URL from stdout. 5. **Phase 4.5 — Health check** — the curl probe (or equivalent for non-HTTP targets). - Network accessline 63
4. **Phase 4 — Preview deploy** — the command + how to parse the preview URL from stdout. 5. **Phase 4.5 — Health check** — the curl probe (or equivalent for non-HTTP targets). 6. **Phase 5 — Prod promotion** — the command + cost notes. - Network accessline 64
5. **Phase 4.5 — Health check** — the curl probe (or equivalent for non-HTTP targets). - Network accessline 121
- Open an issue — bugs and target requests have templates. - Join the [Tododeia community](https://tododeia.com). - Network accessline 122
- Join the [Tododeia community](https://tododeia.com). - Network accessline 123
- Ping [@soyenriquerocha](https://instagram.com/soyenriquerocha) on Instagram. - Network accessline 129
Gracias por tu interés en contribuir. Este skill es parte de la comunidad [Tododeia](https://tododeia.com) — creado por [@soyenriquerocha](https://instagram.com/soyenriquerocha), mantenido en colaboración. - Network accessline 146
git clone https://github.com/Hainrixz/all-deploy.git - Network accessline 182
3. **Fase 4 — Entrega de env** — el comando exacto para empujar env vars. 4. **Fase 4 — Preview deploy** — el comando + cómo parsear la URL de preview del stdout. 5. **Fase 4.5 — Health check** — la probe con curl (o equivalente para target - Network accessline 183
4. **Fase 4 — Preview deploy** — el comando + cómo parsear la URL de preview del stdout. 5. **Fase 4.5 — Health check** — la probe con curl (o equivalente para targets no-HTTP). 6. **Fase 5 — Promoción a prod** — el comando + notas de costo - Network accessline 184
5. **Fase 4.5 — Health check** — la probe con curl (o equivalente para targets no-HTTP). - Network accessline 241
- Abre un issue — bugs y solicitudes de target tienen templates. - Únete a la [comunidad Tododeia](https://tododeia.com). - Network accessline 242
- Únete a la [comunidad Tododeia](https://tododeia.com). - Network accessline 243
- Escríbeme a [@soyenriquerocha](https://instagram.com/soyenriquerocha) en Instagram.
NOTICE
- Possible obfuscationline 3
tododeia.com · github.com/Hainrixz · id er-587bf42d<U+2060><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200C><U+200B><U+200C><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+200B><U+200C><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200C><U+200B><U+200B><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200C><U+200C><U+200B><U+200C><U+200C><U+200B><U+200B><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+2060>
README.md
- Network accessline 9
[](https://github.com/Hainrixz/all-deploy/actions/workflows/ci.yml) - Network accessline 11
[](https://claude.com/claude-code) - Network accessline 13
🌐 [tododeia.com](https://tododeia.com) · 📸 [@soyenriquerocha](https://instagram.com/soyenriquerocha) · 📦 [Latest release](https://github.com/Hainrixz/all-deploy/releases/latest) - Network accessline 69
git clone https://github.com/Hainrixz/all-deploy.git ~/.claude/skills/all-deploy - Network accessline 78
Prefer a single file? Download `all-deploy.skill` from the [Releases page](https://github.com/Hainrixz/all-deploy/releases/latest) and use Claude Code's skill installer. - Network accessline 173
More targets (Fly, Modal, Hugging Face Spaces) — [open an issue](https://github.com/Hainrixz/all-deploy/issues) to vote for yours. - Network accessline 307
git clone https://github.com/Hainrixz/all-deploy.git ~/.claude/skills/all-deploy - Network accessline 316
¿Prefieres un solo archivo? Descarga `all-deploy.skill` desde la [página de Releases](https://github.com/Hainrixz/all-deploy/releases/latest) y úsalo con el instalador de skills de Claude Code. - Network accessline 411
Vienen más targets (Fly, Modal, Hugging Face Spaces) — [abre un issue](https://github.com/Hainrixz/all-deploy/issues) para votar por el tuyo. - Network accessline 522
Created by **Enrique Rocha** · [@soyenriquerocha](https://instagram.com/soyenriquerocha) - Network accessline 524
🌐 **[tododeia.com](https://tododeia.com)** — join us, find more tools, see what we're building together. - Network accessline 534
<sub>Hecho por **Enrique Rocha (@soyenriquerocha)** · [tododeia.com](https://www.tododeia.com)<U+2060><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200C><U+200B><U+200C><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+200B><U+200C><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200C><U+200B><U+200B><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200C><U+200C><U+200B><U+200C><U+200C><U+200B><U+200B><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+2060></sub> - Possible obfuscationline 534
<sub>Hecho por **Enrique Rocha (@soyenriquerocha)** · [tododeia.com](https://www.tododeia.com)<U+2060><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200C><U+200B><U+200C><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+200B><U+200C><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200C><U+200B><U+200B><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200C><U+200C><U+200B><U+200C><U+200C><U+200B><U+200B><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200C><U+200B><U+200B><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+200C><U+200C><U+200B><U+200B><U+200C><U+200B><U+200B><U+2060></sub>
SKILL.md
- Access to secretsline 209
[Credential-related source omitted] - Network accessline 228
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 231
(No `-f` — that would suppress the `%{http_code}` output on HTTP errors. `-sSL` keeps curl silent on success but still surfaces transport errors and follows redirects.) - Network accessline 236
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL/<first-stylesheet-href>" - Network accessline 241
A **2xx or 3xx** status promotes to Phase 5. **4xx/5xx**, empty output (connection refused, DNS failure), or a curl non-zero exit → stop. Report the failing endpoint with the target's log command (`vercel logs`, `railway logs`, `ssh ... 'do - Network accessline 243
**Optional visual verify.** If `VISUAL_VERIFY: true` and the project is a frontend, use `chrome-bridge-automation` to screenshot the preview and confirm the page renders (not blank, not error page). Curl 2xx/3xx is still the gate; screensho - Network accessline 266
python3 -m http.server -d <PUBLISH_DIR> 8000 curl -sSL -o /dev/null -w "%{http_code}" http://localhost:8000 - Network accessline 267
curl -sSL -o /dev/null -w "%{http_code}" http://localhost:8000 - Network accessline 276
- Curl the production URL; confirm status.
assets/templates/.env.example.template
assets/templates/Dockerfile.python
- Dangerous shell operationline 22
&& rm -rf /var/lib/apt/lists/*
assets/templates/docker-compose.example.yml
- Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Network accessline 36
healthcheck: # Language built-ins — no curl/wget needed in slim base images. - Network accessline 37
# Language built-ins — no curl/wget needed in slim base images. - Network accessline 38
# Node (default below): probe /health and exit 0 on 2xx, 1 otherwise. test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', r => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))"] - Network accessline 39
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', r => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))"] # Python alternative — uncomment and adjust port/path: # test: - Network accessline 40
# Python alternative — uncomment and adjust port/path: # test: ["CMD", "python", "-c", "import urllib.request, sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/health', timeout=3).status < 400 else 1)"] # If you - Network accessline 41
# test: ["CMD", "python", "-c", "import urllib.request, sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/health', timeout=3).status < 400 else 1)"] - Network accessline 42
# If you install curl into your image, the simpler form works too: - Network accessline 43
# test: ["CMD", "curl", "-fsS", "http://localhost:3000/health"]
cowork-plugin/.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "Enrique Rocha", "url": "https://tododeia.com" - Network accessline 6
"name": "Enrique Rocha", "url": "https://tododeia.com" }, - Network accessline 7
"url": "https://tododeia.com" - Network accessline 8
}, "homepage": "https://github.com/Hainrixz/all-deploy", "repository": "https://github.com/Hainrixz/all-deploy", - Network accessline 9
"homepage": "https://github.com/Hainrixz/all-deploy", - Network accessline 10
"repository": "https://github.com/Hainrixz/all-deploy",
cowork-plugin/README.md
- Network accessline 48
git clone https://github.com/Hainrixz/all-deploy.git /tmp/all-deploy - Network accessline 102
git clone https://github.com/Hainrixz/all-deploy.git /tmp/all-deploy - Network accessline 121
MIT · Creado por **Enrique Rocha** para la comunidad [Tododeia](https://tododeia.com) · [@soyenriquerocha](https://instagram.com/soyenriquerocha)
cowork-plugin/skills/publish-website/SKILL.md
cowork-plugin/skills/publish-website/references/custom-domain.md
cowork-plugin/skills/publish-website/references/hosts.md
cowork-plugin/skills/publish-website/scripts/static_check.py
docs/badges/claude-code-skill.svg
- Network accessline 1
<svg xmlns="http://www.w3.org/2000/svg" width="118" height="20" role="img" aria-label="Claude Code: skill">
docs/badges/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 70
ltl = round(text_width(label) * 10) mtl = round(text_width(message) * 10) return f'''<svg xmlns="http://www.w3.org/2000/svg" width="{total}" \ - Network accessline 71
mtl = round(text_width(message) * 10) return f'''<svg xmlns="http://www.w3.org/2000/svg" width="{total}" \ height="{HEIGHT}" role="img" aria-label="{esc(alt)}"> - Network accessline 72
return f'''<svg xmlns="http://www.w3.org/2000/svg" width="{total}" \
docs/badges/license.svg
- Network accessline 1
<svg xmlns="http://www.w3.org/2000/svg" width="87" height="20" role="img" aria-label="license: MIT">
docs/demo-recording.md
- Network accessline 24
|---|---|---|---| | **asciinema + svg-term-cli** | `brew install asciinema && npm i -g svg-term-cli` | `apt install asciinema` | SVG (small, crisp) | | **LICEcap** | [licecap.com](https://www.cockos.com/licecap/) | via Wine or alt | GIF | - Network accessline 25
| **asciinema + svg-term-cli** | `brew install asciinema && npm i -g svg-term-cli` | `apt install asciinema` | SVG (small, crisp) | | **LICEcap** | [licecap.com](https://www.cockos.com/licecap/) | via Wine or alt | GIF | | **Kap** (recommen - Network accessline 26
| **LICEcap** | [licecap.com](https://www.cockos.com/licecap/) | via Wine or alt | GIF | - Network accessline 73
- Phase 3 target ranking with Vercel at the top. - Phase 4 preview URL appearing. - Phase 4.5 curl 200 response. - Network accessline 74
- Phase 4 preview URL appearing. - Phase 4.5 curl 200 response. - Phase 5 "prod promotion in 5 seconds" countdown. - Network accessline 75
- Phase 4.5 curl 200 response. - Network accessline 103
If the GIF is above 10 MB, GitHub refuses to inline it — host the MP4 on a CDN (Cloudflare R2, Vercel Blob, YouTube as fallback) and use an `<img>` tag with `src="https://cdn.../demo.gif"`. - Network accessline 130
|---|---|---|---| | **asciinema + svg-term-cli** | `brew install asciinema && npm i -g svg-term-cli` | `apt install asciinema` | SVG (ligero, crujiente) | | **LICEcap** | [licecap.com](https://www.cockos.com/licecap/) | vía Wine o alternati - Network accessline 131
| **asciinema + svg-term-cli** | `brew install asciinema && npm i -g svg-term-cli` | `apt install asciinema` | SVG (ligero, crujiente) | | **LICEcap** | [licecap.com](https://www.cockos.com/licecap/) | vía Wine o alternativa | GIF | | **Kap - Network accessline 132
| **LICEcap** | [licecap.com](https://www.cockos.com/licecap/) | vía Wine o alternativa | GIF | - Network accessline 179
- Ranking de targets de Fase 3 con Vercel arriba. - URL de preview apareciendo en Fase 4. - Respuesta 200 del curl en Fase 4.5. - Network accessline 180
- URL de preview apareciendo en Fase 4. - Respuesta 200 del curl en Fase 4.5. - Countdown "promoción a prod en 5 segundos" de Fase 5. - Network accessline 181
- Respuesta 200 del curl en Fase 4.5. - Network accessline 209
Si el GIF pesa más de 10 MB, GitHub se niega a inlinearlo — hostea el MP4 en un CDN (Cloudflare R2, Vercel Blob, YouTube como fallback) y usa un tag `<img>` con `src="https://cdn.../demo.gif"`.
references/agents.md
- Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Network accessline 154
**Audit adjustments:** - Port-binding check is N/A (no HTTP). - Health check in Phase 4.5: for workers without HTTP, skip the curl step. Instead, check that the worker process is running: `ssh host 'docker compose ps worker' | grep Up`. - Network accessline 156
- Health check in Phase 4.5: for workers without HTTP, skip the curl step. Instead, check that the worker process is running: `ssh host 'docker compose ps worker' | grep Up`.
references/audit-checklist.md
- Dangerous shell operationline 29
1. `git rm --cached <file>` — remove from the index while keeping the local file.
references/custom-domain.md
references/env-mapping.md
- Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted]
references/static-hosting.md
references/static-sites.md
- Network accessline 87
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 88
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL/<first-stylesheet-href>" - Network accessline 104
python3 -m http.server -d <PUBLISH_DIR> 8000 curl -sSL -o /dev/null -w "%{http_code}" http://localhost:8000 - Network accessline 105
curl -sSL -o /dev/null -w "%{http_code}" http://localhost:8000
references/targets/cloudflare-pages.md
- Network accessline 59
npx wrangler pages deploy <PUBLISH_DIR> --project-name <PROJECT_NAME> --branch=preview 2>&1 \ | tee /tmp/cfpages-preview.log PREVIEW_URL=$(grep -oE 'https://[a-z0-9-]+\.[a-z0-9-]+\.pages\.dev' /tmp/cfpages-preview.log | tail -1) - Network accessline 61
PREVIEW_URL=$(grep -oE 'https://[a-z0-9-]+\.[a-z0-9-]+\.pages\.dev' /tmp/cfpages-preview.log | tail -1) - Network accessline 67
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 75
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL/<first-stylesheet-href>" - Network accessline 86
**Cost note:** the free plan covers 500 builds/month, 1 concurrent build, a 20-minute build timeout, 20,000 files per site, 25 MiB per file, 100 custom domains per project and 100 projects per account. Cloudflare documents static asset requ - Network accessline 91
curl -sSL -o /dev/null -w "%{http_code}" "https://<PROJECT_NAME>.pages.dev"
references/targets/cloudflared-tunnel.md
- Network accessline 15
If missing: - macOS: `! brew install cloudflared` - Linux: see `https://pkg.cloudflare.com/`. - Network accessline 17
- Linux: see `https://pkg.cloudflare.com/`. - Network accessline 35
cloudflared tunnel --url http://localhost:8000 - Network accessline 48
TUNNEL_URL=$(grep -oE 'https://[a-z0-9-]+\.trycloudflare\.com' /tmp/cloudflared.log | tail -1) - Network accessline 53
curl -sSL -o /dev/null -w "%{http_code}" "$TUNNEL_URL" - Network accessline 77
ingress: - hostname: demo.yourdomain.com service: http://localhost:8000 - Network accessline 78
- hostname: demo.yourdomain.com service: http://localhost:8000 - service: http_status:404 - Network accessline 79
service: http://localhost:8000 - Network accessline 88
The tunnel is up at `https://demo.yourdomain.com` whenever `cloudflared` is running on your machine. - Network accessline 94
1. Keep the dev server running (already the case). 2. Start `cloudflared tunnel --url http://localhost:<port>` in a separate background task. - Network accessline 95
2. Start `cloudflared tunnel --url http://localhost:<port>` in a separate background task. - Network accessline 103
curl -sSL -o /dev/null -w "%{http_code}" "$TUNNEL_URL" - Network accessline 108
If the curl fails but `curl http://localhost:8000` works, the issue is usually:
references/targets/docker-vps.md
- Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted] - Network accessline 107
PREVIEW_URL="http://<host-or-ip>:<port>" curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 108
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 113
PREVIEW_URL="https://<your-domain>" curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 114
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Dangerous shell operationline 160
- **Permission issues:** the user running docker must be in the `docker` group, or use `sudo docker`. `usermod -aG docker $USER` + logout/login.
references/targets/github-pages.md
- Network accessline 79
PROD_URL="https://<USERNAME>.github.io/<REPO>/" # project site # or: PROD_URL="https://<USERNAME>.github.io/" # user site (repo named <USERNAME>.github.io) curl -sSL -o /dev/null -w "%{http_code}" "$PROD_URL" - Network accessline 81
curl -sSL -o /dev/null -w "%{http_code}" "$PROD_URL" - Network accessline 92
**Cost note:** free, with documented limits — source repo *"recommended limit of 1 GB"*, published site *"may be no larger than 1 GB"*, a **soft** bandwidth limit of 100 GB/month and a **soft** limit of 10 builds/hour. Both bandwidth and bu
references/targets/netlify.md
- Network accessline 16
**No-CLI path.** `https://app.netlify.com/drop` — drag the publish folder, a zip, or a single HTML file. No account needed **to deploy**, but the quickstart states the result *"is protected with a temporary password until you claim it"*, an - Network accessline 54
netlify deploy --dir=<PUBLISH_DIR> 2>&1 | tee /tmp/netlify-preview.log PREVIEW_URL=$(grep -oE 'https://[a-z0-9-]+--[a-z0-9-]+\.netlify\.app' /tmp/netlify-preview.log | tail -1) - Network accessline 55
PREVIEW_URL=$(grep -oE 'https://[a-z0-9-]+--[a-z0-9-]+\.netlify\.app' /tmp/netlify-preview.log | tail -1) - Network accessline 63
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 76
**Cost note:** this is the call that spends **15 credits**, out of 300 per month. Ten deploys in an afternoon while tweaking a heading is half the month's budget. For iteration, use draft deploys — they're free — and promote once. Current p - Network accessline 81
curl -sSL -o /dev/null -w "%{http_code}" "https://<SITE_NAME>.netlify.app"
references/targets/railway.md
- Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 89
[Credential-related source omitted] - Network accessline 94
PREVIEW_URL=$(grep -oE 'https://[^ ]+\.up\.railway\.app' /tmp/railway-up.log | tail -1) - Network accessline 106
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 121
Cost note: Hobby plan starts at a small monthly fee with usage credits; add-ons (Postgres, Redis) each have their own pricing. Check `https://railway.com/pricing` for current terms. - Network accessline 126
curl -sSL -o /dev/null -w "%{http_code}" "$PROD_URL"
references/targets/render.md
- Network accessline 5
> **5 GB of outbound bandwidth per month on the free (Hobby) plan.** That is roughly 2,500 loads of a 2 MB page. Overage is billed at **$0.15/GB** on the public internet, and unused bandwidth does not roll over. Hobby also caps you at 1 tea - Network accessline 28
type: web # static sites are type: web ... runtime: static # ... plus runtime: static. Both lines are required. repo: https://github.com/<owner>/<repo> - Network accessline 29
runtime: static # ... plus runtime: static. Both lines are required. repo: https://github.com/<owner>/<repo> branch: main - Network accessline 30
repo: https://github.com/<owner>/<repo> - Network accessline 61
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 77
**Cost note:** free to deploy, no credit card. The constraint is **5 GB/month of outbound bandwidth**, then $0.15/GB. Verify before promoting a site that expects traffic: `https://render.com/docs/outbound-bandwidth` - Network accessline 82
curl -sSL -o /dev/null -w "%{http_code}" "https://<SERVICE>.onrender.com"
references/targets/vercel.md
- Network accessline 5
> **Check the commercial restriction before choosing Hobby, because it is broader than almost anyone expects.** Vercel's Fair Use Guidelines: *"Commercial usage is defined as any Deployment that is used for the purpose of financial gain of - Access to secretsline 51
[Credential-related source omitted] - Network accessline 79
vercel 2>&1 | tee /tmp/vercel-preview.log # Monitor /tmp/vercel-preview.log for "Preview: https://..." or "Production: https://..." - Network accessline 80
# Monitor /tmp/vercel-preview.log for "Preview: https://..." or "Production: https://..." - Network accessline 86
PREVIEW_URL=$(grep -oE 'https://[^ ]+\.vercel\.app' /tmp/vercel-preview.log | tail -1) - Network accessline 92
curl -sSL -o /dev/null -w "%{http_code}" "$PREVIEW_URL" - Network accessline 105
Cost note: Hobby is free and **personal, non-commercial use only** — see the note at the top of this file, which is stricter than it sounds. Documented Hobby limits: 100 GB fast data transfer, 1,000,000 edge requests, 1,000,000 function inv - Network accessline 110
curl -sSL -o /dev/null -w "%{http_code}" "https://<prod-url>" - Network accessline 135
- **Team vs personal scope:** `vercel link` can quietly connect to the wrong scope. Verify with `vercel projects ls`. - **Monorepo root directory:** if deploying from a subdirectory of a monorepo, set `rootDirectory` in the project's Vercel - Network accessline 136
- **Monorepo root directory:** if deploying from a subdirectory of a monorepo, set `rootDirectory` in the project's Vercel settings (dashboard) or via `vercel.json`. - **Preview URL auth:** Vercel Pro teams can require auth on preview URLs, - Network accessline 137
- **Preview URL auth:** Vercel Pro teams can require auth on preview URLs, which breaks the Phase 4.5 curl check. Either disable "Vercel Authentication" for the project, or probe a public endpoint.
scripts/audit.py
scripts/env_extract.py
scripts/package_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/static_check.py
scripts/sync_cowork_plugin.py
- Executable scriptline 1
#!/usr/bin/env python3
tests/test_audit.py
- Executable scriptline 1
Executable file - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Network accessline 125
_git_commit(tmp_path) (tmp_path / "main.py").write_text("print('changed')\n") # dirty subprocess.run(["git", "remote", "add", "origin", "https://example.com/x.git"], cwd=tmp_path, check=True) - Network accessline 126
(tmp_path / "main.py").write_text("print('changed')\n") # dirty subprocess.run(["git", "remote", "add", "origin", "https://example.com/x.git"], cwd=tmp_path, check=True) result = run_audit(tmp_path, "--skip-cve") - Network accessline 127
subprocess.run(["git", "remote", "add", "origin", "https://example.com/x.git"], cwd=tmp_path, check=True) - Network accessline 140
_git_commit(tmp_path) (tmp_path / "new_file.py").write_text("# untracked, audit just ran and added this\n") subprocess.run(["git", "remote", "add", "origin", "https://example.com/x.git"], cwd=tmp_path, check=True) - Network accessline 141
(tmp_path / "new_file.py").write_text("# untracked, audit just ran and added this\n") subprocess.run(["git", "remote", "add", "origin", "https://example.com/x.git"], cwd=tmp_path, check=True) result = run_audit(tmp_path, "--skip-cve - Network accessline 142
subprocess.run(["git", "remote", "add", "origin", "https://example.com/x.git"], cwd=tmp_path, check=True) - Network accessline 161
_git_commit(tmp_path) subprocess.run(["git", "remote", "add", "origin", "https://example.com/x.git"], cwd=tmp_path, check=True) - Network accessline 162
subprocess.run(["git", "remote", "add", "origin", "https://example.com/x.git"], cwd=tmp_path, check=True) - Network accessline 186
<meta name="description" content="Una pagina."> <meta property="og:title" content="Mi pagina"> <meta property="og:image" content="https://example.com/p.png"> - Network accessline 187
<meta property="og:title" content="Mi pagina"> <meta property="og:image" content="https://example.com/p.png"> <link rel="stylesheet" href="estilo.css"> - Network accessline 188
<meta property="og:image" content="https://example.com/p.png"> - Network accessline 285
(tmp_path / "index.html").write_text( '<html><body>' '<img src="https://cdn.example.com/a.png">' - Network accessline 286
'<html><body>' '<img src="https://cdn.example.com/a.png">' '<img src="//cdn.example.com/b.png">' - Network accessline 287
'<img src="https://cdn.example.com/a.png">' - Access to secretsline 346
[Credential-related source omitted] - Access to secretsline 355
[Credential-related source omitted]
tests/test_env_extract.py
tests/validate_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 1 fact
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentiondocs/badges/generate.py:72High confidence
Hidden characters: 1 fact
- Joiner U+200C outside an emoji or a script that needs it, in proseREADME.md:534High confidence
Signal confidence: 196 facts
- Network access in prose of documentationCONTRIBUTING.md:9Low confidence
- Network access in code of documentationCONTRIBUTING.md:26Low confidence
- Network access in prose of documentationCONTRIBUTING.md:62Low confidence
- Network access in prose of documentationCONTRIBUTING.md:63Low confidence
- Network access in prose of documentationCONTRIBUTING.md:64Low confidence
- Network access in prose of documentationCONTRIBUTING.md:121Low confidence
- Network access in prose of documentationCONTRIBUTING.md:122Low confidence
- Network access in prose of documentationCONTRIBUTING.md:123Low confidence
- Network access in prose of documentationCONTRIBUTING.md:129Low confidence
- Network access in code of documentationCONTRIBUTING.md:146Low confidence
- Network access in prose of documentationCONTRIBUTING.md:182Low confidence
- Network access in prose of documentationCONTRIBUTING.md:183Low confidence
- Network access in prose of documentationCONTRIBUTING.md:184Low confidence
- Network access in prose of documentationCONTRIBUTING.md:241Low confidence
- Network access in prose of documentationCONTRIBUTING.md:242Low confidence
- Network access in prose of documentationCONTRIBUTING.md:243Low confidence
- Network access in prose of documentationREADME.md:9Low confidence
- Network access in prose of documentationREADME.md:11Low confidence
- Network access in prose of documentationREADME.md:13Low confidence
- Network access in code of documentationREADME.md:69Low confidence
- Network access in prose of documentationREADME.md:78Low confidence
- Network access in prose of documentationREADME.md:173Low confidence
- Network access in code of documentationREADME.md:307Low confidence
- Network access in prose of documentationREADME.md:316Low confidence
- Network access in prose of documentationREADME.md:411Low confidence
- Network access in prose of documentationREADME.md:522Low confidence
- Network access in prose of documentationREADME.md:524Low confidence
- Network access in prose of documentationREADME.md:534Low confidence
- Possible obfuscation in prose of documentationREADME.md:534Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:209Low confidence
- Network access in code of the SKILL.mdSKILL.md:228High confidence
- Network access in prose of the SKILL.mdSKILL.md:231Low confidence
- Network access in code of the SKILL.mdSKILL.md:236High confidence
- Network access in prose of the SKILL.mdSKILL.md:241Low confidence
- Network access in prose of the SKILL.mdSKILL.md:243Low confidence
- Network access in code of the SKILL.mdSKILL.md:266High confidence
- Network access in code of the SKILL.mdSKILL.md:267High confidence
- Network access in prose of the SKILL.mdSKILL.md:276Low confidence
- Network access in code of documentationcowork-plugin/README.md:48Low confidence
- Network access in code of documentationcowork-plugin/README.md:102Low confidence
- Network access in prose of documentationcowork-plugin/README.md:121Low confidence
- Network access in code of the SKILL.mdpublish-website/SKILL.md:66High confidence
- Network access in code of the SKILL.mdpublish-website/SKILL.md:68High confidence
- Network access in code of documentationpublish-website/references/custom-domain.md:102Low confidence
- Network access in code of documentationpublish-website/references/custom-domain.md:103Low confidence
- Network access in code of documentationpublish-website/references/hosts.md:64Low confidence
- Network access in code of documentationpublish-website/references/hosts.md:65Low confidence
- Executable script in code of a file that runspublish-website/scripts/static_check.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuepublish-website/scripts/static_check.py:466Low confidence
- Network access in code of a file that runspublish-website/scripts/static_check.py:586High confidence
and 146 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest cowork-plugin/.claude-plugin/plugin.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.