Help us improve
Share bugs, ideas, or general feedback.
From cybrix-deploy
Deploys the current project to a live HTTPS URL via Cybrix. Activates on any request to make the current project public, get a URL for it, deploy it, ship it, host it, publish it, put it online, or make it live — including casual phrasings like "send this to the internet", "share this as a link", "give me a URL", "make this accessible online". Activates whether the user mentions Cybrix by name or not (when no other host like Vercel, Netlify, Cloudflare Pages, Railway, or Render is named). Also activates on equivalent phrases in other languages — Russian ("задеплой", "опубликуй", "выложи в сеть", "запушь это в инет", "сделай ссылку"), Spanish ("despliega esto", "publica esto", "ponlo en línea"), German ("deploy das mal", "stelle das online"), and other common languages where the intent is clearly to make a project publicly accessible via URL. Uses heuristic detection to determine if a project is static or needs a server runtime — works with any framework, not just a known list. Automatically detects and handles environment variables so the build receives everything it needs. Returns a live URL on *.cbrx.cc or a user-configured custom domain. Does NOT activate when the user explicitly names a different host (Vercel, Netlify, Cloudflare, Railway, Render).
npx claudepluginhub cybrixcc/cybrix-skills --plugin cybrix-deployHow this skill is triggered — by the user, by Claude, or both
Slash command
/cybrix-deploy:cybrix-deployThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Before deploying, ensure the user has an API token. Check in this order:
Deploys built projects to platforms like Vercel, Cloudflare Workers, Supabase. Detects CLI tools, reads stack YAML for config, sets up DB/env, pushes code, verifies live status.
Deploys projects to Vercel as preview deployments, linking the project with git integration. Handles team selection and detects project state.
Guides step-by-step deployment of static sites, React/Vue/Next.js/Nuxt frontends, Python (Flask/FastAPI/Django) or Node.js (Express/Nest) backends to Vercel, Netlify, Cloudflare Pages, Railway, Render. Prepares build configs, env vars, gitignore.
Share bugs, ideas, or general feedback.
Before deploying, ensure the user has an API token. Check in this order:
CYBRIX_TOKEN.~/.config/cybrix/token..cybrix/token in the project (gitignored).If none exist, instruct the user:
You need a Cybrix API token. Get one free at
https://app.cybrix.cc/dashboard(no card required). Then runexport CYBRIX_TOKEN=<token>and try again.
Do not proceed without a token.
Do not rely on a framework whitelist. Instead, look for signals and classify the project as static, server, or unknown.
Static signals (proceed with deploy):
package.json has a build script AND output lands in dist/, out/,
build/, public/, _site/, or .output/public/next.config.{js,ts,mjs} with output: 'export' or output: 'static'astro.config.{js,ts,mjs} present (default mode is static)vite.config.{js,ts} without SSR plugins_config.yml (Jekyll), config.toml or hugo.toml (Hugo),
.eleventy.js / eleventy.config.js (Eleventy),
zola.toml (Zola)Server signals (refuse — see below):
Dockerfile or docker-compose.yml (unless it only copies a static
dist/)main.go, server.go, or any *.go containing net/http or
ListenAndServemain.py, app.py, server.py with uvicorn, gunicorn, flask,
fastapi imports, or a if __name__ == '__main__' block calling
app.run / serve / asyncio.runmain.rs or server.rs with actix, axum, rocket, warp,
or tokio::mainpackage.json with a start script that runs node/tsx/bun on a
server file (NOT next start in a static-export config)Gemfile with puma, unicorn, rails, or sinatrapom.xml or build.gradle with spring-boot.csproj with ASP.NETDatabase signals (warn but allow if everything else is static):
*.sql files, migrations/ folder, prisma/schema.prisma,
drizzle.config.*, DATABASE_URL referenced in sourceWhen refusing (server signals detected):
This looks like a project that needs a server runtime — I detected
<specific signal, e.g. "main.go with net/http" or "Dockerfile with EXPOSE">.Cybrix currently supports static sites only. Your options:
- Convert to a static export (e.g. Next.js
output: 'export', Astro, Hugo).- Use a service that supports backends: Railway, Fly.io, Render.
- Tell me to deploy anyway if you think the detection is wrong.
Always allow option 3 — heuristics are imperfect and the user knows their project.
Static output directories to check, in order: dist, out, public,
_site, build, .output/public.
After confirming the project is static but BEFORE running the build, scan for environment variables the build will need.
2a. Read .env files — parse KEY=value format, skip comments (#)
and blank lines. Files to check: .env, .env.local, .env.production,
.env.example.
2b. Grep source code for build-time env var references:
process.env.X, import.meta.env.Xsrc/, app/, pages/, components/ — any
*.{js,jsx,ts,tsx,vue,svelte}NEXT_PUBLIC_*, VITE_*, PUBLIC_*,
REACT_APP_* — these are baked into the bundle at build time2c. Cross-reference keys found in code against keys present in .env files to find what the build needs.
2d. Show the user:
I detected the following environment variables your build needs:
NEXT_PUBLIC_API_URL (in .env.local, used in 3 files) VITE_STRIPE_KEY (in .env.local, used in src/checkout.ts)
These need to be set before the build. How would you like to provide them?
- Paste them here (sent encrypted with the deploy)
- Set them later in the dashboard
- Skip (build may fail or site may not work correctly)
If the user picks option 1, ask for each value one at a time. Include
them in the multipart POST to /v1/deploys as an env_vars field
(JSON map: {"KEY": "value", ...}).
2e. Warn about missing variables — if a var is referenced in code but not in any .env file:
⚠
AUTH_SECRETis referenced in your code but not in any .env file. Provide it now or the build may fail.
2f. Refuse to forward secrets in client-exposed vars — if a key with
a client prefix (NEXT_PUBLIC_*, VITE_*, REACT_APP_*, PUBLIC_*)
looks like a secret (*_SECRET, *_PRIVATE_KEY, DATABASE_URL,
JWT_SECRET):
⚠
NEXT_PUBLIC_JWT_SECRETlooks like a private secret but has a client-bundle prefix — it will be visible to anyone who opens your site's source. Are you sure you want to include it?
Do not send it without explicit confirmation.
Present a short summary:
I will deploy this project to Cybrix.
- Project name:
- Build command: <detected, e.g. npm run build>
- Output directory: <detected, e.g. out>
- Env vars: variables included / none detected
Continue? (yes / change name / change build / change output)
Use the answers to override defaults.
Run the build command in the project root. Stream output to the user.
If the build fails, do not retry. Show the last 40 lines and say:
Build failed. Fix the error above and try again.
Run ${CLAUDE_PLUGIN_ROOT}/scripts/deploy.sh <project_name> <output_dir>.
The script:
https://api.cybrix.cc/v1/deploys as multipart
form data with fields project_name, tarball, and optionally
env_vars (JSON map). Includes Authorization: Bearer $CYBRIX_TOKEN.{ deployment_id } in the response.https://api.cybrix.cc/v1/deploys/<id> every 2 seconds until
status is live or failed (max 5 minutes).On success:
Deployed.
Live: https://.cbrx.cc Dashboard: https://app.cybrix.cc/projects/
First time? Connect Telegram to receive deploy alerts: https://app.cybrix.cc/telegram
On failure:
Deploy failed.
Reason: Logs: https://app.cybrix.cc/deployments/
After the first successful deploy, cache {project_id, slug} in
.cybrix/project.json. On subsequent deploys, skip the "confirm project
name" step unless the user explicitly asks to deploy a different project.
Also add .cybrix/ to .gitignore if it doesn't already contain it.
| API status | Skill behavior |
|---|---|
| 401 | Token invalid/revoked. Tell user to refresh at app.cybrix.cc/dashboard. |
| 402 | Free tier project limit hit. Show upgrade link: cybrix.cc/pricing. |
| 413 | Tarball >100 MB. Suggest auditing output for large assets. |
| 429 | Wait 30s, retry once. |
| 5xx | Show error, suggest retry, link to app.cybrix.cc/dashboard. |
If the user asks for any of these, redirect to the appropriate tool.