SkillAgentSearch skills...

pikastream-video-meeting

Join a Google Meet or Zoom call as a video meeting agent via PikaStreaming. Trigger: user drops a Google Meet or Zoom link, or asks to join a meeting.

Install / Use

npx skills add Pika-Labs/Pika-Skills --skill pikastream-video-meeting

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

89/100

Supported Platforms

Universal

Our assessment of pikastream-video-meeting

pikastream-video-meeting scores 89/100 on our quality scale, 1388th of 4,610 Development & Engineering skills we index (top 31%).

Its SKILL.md is 5.3 KB long, well organised into 8 sections with 4 code examples: a solid amount of guidance for an agent.

With 1,163 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
26/30
Structure
20/20
Description
15/15
Adoption
13/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 3 months ago, so pikastream-video-meeting is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

pikastream-video-meeting compared with similar skills

All 4 of these similar skills score higher than pikastream-video-meeting; compare them before choosing.

SkillScoreStarsUpdatedFormat
pikastream-video-meeting (this skill)by Pika-Labs891.2k3mo agoSKILL.md
Agent-Reachby Panniantong10089.0k17d agoCLAUDE.md
headroomby headroomlabs-ai10074.3ktodayCLAUDE.md
ai-job-searchby MadsLorentzen10044.8ktodayCLAUDE.md
claude-howtoby luongnv8910041.7k3d agoCLAUDE.md

Frequently asked questions

How do I install pikastream-video-meeting?
Run npx skills add Pika-Labs/Pika-Skills --skill pikastream-video-meeting. The install tabs above show the steps for each supported agent.
Which AI agents does pikastream-video-meeting work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is pikastream-video-meeting safe to use?
It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is pikastream-video-meeting still maintained?
The repository was last updated about 3 months ago, so pikastream-video-meeting is actively maintained.

name: pikastream-video-meeting description: | Join a Google Meet or Zoom call as a video meeting agent via PikaStreaming. Trigger: user drops a Google Meet or Zoom link, or asks to join a meeting. metadata: openclaw: requires: env: ["PIKA_DEV_KEY"] bins: ["python3"] primaryEnv: "PIKA_DEV_KEY"

PikaStream Video Meeting

Script: SKILL_DIR=skills/pikastream-video-meeting

First-Time Setup

Run once when the skill is first loaded:

pip install -r $SKILL_DIR/requirements.txt

1. Avatar

Check if identity/videomeeting-avatar.png exists and is larger than 1 KB. If it does NOT exist (or is too small):

  1. Ask the user: I need an avatar image for the video meeting (a headshot or portrait). Send me an image, or say "generate" and I'll create one for you.
  2. Do not proceed until the user responds. Do not auto-generate.
  3. User sends an image: save it to identity/videomeeting-avatar.png.
  4. User says "generate": run:
    python $SKILL_DIR/scripts/pikastreaming_videomeeting.py generate-avatar \
      --output identity/videomeeting-avatar.png
    
    If the user describes what they want (e.g. "a cartoon cat"), pass --prompt "<description>, portrait headshot suitable for video calls". Show the generated image. Ask: Want to keep this avatar or regenerate? Wait for reply.
  5. Anything else: repeat the question from step 1.

The bot must have an avatar before joining a meeting.

2. Voice

Check if life/voice_id.txt exists and is non-empty.

If it exists: read life/voice_config.json. If readable, check cloned_at — if 6+ days ago, warn the user: Your voice clone was created on {date} and may have expired (cloned voices are deleted after 7 days of non-use). Want to re-clone with a new recording, or try the existing one?

  • Re-clone: go to "If it does not exist" below.
  • Keep it: use the existing voice ID.

If life/voice_config.json is missing or unreadable, use the voice ID from life/voice_id.txt as-is.

If it does not exist (or user chose to re-clone):

  1. Ask the user: I don't have a voice clone yet. You can: (a) send me a voice recording (10s-5min, clear speech) and I'll clone it, or (b) say "skip" to use a default voice.
  2. Do not proceed until the user responds.
  3. User says "skip": use English_radiant_girl.
  4. User sends an audio file: run:
    python $SKILL_DIR/scripts/pikastreaming_videomeeting.py clone-voice \
      --audio <file> --name <bot-name> --noise-reduction
    
    • Exit 0: read life/voice_id.txt. Tell user: Voice cloned. Using {voice_id} for this meeting.
    • Exit non-zero: tell user cloning failed (include stderr). Ask: Try again with a different file, or skip and use the default voice?
  5. Invalid file (not audio): respond That doesn't look like a supported audio file. Send an mp3, m4a, wav, ogg, flac, or aac file (10s-5min of clear speech). Wait for retry or "skip".

Join Flow

Step 1 — Validate & gather context

Avatar: check identity/videomeeting-avatar.png exists and is > 1 KB. If not, run First-Time Setup above.

Voice: check life/voice_id.txt exists. If not, run the Voice section of First-Time Setup above.

Context: always gather fresh context — do not reuse a stale file from a previous session.

  1. Read your workspace files (MEMORY.md, daily logs, identity files, etc.).
  2. If no workspace data is available, ask the user: What name should the bot use in this meeting? Use their answer for the Name: field. Fill in any other sections you know from the conversation.
  3. Synthesize a concise reference card to /tmp/meeting_system_prompt.txt. Use {name} as the bot's display name (also used as --bot-name). If data is thin (e.g. only a name), keep it short — don't pad with filler.
Synthesize the raw data below into a concise reference card for {name} to use during a voice/video call. Use third-person ("{name}") throughout. Prioritize CONCRETE DETAILS.

PRIORITY ORDER:
1. SPECIFIC FACTS: names, places, dates, numbers, events
2. RECENT ACTIVITY: what happened today/this week — actions, not vibes
3. RELATIONSHIPS: who matters, specific interactions
4. PERSONALITY: 1-2 sentences MAX

CURATION RULES:
- KEEP: anything with a proper noun, a number, a date, or a concrete action
- DROP: vague descriptions, routine status updates, empty entries
- MERGE: if multiple entries say similar things, pick the most vivid one

OUTPUT FORMAT:

**{name}**: [1 sentence — tone/vibe]

**Known facts** (concrete only, max 10):
- [specific fact with names/dates/numbers]

**Recent activity**:
- [built X, fixed Y, went to Z]

**Right now**: [1 line — current activity]

**People**: [name — 1 specific detail each]

RULES:
- Concrete > abstract
- Actions > descriptions
- Do not invent facts
- If data is thin, keep it short

Step 2 — Join

python $SKILL_DIR/scripts/pikastreaming_videomeeting.py join \
  --meet-url <url> --bot-name <name> \
  --image identity/videomeeting-avatar.png \
  --system-prompt-file /tmp/meeting_system_prompt.txt \
  --voice-id <id> [--meeting-password <pw>]

Tell the user you're in. Say leave to leave. Don't mention session IDs.

Exit codes: 0 = joined. 6 = insufficient credits (stdout JSON contains a checkout_url — show it to the user).

Leave

python $SKILL_DIR/scripts/pikastreaming_videomeeting.py leave \
  --session-id <id from join output>

Related Skills

View on GitHub
GitHub Stars1.2k
CategoryDevelopment
Updated2mo ago
Forks173

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions