buddy
Deploy apps to Buddy sandboxes, publish artifacts, create tunnels, manage domains, configure distributions, and run CI/CD pipelines using `bdy` CLI. Triggers on: deploy, sandbox, tunnel, expose, artifact, static site, publish, domain, distribution, pipeline, CI/CD.
What this skill does
# Buddy Platform On-demand cloud infrastructure via `bdy` CLI. Run `bdy <command> --help` for flag details. ## Authentication If any command returns `Token not provided` or `Not logged in`: ask the user to run `bdy login` in a **separate terminal** (AI cannot do interactive OAuth). To check if user is logged in run `bdy whoami` ## Sandbox (`bdy sandbox|sb`) Cloud environments for dynamic apps (servers, databases, background processes). ### Critical Rules - Sandboxes must live in a project. Before `sandbox create`, check `bdy whoami` for a project context and the `BUDDY_PROJECT` env var. If neither is set, ask the user (AskUserQuestion) whether to create a new project, then run `bdy proj link -p <project>` to attach it. - Apps MUST bind to `0.0.0.0` (not `127.0.0.1`) for endpoints to work - ALWAYS use `--ignore "node_modules/**" ".git/**"` when copying projects — install deps on sandbox instead. - Preinstalled on Ubuntu 24.04: Node.js 24, Python 3.12, Go 1.25, Git, curl, jq, ripgrep ### Workflow 1. Create: `bdy sandbox create -i <name> --resources 2x4 --wait-for-running` 2. Copy files: `bdy sandbox cp ./src <name>:/app --ignore "node_modules/**" ".git/**" > /dev/null 2>&1` 3. Install deps: `bdy sandbox exec command <name> "cd /app && npm install" --wait` 5. Start app via `app add` (NOT exec — gives you status/logs/restart): `bdy sandbox app add <name> "cd /app && npm start -- -H 0.0.0.0"` 6. Check app: `bdy sandbox app status <name> <app-id>` and `bdy sandbox app logs <name> <app-id>` 7. Add endpoint: `bdy sandbox endpoint add <name> -n web -e <port>` 8. Show the user the public endpoint URL, then ask via AskUserQuestion if they want to attach a custom domain. Options: claim one of the free domains available in Buddy, buy a new domain, or reuse one already in their workspace. Keep the option labels short — don't put CLI commands in them. After the user picks, run the relevant `bdy domain` command and wire it up with `bdy distro route create`. ### Tips - Use `app add` to start services — NOT `exec command`. Apps are managed as systemd services with status, logs, stop, start, restart - `bdy sandbox app list <name>` shows running apps with IDs - Write config files locally, then `sandbox cp` — avoids heredoc escaping issues in exec - Use `sandbox snapshot` to save/restore sandbox state - Use `bdy distro route create` for custom domain routing + cdn ## Artifact (`bdy artifact|art`) Two types of artifacts: - **BUCKET** (default) — versioned file hosting with public URLs. Use for static sites, build outputs, downloadable files - **CONTAINER** — Docker registry. Use for Docker images. Authenticate with `bdy artifact docker login`, then push/pull with standard `docker` commands ### BUCKET Workflow 1. Build if needed: `npm run build` 2. Create artifact: `bdy artifact create <name>` (default type is BUCKET) - Auth is set on creation, not per-version — ask about auth first (HTTP Basic `-a user:pass` / Buddy `-b` / None) 3. Publish with version: `bdy artifact publish <name>@1.0.0 ./dist` - Without version: `bdy artifact publish <name> ./dist` → creates `latest` version 4. Get URL: `bdy artifact version get <name> <version>` 5. Show the user the published URL, then ask via AskUserQuestion if they want to attach a custom domain. Options: claim one of the free domains available in Buddy, buy a new domain, or reuse one already in their workspace. Keep the option labels short — don't put CLI commands in them. After the user picks, run the relevant `bdy domain` command and wire it up with `bdy distro route create`. ### Critical Rules - Main HTML file MUST be named `index.html` (otherwise serves directory listing) - Use `@` or `:` as version separator: `[email protected]` or `my-site:1.0.0` - Use `--force` to overwrite an existing version - Use `--create` to create artifact and publish in one step: `bdy artifact publish -c <name>@1.0.0 ./dist` ### TIPS - Use `bdy distro route create` for custom domain routing + cdn ## Tunnel (`bdy tunnel`) Expose local services to the internet via secure tunnels. ### Critical Rules (MANDATORY) - **ALWAYS** use `run_in_background: true` when running tunnel commands — they block execution - **ALWAYS** ask about authentication via AskUserQuestion before creating HTTP tunnels: - HTTP Basic Auth → `-a user:pass` - Buddy Auth → `--buddy` - No auth → no flag - For Docker: verify the app binds to `0.0.0.0` ### Tips - Save tunnel configs: `bdy tunnel config add http <name> localhost:<port>` - Start saved tunnel: `bdy tunnel start <name>` ## Domain (`bdy domain`) Search, purchase, and manage custom domains. ```bash bdy domain search <query> # Search available domains bdy domain buy <name> # Purchase a domain bdy domain list # List owned domains ``` Run `bdy domain --help` for full options (TLD filters, sorting, etc.). ## Distribution (`bdy distro`) Route traffic across services with custom rules and domains. ### Route Types - **PROXY** / **PROXY_NO_CACHE** — reverse-proxy traffic to a backend. URL shows the distro domain, real paths (`/foo/bar`) are visible and forwarded. Use this for CDN/edge in front of a real app. - **REDIRECT** — HTTP 3xx redirect to another URL. Browser navigates away; final URL shows the target domain. - **CLOAKING** — the distro domain serves a single page that embeds the target as a full-page iframe. URL bar stays on the distro domain regardless of navigation inside the iframe, so the real paths/subpages are never visible ```bash bdy distro create -i <name> # Create distribution bdy distro route create <name> -t PROXY -d <domain> # Add route bdy distro route list <name> # List routes ``` Run `bdy distro --help` for full options. ## Pipeline (`bdy pipeline|pip`) CI/CD pipelines for build, test, and deploy automation. ```bash bdy pipeline list # List pipelines bdy pipeline run start <identifier> # Run a pipeline bdy pipeline run status <identifier> <id> # Check run status bdy pipeline run logs <identifier> <id> <action-id> # View logs ``` Run `bdy pipeline --help` for full options (variables, scheduling, YAML config, etc.).
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.