Design Craft
kipperacademy/skillpper
Opinionated product-design skill for building, reviewing, polishing, and iterating on landing pages, apps, dashboards, AI products, design systems, and brand touchpoints.
Self-contained SaaS pipeline — invoke directly, do not decompose.
$ npx skills add popmechanic/VibesOS --skill factory -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install popmechanic/VibesOS factory --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/popmechanic/VibesOS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/factory .claude/skills/factory && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "factory" agent skill from https://github.com/popmechanic/VibesOS/tree/main/skills/factory into .claude/skills/factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/popmechanic/VibesOS/tree/main/skills/factoryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add popmechanic/VibesOS --skill factory -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install popmechanic/VibesOS factory --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/popmechanic/VibesOS.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/factory .agents/skills/factory && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "factory" agent skill from https://github.com/popmechanic/VibesOS/tree/main/skills/factory into .agents/skills/factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add popmechanic/VibesOS --skill factory -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install popmechanic/VibesOS factory --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/popmechanic/VibesOS.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/factory .cursor/skills/factory && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "factory" agent skill from https://github.com/popmechanic/VibesOS/tree/main/skills/factory into .cursor/skills/factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/popmechanic/VibesOS.git --path skills/factory--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add popmechanic/VibesOS --skill factory -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install popmechanic/VibesOS factory --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/popmechanic/VibesOS.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/factory .gemini/skills/factory && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "factory" agent skill from https://github.com/popmechanic/VibesOS/tree/main/skills/factory into .gemini/skills/factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install popmechanic/VibesOS factoryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add popmechanic/VibesOS --skill factory -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/popmechanic/VibesOS.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/factory .github/skills/factory && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "factory" agent skill from https://github.com/popmechanic/VibesOS/tree/main/skills/factory into .github/skills/factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add popmechanic/VibesOS --skill factory -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install popmechanic/VibesOS factory --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/popmechanic/VibesOS.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/factory .opencode/skills/factory && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "factory" agent skill from https://github.com/popmechanic/VibesOS/tree/main/skills/factory into .opencode/skills/factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
factorySelf-contained SaaS pipeline — invoke directly, do not decompose.
Factory is an agent skill from popmechanic/VibesOS. Self-contained SaaS pipeline — invoke directly, do not decompose. Generates a factory app with landing page, Stripe subscription checkout, Vibe Token economics, and deploys to Cloudflare Workers. Use when the user wants to monetize an app, add billing, create token-backed revenue sharing, or turn an app into a business.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/components-and-troubleshooting.md` and `templates/subscription-gate.ts`).
It sits in Frontend & Design, covering Landing pages. It works with Stripe and Cloudflare Workers. The repository describes itself as: A GUI for Claude Code that makes it easy to vibe code simple, un-hackable apps. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5baf8a2. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteBashGlobAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Ships script files (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
curlpython3bunFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
factory.vibesos.comconnect.stripe.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Factory loads about 3.1k tokens when it runs, and up to ~4.5k if it reads all its reference files. Until then it costs about 82 tokens; SKILL.md has 642 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Bash, Glob, AskUserQuestionAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from popmechanic/VibesOS at commit 5baf8a2, republished under its MIT licence (© popmechanic). 642 words, ~3,128 tokens.
.claude/skills/factory/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Plan mode: If you are planning work, this entire skill is ONE plan step: "Invoke /vibes:factory". Do not decompose the steps below into separate plan tasks.
Display this ASCII art immediately when starting:
░▒▓████████▓▒░░▒▓██████▓▒░ ░▒▓██████▓▒░▒▓████████▓▒░░▒▓██████▓▒░░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓██████▓▒░ ░▒▓████████▓▒░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░ ░▒▓██████▓▒░
░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░░▒▓██████▓▒░ ░▒▓█▓▒░ ░▒▓██████▓▒░░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░DO NOT generate code manually. This skill uses pre-built scripts and API calls:
| Step | Tool | What it does |
|---|---|---|
| Assembly | assemble-factory.js | Generates unified index.html |
| Deploy | deploy-cloudflare.js | Deploys to Cloudflare Workers |
| Configure | POST /app/configure | Stores billing config in KV |
| Initialize | POST /token/:appName/initialize | Sets up Vibe Token economics |
| Grant | POST /token/:appName/grant | Grants tokens to partners |
Script location:
VIBES_ROOT="${CLAUDE_PLUGIN_ROOT:-$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")}"Factory API base: https://factory.vibesos.com
Transform your Vibes app into a revenue-generating SaaS with token-backed contributor rewards.
The factory skill sets up:
All configuration is stored in the factory worker. Token state lives in a Durable Object per app.
Detect whether you're running in a terminal (Claude Code CLI) or an editor. Terminal agents use AskUserQuestion for all input. Editor agents present requirements as a checklist comment, wait for user edits, then proceed. See the vibes skill for the full detection and interaction pattern.
Before starting, verify these prerequisites. STOP if any check fails.
Auth is automatic — on first deploy, a browser window opens for Pocket ID login. Tokens are cached at ~/.vibes/auth.json for subsequent deploys.
ls -la app.jsx 2>/dev/null || echo "NOT_FOUND"Decision tree:
app.jsx -> Proceed to Step 2riff-*/app.jsx -> Ask user to select one/vibes:vibes firstVIBES_ROOT="${CLAUDE_PLUGIN_ROOT:-$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")}"
APP_NAME="${1:-}"
if [ -n "$APP_NAME" ]; then
curl -s "https://factory.vibesos.com/connect/status/$APP_NAME" \
-H "Authorization: Bearer $(cat ~/.vibes/auth.json | python3 -c "import sys,json; print(json.load(sys.stdin)['accessToken'])")" 2>/dev/null
fiIf the app already has billing configured, offer to update or show current config.
"Pre-flight checks passed:
- App found (app.jsx)
- Auth is automatic via Pocket ID
Ready to configure your app factory."
Use AskUserQuestion:
Question 1: "What should your app cost per month?"
Header: "Monthly Price"
Options:
- "$5/month"
- "$10/month"
- "$25/month"
- Other (enter custom amount)
Description: "This is the flat monthly subscription price. AI token usage is billed separately."
Question 2: "Offer a free trial?"
Header: "Free Trial"
Options:
- "No trial"
- "7-day trial"
- "14-day trial"
Description: "Trial lets users try before paying. Stripe handles the trial period automatically."Store: price (number, dollars), trialDays (number, 0/7/14)
Use AskUserQuestion:
Question: "Does your app use AI features?"
Header: "AI Billing"
Options:
- Label: "No AI features"
Description: "Skip AI billing setup"
- Label: "Yes, 2x margin (recommended)"
Description: "Customers pay 2x the model cost. You keep the difference."
- Label: "Yes, 3x margin"
Description: "Higher margin, customers pay 3x model cost."
- Label: "Yes, custom margin"
Description: "Enter your own multiplier."If AI is enabled, explain:
"OpenRouter routes to the underlying provider; the factory worker meters token usage per customer and posts events to a shared Stripe Billing Meter. Your customers will see AI usage as a line item on their monthly invoice alongside the flat subscription fee."
Store: aiMarginPercent (number: 0 for no AI, 200 for 2x, 300 for 3x, etc.)
Use AskUserQuestion:
Question: "What percentage of revenue should flow to token holders? This is locked forever."
Header: "Revenue Share (Alpha)"
Options:
- "10% — Conservative"
- "15% — Balanced"
- "20% — Generous (recommended)"
- "25% — Very generous"
- Other (enter custom %)
Description: "Alpha determines how much of each invoice goes to Vibe Token holders. Higher alpha = more attractive to partners, but less developer take-home. This cannot be changed after launch."Store: alpha (number, 0.10-0.50)
Auto-calculate remaining parameters:
const k = Math.max((price * 12) / 10_000_000, 0.005);
const preMint = Math.round(100 * price * 12);
const initialPrice = k * Math.sqrt(1000); // price at s_minShow summary and confirm:
Use AskUserQuestion:
Question: "Confirm these token economics? (This is permanent)"
Header: "Token Summary"
Options:
- "Confirm and proceed"
- "Go back and adjust"
Description: |
Revenue Share: {alpha*100}%
Pricing Constant (k): {k}
Treasury Size: {preMint} tokens
Initial Token Price: ${initialPrice.toFixed(4)}
Formula: P = {k} * sqrt(supply)
At 100 subscribers ($X/mo each):
- Monthly revenue: ${price * 100}
- Token holder pool: ${Math.floor(alpha * price * 100 * 100)/100}
- Token price: ${(k * Math.sqrt(1000 + preMint * 0.1)).toFixed(4)}Get the auth token:
TOKEN=$(cat ~/.vibes/auth.json | python3 -c "import sys,json; print(json.load(sys.stdin)['accessToken'])" 2>/dev/null || echo "")Create Stripe Connect account:
curl -s -X POST "https://factory.vibesos.com/connect/onboard" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"appName\": \"$APP_NAME\"}"Expected response: { "ok": true, "url": "https://connect.stripe.com/...", "accountId": "acct_..." }
Open the onboarding URL in the user's browser:
open "$ONBOARD_URL" # macOSPoll for completion:
while true; do
STATUS=$(curl -s "https://factory.vibesos.com/connect/status/$APP_NAME" \
-H "Authorization: Bearer $TOKEN")
COMPLETE=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('complete', False))")
if [ "$COMPLETE" = "True" ]; then
echo "Stripe Connect onboarding complete!"
break
fi
sleep 5
doneStore: stripeConnectAccountId from the response
curl -s -X POST "https://factory.vibesos.com/app/configure" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"appName\": \"$APP_NAME\",
\"stripeConnectAccountId\": \"$ACCOUNT_ID\",
\"price\": $PRICE,
\"aiMarginPercent\": $AI_MARGIN,
\"vibeToken\": {
\"alpha\": $ALPHA,
\"k\": $K,
\"preMint\": $PREMINT
}
}"VIBES_ROOT="${CLAUDE_PLUGIN_ROOT:-$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")}"
bun "$VIBES_ROOT/scripts/assemble-factory.js" app.jsx index.html \
--app-name "$APP_NAME" \
--app-title "$APP_TITLE" \
--domain "$APP_NAME.vibesos.com" \
--tagline "$TAGLINE" \
--subtitle "$SUBTITLE" \
--billing-mode "required" \
--features "$FEATURES_JSON" \
--admin-ids '[]'VIBES_ROOT="${CLAUDE_PLUGIN_ROOT:-$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")}"
bun "$VIBES_ROOT/scripts/deploy-cloudflare.js" \
--name "$APP_NAME" \
--file index.htmlcurl -s -X POST "https://factory.vibesos.com/token/$APP_NAME/initialize" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"The initialize endpoint reads the billing config from KV and creates the VibeTokenDO with the correct alpha, k, and preMint values.
curl -s -o /dev/null -w "%{http_code}" "https://$APP_NAME.vibesos.com"Expected: 200
Use AskUserQuestion:
Question: "Would you like to generate invite codes for distribution partners now?"
Header: "Distribution Partners"
Options:
- Label: "Yes, generate invites"
Description: "Create shareable codes that grant Vibe Tokens to whoever claims them."
- Label: "Skip for now"
Description: "You can generate codes later from the dashboard."If generating invites:
Use AskUserQuestion (repeatable):
Question: "How many tokens should this invite grant?"
Header: "Invite tokens"
Options:
- "500 tokens"
- "1000 tokens"
- "2500 tokens"
- Other (enter amount)For each invite, call the API:
RESULT=$(curl -s -X POST "https://factory.vibesos.com/invite/create" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"appName\": \"$APP_NAME\", \"tokens\": $TOKEN_AMOUNT}")
CODE=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['code'])")
URL=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['url'])")
echo "Share this URL: $URL"Output:
Invite 1: {CODE} — {TOKENS} tokens
Claim URL: {URL}Present the final summary:
Your app factory is live!
App URL:
https://{appName}.vibesos.comDashboard:https://factory.vibesos.com/dashboard/apps/{appName}Configuration:
- Monthly price: ${price}/mo
- AI margin: {aiMarginPercent}%
- Revenue share (alpha): {alpha*100}%
- Treasury: {preMint} tokens
- Token price: ${initialPrice.toFixed(4)}
What happens next:
- Customers subscribe at your landing page
- Revenue auto-distributes to token holders
- Referrers earn new tokens from customers they bring
- Monthly payouts transfer earnings to Stripe Connect accounts
- Manage everything at the dashboard
Question: "Your factory is deployed! What would you like to do?"
Header: "Next"
Options:
- Label: "Open dashboard"
Description: "View your app at factory.vibesos.com/dashboard"
- Label: "Grant more tokens"
Description: "Invite additional distribution partners"
- Label: "Customize landing page"
Description: "Adjust colors, tagline, and features"
- Label: "I'm done for now"
Description: "Your factory is live and accepting customers"© popmechanic, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/factory of popmechanic/VibesOS.
Open the folder on GitHubat commit 5baf8a2
Factory next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Factory this skillpopmechanic/VibesOS | 135 | — | ~3.1k | Automated safety check: Notes | MIT | |
| Design Craftkipperacademy/skillpper | 144 | — | ~3.8k | Automated safety check: Pass | None | |
| Money Productiamzifei/show-me-the-money | 1k | — | ~6.2k | Automated safety check: Notes | Custom licence | |
| Premium Web Designdavila7/claude-code-templates | 32k | — | ~15k | Automated safety check: Pass | MIT | |
| Frontendjh941213/my-cc-harness | 126 | — | ~661 | Automated safety check: Notes | None | |
| Impeccablebestofjs/bestofjs | 3.1k | 27 repos | ~2.6k | Automated safety check: Pass | MIT |
kipperacademy/skillpper
Opinionated product-design skill for building, reviewing, polishing, and iterating on landing pages, apps, dashboards, AI products, design systems, and brand touchpoints.
iamzifei/show-me-the-money
Build the actual product — from landing page to deployed MVP with payment integration, QA testing, and post-deploy canary monitoring.
davila7/claude-code-templates
Create premium, Awwwards-quality website designs as React (.jsx) components that look like they were built by a top-tier agency charging $50k+ per project.
jh941213/my-cc-harness
Big-tech style (Stripe, Vercel, Apple) UI development. An agent skill from jh941213/my-cc-harness.
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
oso95/scroll-world
Builds a scroll-driven landing page where a pre-rendered camera flies through connected AI-generated scenes, using Higgsfield for stills and video clips.
popmechanic/VibesOS
Self-contained app generator — invoke this skill directly, do not decompose into sub-steps.
popmechanic/VibesOS
Self-contained deploy automation — invoke directly, do not decompose.
popmechanic/VibesOS
Self-contained design transformer — invoke directly, do not decompose.
popmechanic/VibesOS
Self-contained SaaS pipeline — invoke directly, do not decompose.
popmechanic/VibesOS
Self-contained parallel generator — invoke directly, do not decompose.
popmechanic/VibesOS
Lightweight requirements gathering before app generation. An agent skill from popmechanic/VibesOS.
Works with
Categories
Self-contained SaaS pipeline — invoke directly, do not decompose. Factory is an agent skill from popmechanic/VibesOS. Self-contained SaaS pipeline — invoke directly, do not decompose.
Factory fits situations like: the user wants to monetize an app; create token-backed revenue sharing; turn an app into a business.
Run `npx skills add popmechanic/VibesOS --skill factory -a claude-code`. Or copy the skill folder (skills/factory in popmechanic/VibesOS) into .claude/skills/factory in your project. Claude Code loads it when a task matches its description.
Run `npx skills add popmechanic/VibesOS --skill factory -a codex`. Or copy the skill folder (skills/factory in popmechanic/VibesOS) into .agents/skills/factory in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add popmechanic/VibesOS --skill factory -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/factory, .gemini/skills/factory, .github/skills/factory and .opencode/skills/factory in your project.
Going by SKILL.md and its folder, Factory needs TypeScript for the scripts in its folder and the command-line tools its instructions call (curl, python3 and bun). Our summary lists: Python 3; Node.js. Its frontmatter pre-approves these tools: Read, Write, Bash, Glob, AskUserQuestion.
SKILL.md names 2 domains. In commands or code: factory.vibesos.com and connect.stripe.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Factory is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Factory: Design Craft (kipperacademy/skillpper, 144 stars), Money Product (iamzifei/show-me-the-money, 1k stars), Premium Web Design (davila7/claude-code-templates, 32k stars) and Frontend (jh941213/my-cc-harness, 126 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
popmechanic (a GitHub user) maintains it in popmechanic/VibesOS, which has 135 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on July 27, 2026.
Source: popmechanic/VibesOS on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.