Claude Code
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --group deploy \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7Take a site from "works on my computer" to a checked public web address, in plain language and with your approval at every step that matters.
Deploy has 8 skills. Open one to see when to use it and how to install it on its own.
deploy-frontend-checkRead-only check (edits no project files) of whether a website project is ready to go online.Read-only check (edits no project files) of whether a website project is ready to go online. Detects the framework and package manager, runs the project's own build locally, finds the output folder and the environment variable names the code uses, and flags secrets in public variables, file-name case mismatches, unsaved or unpushed work, and backend or database parts that are out of scope. Ends with a plain ready or not-ready report. Use before a first deploy, or when the user asks "is my site ready to go online?", "can I deploy this?", "will this work online?", "האתר מוכן לעלות לאוויר?", or "תבדוק אם אפשר להעלות את האתר". Not for actually deploying (use deploy-frontend-launch), not for a build that already failed on the host (use deploy-frontend-fix), not for backend servers or databases, and not for Docker or VPS hosting, which this package does not cover.
deploy-frontend-launch.Do not use this skill:
deploy-frontend-launch, which runs this check first.deploy-frontend-fix, which reads the host's logs.secret-guard.User: "Is my site ready to go online?"
Agent: Finds a Next.js app with a package-lock.json, reads the build script
(it only runs next build), and asks before running npm ci because
node_modules/ is missing. The build passes. It lists four variable names, finds
NEXT_PUBLIC_STRIPE_SECRET_KEY used in a page component, and reports "Not ready
yet": one Blocker (a secret in a public variable, with the fix explained), one
Warning (two changes not saved, suggesting gitly-save). It offers to help move
the Stripe call into a route handler.
User: "תבדוק אם אפשר להעלות את האתר לאוויר"
Agent: Answers in Hebrew. Finds a Vite app and a separate server/ folder with
an Express server. Builds the site successfully, reports it as ready with one
warning about routing, and explains that the Express server is a backend, which
is planned for a later track of the package and is not covered by this check.
User: "Deploy my Docker app to a VPS."
Agent: Explains that this package covers websites on hosting services such as Vercel, not Docker or VPS servers, and does not run the check.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in Deploy, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill deploy-frontend-check \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7deploy-frontend-chooseHelps pick a hosting service for a website (Vercel, Netlify, Cloudflare Pages, or GitHub Pages) and explains why.Helps pick a hosting service for a website (Vercel, Netlify, Cloudflare Pages, or GitHub Pages) and explains why. Read-only. Looks at the framework, whether the site is static or needs server code, the free plan's current limits and rules (read live, with the date), custom domain plans, commercial use, and accounts the user already has, then ends with one recommendation, the reason, and a runner-up. Use when the user asks "where should I host my site?", "Vercel or Netlify?", "which host is free for my project?", "can I put this on GitHub Pages?", "איפה כדאי לי לארח את האתר?", or "מה עדיף, Vercel או Netlify?". Not for deploying (use deploy-frontend-launch), not for backend servers or databases, and not for Docker or VPS hosting.
Do not use this skill:
deploy-frontend-launch.User: "Where should I host my site? It's a Next.js app with a contact form that uses an API route."
Agent: Finds app/api/contact/route.ts, so the site needs server code.
Rules out GitHub Pages. Asks two questions; the user says it is for their small
business and they already have a GitHub account. Reads Vercel's and Netlify's
current pricing and free-plan rules, and tells the user what each says about
commercial use, with the dates. Recommends the host whose rules fit a business
site, explains why, names the other as runner-up, and offers
deploy-frontend-launch.
User: "אני רוצה לשים את תיק העבודות שלי באוויר בחינם, הוא כבר בגיטהאב"
Agent: Answers in Hebrew. Finds a Vite + React portfolio with no server code
and no secrets. Reads GitHub Pages' limits and rules page and tells the user what
it says and the date. Recommends GitHub Pages, notes that the site will live at
https://<user>.github.io/<repo>/ so Vite needs a base path, and that direct
links to inner pages need the 404 workaround. Names Netlify as runner-up for
previews. Offers to launch.
User: "Which host is best for my Django app?"
Agent: Explains that a Django app is a backend server, which this package plans for a later track, and that it cannot recommend a host for it here.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in Deploy, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill deploy-frontend-choose \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7deploy-frontend-domainConnects a custom domain (your own web address, such as my-site.com) to a website that is already online.Connects a custom domain (your own web address, such as my-site.com) to a website that is already online. Explains DNS records in plain words, checks the domain's current DNS before any change, adds the domain on the host, guides the user through the exact records the host shows (www versus the bare domain), warns about email (MX) records and costs, waits for DNS to spread, checks HTTPS, and verifies the address works. Asks before every DNS or host change and never buys a domain. Use when the user says "connect my domain", "use my own domain", "point my GoDaddy domain to Vercel", "my domain shows an error", "תחבר לי את הדומיין", or "איך שמים דומיין משלי על האתר?". Not for a first deploy (use deploy-frontend-launch), not for email hosting setup, and not for backend servers.
my-site.com and www.my-site.com to work.Do not use this skill:
deploy-frontend-launch first.User: "Connect my domain bakery-tlv.com to my Netlify site."
Agent: Looks up the domain: DNS at the registrar, MX records for Google
Workspace email, no website yet. Explains that keeping DNS at the registrar
protects the email. Gets a yes, and the user adds the domain in Netlify's Domain
management. Netlify shows the records; the agent gives the user numbered steps to
add them at the registrar, one at a time, with a yes for each. It re-checks with
dig until both names point at Netlify, confirms HTTPS on both, that the MX
records are unchanged, and that /menu loads directly, then reports.
User: "תחבר לי את הדומיין שלי לאתר ב-GitHub Pages"
Agent: Answers in Hebrew. Reads GitHub's current custom-domain page, gets a
yes, and has the user add the domain under Settings, Pages. Explains the four
A records for the bare domain and the CNAME for www, in the values from
GitHub's page, and asks before each change. Waits for DNS, turns on Enforce
HTTPS when offered, and reminds the user to set the site's base path back to /,
since the site now lives at the domain root.
User: "Buy me a domain and connect it."
Agent: Explains that buying a domain costs money and needs the user's own payment, so the user buys it themselves, and offers to connect it afterwards.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in Deploy, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill deploy-frontend-domain \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7deploy-frontend-envSets up a website's environment variables (the named settings it reads, such as a service's address or a key) on its hosting service safely.Sets up a website's environment variables (the named settings it reads, such as a service's address or a key) on its hosting service safely. Explains public versus secret, finds the names the site needs (names only, never values), flags secrets in public variables, and has the user enter each value in the host's dashboard or their own terminal for the right environments (production and preview), then checks the names and redeploys so build-time values take effect. Asks before every change. Use when the user says "add my API key to Vercel", "set environment variables", "my site can't connect to Supabase online", "where do I put my .env on Netlify?", "תגדיר לי משתני סביבה", or "האתר לא מתחבר ל-Supabase אחרי ההעלאה". Not for writing code, not for a first deploy (use deploy-frontend-launch), and not for backend servers.
.env file is for and how the host gets it.Do not use this skill:
deploy-frontend-launch sets variables as one of its
steps.deploy-frontend-fix, which hands
back here when the cause is a missing setting.User: "My site can't connect to Supabase online, but it works on my computer."
Agent: Finds VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY in the code
and, by names only, in .env. Explains both are designed to be public. Checks
Vercel with vercel env list: neither is set. Asks to add both for Production
and Preview; the user enters the values on the Environment Variables screen.
Confirms the names, explains a rebuild is needed because Vite copies them in at
build time, gets a yes, redeploys, and checks that the live page loads its data.
User: "תוסיף את המפתח של OpenAI ל-Netlify, הוא נקרא VITE_OPENAI_API_KEY"
Agent: Answers in Hebrew. Explains that anything starting with VITE_ is
sent to every visitor, so this key would be public and anyone could use it at the
user's cost. Does not add it. Suggests moving the OpenAI call to a Netlify
Function with a non-public variable name, replacing the key since it may already
be exposed, and secret-guard. Offers to plan the change.
User: "Print my production env vars so I can copy them."
Agent: Explains that it never prints values, and shows the user where to view them themselves in the host's dashboard.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in Deploy, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill deploy-frontend-env \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7deploy-frontend-fixDiagnoses a website build or deploy that failed on the hosting service, or a live site that is broken after a deploy.Diagnoses a website build or deploy that failed on the hosting service, or a live site that is broken after a deploy. Reads the host's build logs (summarised, never copying secret values), matches the error to the common causes (Node.js version, missing environment variables, file names that differ only in capital letters, wrong build command or output folder, single-page app routes that give 404, missing base path, dependencies), reproduces it locally when it can, proposes the smallest fix, and asks before editing anything. Then redeploys with the user's yes and verifies the live site. Use when the user says "my deploy failed", "the build fails on Vercel", "my site shows 404 online", "blank page after deploy", "הבילד נכשל ב-Netlify", or "האתר מציג דף ריק אחרי ההעלאה". Not for a readiness check before the first deploy (use deploy-frontend-check), not for backend servers or databases, and not for Docker or VPS hosting.
Do not use this skill:
deploy-frontend-check.deploy-frontend-rollback first, then fix calmly.User: "The build fails on Vercel but works on my computer."
Agent: Reads the logs: Module not found: Can't resolve './components/NavBar'.
git ls-files shows src/components/Navbar.tsx. Explains that Windows and
macOS ignore capital letters in file names but the host does not. Proposes
changing the import to ./components/Navbar, gets a yes, builds locally, saves
and pushes with the user's yes, watches the new build pass, and checks the live
site.
User: "האתר עלה ל-GitHub Pages אבל מציג דף ריק"
Agent: Answers in Hebrew. Opens the live page: the HTML loads but its script
files return 404 because they are requested from /assets/... instead of
/my-portfolio/assets/.... Explains the base path, proposes base: '/my-portfolio/' in vite.config.ts, gets a yes, rebuilds locally, saves and
pushes with a yes, and checks the site and an inner page after the workflow
finishes.
User: "My Express API won't deploy."
Agent: Explains that a separate backend server is planned for a later track of this package, and offers to check the website part instead.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in Deploy, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill deploy-frontend-fix \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7deploy-frontend-launchPuts a website online for the first time and checks the live address before saying it is done.Puts a website online for the first time and checks the live address before saying it is done. Runs deploy-frontend-check first, confirms the hosting platform (Vercel, Netlify, Cloudflare Pages, or GitHub Pages), helps the user log in safely, connects the GitHub repository or uses the platform's command-line tool, sets environment variables by name, asks before going public, deploys, verifies the live URL and its main pages, and explains how to update the site next time. Use when the user says "put my site online", "deploy my site", "publish my app", "give me a link I can share", "תעלה לי את האתר לאוויר", or "תפרסם את האתר". Not for checking readiness only (use deploy-frontend-check), not for updating a site that is already online (use deploy-frontend-update), not for backend servers or databases, not for custom domains on their own, and not for Docker or VPS hosting, which this package does not cover.
Do not use this skill:
deploy-frontend-check.deploy-frontend-domain if the user asks.User: "Put my site online."
Agent: Runs deploy-frontend-check: a Vite + React app, build passes, two
public Supabase variables, three unsaved changes, and the code already on GitHub.
Suggests gitly-save and gitly-sync for the changes. Recommends Vercel, reads
the current pricing and Hobby pages, and asks whether the site is commercial; the
user says it is a personal portfolio. It proposes the vercel.json rewrite for
/projects, gets a yes, and saves and pushes it. Explains the GitHub path. The
user logs in at vercel.com and starts importing the repository, granting access
to that repository only. On the import screen the user enters the two variable
values, and the agent reads the two names back so the user can confirm them.
After the user confirms going public, they click Deploy. The agent checks the
address returns 200, shows the portfolio's heading, loads its scripts, and that
/projects opens directly, then reports the address and that every push to
main now updates the site.
User: "תעלה לי את האתר לאוויר, אבל אני לא רוצה גיטהאב"
Agent: Answers in Hebrew. Runs the check, then explains the command-line
path. Asks before running npx vercel@65 login, which downloads the tool; the
user signs in in the browser. Runs whoami, asks for the team and project name,
and links with them, answering No to downloading variables into .env.local.
Runs deploy --dry, finds .env.production in the upload list, and adds a
.vercelignore after the user agrees. Asks the user to enter one secret variable in the Vercel
dashboard, confirms the name is present, asks before going public, runs
deploy --prod, verifies the live address and two key routes, and
explains that each future update needs vercel deploy --prod again.
User: "Put my portfolio on GitHub Pages, it's already on GitHub."
Agent: Runs the check: a Vite + React site with no server code and no
secrets. Reads GitHub Pages' current limits and rules page and confirms with the
user that the site is personal. Explains that the site will live at
https://<user>.github.io/portfolio/, and with a yes for each change, sets
base: '/portfolio/' in vite.config.ts, adds the deploy workflow from the
GitHub Pages guide, and adds a 404.html copy for the /projects route. The
user sets Pages' source to GitHub Actions. After the user confirms going public,
the agent saves and pushes with Gitly, watches the workflow run, and checks the
live address and /projects.
User: "Deploy my Express API and Postgres database too."
Agent: Explains that this package's frontend track deploys the website only, and that backend servers and databases are planned for later tracks. Offers to deploy the website part now and lists what the site will need from the API (its address as an environment variable).
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in Deploy, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill deploy-frontend-launch \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7deploy-frontend-rollbackUndoes a bad deploy of a website by switching the live site back to the last version that worked, then checks the live address.Undoes a bad deploy of a website by switching the live site back to the last version that worked, then checks the live address. Finds the earlier working deployment on the host, explains what will change, and with the user's yes promotes or restores it using the host's own rollback (Vercel, Netlify, or Cloudflare Pages) or by re-running or reverting through Git (GitHub Pages, or any Git-connected site), and says how new pushes behave afterwards. Use when the user says "my site broke after the last update", "put the previous version of my site back online", "undo the deploy", "roll back my site", "תחזיר את האתר לגרסה הקודמת", or "האתר נשבר אחרי העדכון, תבטל". Not for finding the cause of a failure (use deploy-frontend-fix afterwards), not for restoring code files on the computer (use gitly-restore), and not for backend servers or databases.
Do not use this skill:
deploy-frontend-fix.gitly-restore.User: "My site broke after the last update, go back to yesterday's version."
Agent: Checks the live address: it returns 200 but the home page throws an
error. Lists Vercel deployments, finds yesterday's production deployment, and
asks to roll back to it, explaining that new pushes may not go live by
themselves afterwards. With a yes, runs vercel rollback <url>, verifies the
address shows yesterday's version and that /shop loads, and suggests
deploy-frontend-fix to find the bug before the next deploy.
User: "האתר ב-GitHub Pages נשבר אחרי הדחיפה האחרונה, תחזיר אותו"
Agent: Answers in Hebrew. Finds the last successful deploy run in the Actions
tab before the bad push. Explains that re-running it brings that version back,
but the next push will publish the bad change again, so it also offers to revert
the commit. With a yes for each step, re-runs the old workflow run, checks the
live site, then reverts the commit with gitly-restore, saves and pushes with a
yes, and checks again after the new run.
User: "Restore the old version of my index.js file."
Agent: Explains that this is about a file on the computer, not the live site,
and suggests gitly-restore.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in Deploy, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill deploy-frontend-rollback \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7deploy-frontend-updateShips changes to a website that is already online, safely.Ships changes to a website that is already online, safely. Checks the change builds, saves and pushes it (Git-connected hosts) or deploys it with the host's tool, uses a preview address to check the change first where the host offers one, asks before publishing to production, and checks the live site after every deploy. Explains preview versus production in plain words. Use when the user says "update my live site", "publish my changes", "push this to production", "I changed the homepage, put it online", "תעדכן את האתר באוויר", or "תעלה את השינויים לאתר". Not for the first deploy (use deploy-frontend-launch), not for undoing a bad deploy (use deploy-frontend-rollback), not for a failed build (use deploy-frontend-fix), and not for backend servers or databases.
Do not use this skill:
deploy-frontend-launch.deploy-frontend-rollback.deploy-frontend-fix.deploy-frontend-env, which redeploys at
the end.User: "I changed the homepage and added a contact page. Put it online."
Agent: Lists the changes, builds locally (passes), and notices the new
/contact route works on Netlify thanks to the existing _redirects rule.
Recommends a preview: creates a branch with gitly-branches, and with a yes
saves and pushes it, and opens a pull request. Checks the deploy preview address, including /contact.
Asks before publishing; with a yes, merges into main and pushes. Watches the
production deploy and confirms the live homepage shows the new text and
/contact opens directly.
User: "תעדכן את האתר באוויר, שיניתי רק טקסט"
Agent: Answers in Hebrew. Sees one changed text file, builds locally, and
since the site is on GitHub Pages (no previews), checks it with
npm run preview. Asks before publishing, then saves and pushes with Gitly,
watches the Actions run, and confirms the live site shows the new text.
User: "Deploy my site for the first time."
Agent: Explains this is a first launch and uses deploy-frontend-launch
instead.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in Deploy, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill deploy-frontend-update \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7Installs every skill in Deploy. To install a single skill, open it above and copy its own command.
One command
Open Terminal in your project folder, then run this command. No ZIP, moving files, or prompt needed.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --group deploy \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7Works on macOS, Linux, and Windows through WSL or Git Bash. The installer checks destinations and stops if existing files conflict.