Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Init

ASecurity

Sets up the entire Gradient Bang local development environment from a fresh clone.

419 stars
0 votes
0 copies
0 views
Added 9/20/2026
ai-agentspythongobashsqlnodedockerapidatabase

Works with

terminalcliapi

Security Analysis

A96/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add pipecat-ai/gradient-bang --skill init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Init?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pipecat-ai-init/badge)](https://www.skillsdirectory.com/skills/pipecat-ai-init)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
# Init — Full Project Setup from Scratch

Sets up the entire Gradient Bang local development environment from a fresh clone.

## Prerequisites

Before running this skill, the user must have:
- **Docker** running
- **uv** installed
- **Node.js 18+** installed
- **pnpm** installed

Verify these are available before proceeding. If any are missing, tell the user what to install and stop.

## Steps

### 1. Install Python dependencies

```bash
uv sync --all-groups
```

### 2. Start the local Supabase stack

This downloads and runs all Supabase Docker services. It can take a few minutes on first run.

```bash
npx supabase start --workdir deployment/
```

Redirect output to a file and monitor progress:
```bash
npx supabase start --workdir deployment/ > /tmp/supabase-start.log 2>&1
```

Wait for it to complete successfully. If it fails, show the user the log output.

### 3. Create `.env.supabase`

Only create this file if it does NOT already exist. If it exists, ask the user whether to overwrite it.

Generate the file by extracting keys from the running Supabase instance:

```bash
tok=$(openssl rand -hex 32)
npx supabase status -o env --workdir deployment | awk -F= -v tok="$tok" '
  $1=="API_URL"           {v=$2; gsub(/"/,"",v); print "SUPABASE_URL=" v}
  $1=="ANON_KEY"          {v=$2; gsub(/"/,"",v); print "SUPABASE_ANON_KEY=" v}
  $1=="SERVICE_ROLE_KEY"  {v=$2; gsub(/"/,"",v); print "SUPABASE_SERVICE_ROLE_KEY=" v}
  END {
    print "POSTGRES_POOLER_URL=postgresql://postgres:postgres@db:5432/postgres"
    print "EDGE_API_TOKEN=" tok
    print ""
    print "# Optional overrides"
    print "BOT_START_URL= # used in start function to specify bot start URL. #default: \"http://host.docker.internal:7860/start\""
    print "BOT_START_API_KEY= # used in start function to authenticate start request. #default: None"
    print ""
    print "MOVE_DELAY_SCALE=0.25"
  }
' > .env.supabase
```

Verify the file was created and contains non-empty values for `SUPABASE_URL`, `SUPABASE_ANON_KEY`, and `SUPABASE_SERVICE_ROLE_KEY`. If any are empty, something went wrong — show the user and stop.

### 4. Install combat cron

Source the env file, then run the cron setup script. This resets the database and seeds combat cron runtime config into `app_runtime_config`.

```bash
set -a && source .env.supabase && set +a
scripts/supabase-reset-with-cron.sh
```

Redirect output to a file:
```bash
scripts/supabase-reset-with-cron.sh > /tmp/supabase-reset-cron.log 2>&1
```

Check the log for the `[reset] Done.` message to confirm success.


### 5. Generate world data and load into Supabase

Generate a universe (5000 sectors, seed 1234) and load it plus quest definitions:

```bash
set -a && source .env.supabase && set +a
uv run universe-bang 5000 1234
uv run -m gradientbang.scripts.load_universe_to_supabase --from-json tmp/world-data/
uv run -m gradientbang.scripts.load_quests_to_supabase
```

Redirect output and check for errors. These commands can take a minute.

### 6. Open Supabase Studio

Open the local Supabase Studio dashboard in the browser:

```bash
open http://127.0.0.1:54323
```

### 7. Create `.env.bot` from example

Only create this file if it does NOT already exist. If it exists, ask the user whether to overwrite it.

Start by copying the example:
```bash
cp env.bot.example .env.bot
```

The `.env.bot` file needs values from two sources:

**Auto-populated from `.env.supabase`** (fill these in automatically):
- `SUPABASE_URL` — copy from `.env.supabase`
- `SUPABASE_SERVICE_ROLE_KEY` — copy from `.env.supabase`
- `EDGE_API_TOKEN` — copy from `.env.supabase`

**Required API keys — prompt the user for these:**
- `DEEPGRAM_API_KEY` — for speech-to-text (https://console.deepgram.com)
- `CARTESIA_API_KEY` — for text-to-speech (https://play.cartesia.ai)
- `GOOGLE_API_KEY` — for Gemini LLM, used by voice and UI agent (https://aistudio.google.com/apikey)
- `ANTHROPIC_API_KEY` — for Claude LLM, used by task agent (https://console.anthropic.com)
- `OPENAI_API_KEY` — for OpenAI models (https://platform.openai.com/api-keys)

Use AskUserQuestion to collect these keys one prompt at a time. For each key, show the service name and where to get it. If the user provides a value, write it into `.env.bot`. If the user skips a key (empty response), leave it blank in the file and warn them which bot features won't work without it.

After filling in the keys, use `sed` or similar to update the values in `.env.bot`.

### 7b. Choose pipecat transport (Daily vs SmallWebRTC)

Ask the user which transport to use with AskUserQuestion. Default/recommended is **smallwebrtc** (no extra accounts needed). Pick **daily** if the user wants WebRTC via Daily.co rooms (requires `DAILY_API_KEY`).

Save the choice for use in step 8 (it determines the `-t` flag for `uv run bot` and the `VITE_PIPECAT_TRANSPORT` value).

If the user picked **daily**:
- Confirm `DAILY_API_KEY` is set in `.env.bot` (the env.bot.example already lists it; if blank, prompt the user for it the same way as the other API keys in step 7).
- Write `VITE_PIPECAT_TRANSPORT=daily` to `client/app/.env.local` (create the file if missing; if it exists with a different value, ask before overwriting).

If the user picked **smallwebrtc**:
- No client env file needed (the client defaults to smallwebrtc). If `client/app/.env.local` already exists with `VITE_PIPECAT_TRANSPORT=daily`, ask whether to remove/change it.

### 8. Summary

Print a summary of what was set up:
- Supabase is running (Studio at http://127.0.0.1:54323)
- `.env.supabase` created
- Combat cron installed
- World data loaded (5000 sectors)
- `.env.bot` created (list which API keys were provided vs skipped)

Then tell the user the next steps to start developing:
```
# Terminal 1: Edge functions
npx supabase functions serve --workdir deployment --no-verify-jwt --env-file .env.supabase

# Terminal 2: Bot
#   - smallwebrtc transport (default):
set -a && source .env.bot && set +a && uv run bot --host 0.0.0.0
#   - daily transport:
set -a && source .env.bot && set +a && uv run bot --host 0.0.0.0 -t daily

# Terminal 3: Client
cd client && pnpm i && pnpm run dev

# Then open http://localhost:5173
#   - To force daily on a single load without setting VITE_PIPECAT_TRANSPORT:
#     http://localhost:5173/?transport=daily
```

Substitute the bot command for whichever transport the user picked in step 7b. If they picked **daily**, the `VITE_PIPECAT_TRANSPORT=daily` written to `client/app/.env.local` makes the client match without the `?transport=` query param.

## Important notes

- All long-running script output should be redirected to files. Do NOT use `tee`.
- If `.env.supabase` or `.env.bot` already exist, always ask before overwriting.
- The `supabase-reset-with-cron.sh` script runs `supabase db reset`, which wipes the database — this is expected for a fresh setup.
- The bot requires at minimum `GOOGLE_API_KEY` (voice LLM) or `ANTHROPIC_API_KEY` (task LLM) to be functional. Warn if neither is provided.

Attribution

pipecat-aipipecat-ai
View sourceMore from pipecat-ai →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

1023331 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →