Pika-Skills: When Markdown Becomes the Meeting Stack for AI Agents

A lightweight skill framework that turns a handful of files into a real-time avatar, voice, and context pipeline for autonomous agents.

10 min read • View on GitHub • More from Pika-Labs

A wide editorial illustration of an open Markdown file on a desk connected by fine lines to a live meeting avatar, voice waveforms, and a calendar window. The scene explains how a skill file can act like a control plane for agent behavior instead of ordinary documentation.
Pika-Skills treats `SKILL.md` as the thing that steers the system, not just the thing that explains it.
Key Takeaways

Most repos advertise a feature. This one advertises a behavior model. `Pika-Skills` is interesting because it treats `SKILL.md` as an execution layer, not a readme, and that changes the shape of the whole system.

The repository is small on purpose. A skill directory, a Python script, a few assets, and local state folders are enough to make an agent join a live meeting with an avatar, a voice, and some memory of who it is supposed to be.

Today, we’re making it possible to have a face-to-face, real-time conversation with any AI agent. Because we believe that most people would prefer to to interact with AI as they do with other humans.

Pika Team, Authoring Team · Introducing Real-Time Video Chat for Agents

The weird trick: the agent reads its own instructions

The core idea is plain and strange at the same time. `SKILL.md` is not just documentation for humans. It is a behavioral spec for the agent, telling it what to do first, what to ask before proceeding, what state to preserve, and when to hand off to Python.

---
name: pikastream-video-meeting
purpose: Join a video meeting as a real-time avatar with preserved identity and context
---

1. Confirm the meeting link.
2. Infer the platform.
3. Check identity state.
4. Check funding state.
5. Synthesize context.
6. Launch the meeting workflow.

That is the interesting inversion. The script is plumbing. The Markdown is policy, sequencing, and product intent. In older software, instructions explain the code. Here, instructions decide the code path.

What Pika-Skills actually installs

The repo is built as a modular skill system. `SKILL.md` defines the workflow, `scripts/` does the API work, `assets/` holds static pieces like placeholders, and local folders such as `identity/` and `life/` keep state across sessions.

The join flow is really a gated state machine. Each step decides whether the agent can continue or needs to repair something first.

That split matters. The repo keeps the local surface area thin, while the heavy lifting lives behind the Pika Developer API. It is a skill that behaves like software, but installs like content.

How a meeting join turns into a guided workflow

The join flow starts with something simple: a meeting URL. From there, the skill infers the platform, checks whether identity assets already exist, verifies whether the voice clone is still fresh enough to use, and then asks whether the account is funded.

def infer_platform(url: str) -> str:
    if "meet.google.com" in url:
        return "google_meet"
    if "zoom.us" in url:
        return "zoom"
    raise ValueError("Unsupported platform")


def ensure_funded() -> bool:
    balance = get_balance()
    if balance > 0:
        return True
    checkout_url = create_checkout()
    raise RuntimeError(f"Add credits first: {checkout_url}")

This is why the repo reads less like a demo and more like a guarded workflow. Failure states are explicit. The skill does not just try things and hope for the best. It stops, checks, and asks for help before the user sees a broken join.

A close-up editorial illustration of a tiny wallet, a credit meter, and a checkout path feeding into a meeting room doorway. The image explains how the skill checks funding before entering a workflow, so billing becomes part of the operating loop rather than an afterthought.
The billing logic is part of the workflow, which is rare and practical. It keeps the agent from failing in the middle of the experience.

Why the identity layer matters more than the video layer

The avatar is the visible part, but the real product question is continuity. The skill tracks identity assets, watches for stale cloned voices, and preserves local state so the agent does not feel like a new instance every time it enters a room.

That makes the system socially interesting. A meeting presence is not just a face. It is a coherent representative that can carry tone, context, and memory from one session to the next.

The self-funding loop

The most unusual engineering decision in the repo may be `ensure_funded()`. It checks credits before the workflow gets far enough to embarrass the user, then pushes a checkout path into the flow if needed.

LayerTypical agent stackPika-Skills
Instruction modelPrompt or docs for humansMarkdown as behavior spec
RuntimeAgent loops and scriptsAgent loop plus skill-defined state machine
BillingExternal and separateChecked inside the workflow
IdentityUsually transientPersisted across sessions
Meeting presenceNot nativeFirst-class skill outcome

This matters because it changes the failure mode. The system would rather pause for credits than collapse halfway through a join. That is a small thing until you try to ship an agent that has to behave in front of other people.

What this changes compared with other agent stacks

Compared with terminal-first agents like AutoGPT-style systems, Pika-Skills is not trying to be a general autonomous worker. Compared with closed avatar platforms like Tavus or HeyGen, it is not just an application layer. Its wager is that skills should be installable, portable, and readable by agents that already exist.

Tool typeExecution modelBrain lives inReal-time videoIdentity and contextBilling first-class
Pika-SkillsInstallable skill workflowSKILL.md plus scriptsYesYesYes
Claude Code / OpenClawGeneral agent frameworkAgent runtimeNo native supportExternalNo
Tavus / HeyGenClosed avatar APIVendor platformYesPlatform-managedUsually external
AutoGPT-style agentsTerminal task loopPrompt and tool chainNoTransientNo

The deeper contrast is not features. It is packaging. Pika-Skills packages behavior as something you can drop into an agent environment, which is a very different product idea from a standalone app.

The bigger pattern: software for agents, not just software used by agents

The strategic signal here is bigger than one meeting demo. If Markdown can describe a workflow tightly enough for an agent to execute it, then the next generation of software may look less like apps and more like skills: portable, constrained, stateful, and legible to machines.

That is why this repo feels small and consequential at the same time. The code does not just connect to a service. It suggests a format for agent-ready software, where the instruction file is the interface, the runtime, and the spec.