Turn your workflows into reusable AI skills. Record your screen or describe a task — the CLI generates structured skills that any AI tool can follow.
Teams are increasingly using AI tools like Claude Code, Codex, and OpenClaw. A common pattern is emerging:
- One person figures out a powerful workflow
- Others struggle to replicate it
- Knowledge gets shared via Slack messages, docs, or copied prompts
- Nothing is standardized or reusable
Even when teams try to create "skills," it's hard — writing structured skill files manually, defining triggers and steps, sharing via GitHub or zip files, installing across different tools.
There is no simple way to capture how someone works and make it reusable across a team — or usable by AI agents.
The Provision CLI solves this. Two ways to create skills:
- Record your screen doing the task → the CLI analyzes the video and extracts every step, URL, click, and decision — including the tacit knowledge you'd never think to write down
- Describe the workflow in plain text → the CLI generates a structured skill definition
Skills install into Claude Code, Cursor, Codex, and OpenClaw agents. Create once, use everywhere.
Provision AI is the platform behind this CLI. While the CLI works standalone with a free Gemini API key, Provision adds the team and agent layers:
Team Skill Library
- Publish skills to a private team registry
- Version control — track changes, iterate together
- Anyone on the team can install any skill into their own tools
- Web UI for non-developers to create skills without a terminal
Cloud Agents
- Deploy AI agents that run your team's skills autonomously — 24/7
- Agents live in Slack, Telegram, and Discord
- Full browser access for web workflows
- Managed infrastructure — no servers to configure
For companies going AI-native, Provision is where your AI workforce lives. Your team builds the skills. Your agents run them.
The CLI is free and open source. Team features and agents require a Provision account.
# No account needed — just a free Gemini API key
GEMINI_API_KEY=your-key npx @provision-ai/cli teach -v my-workflow.mp4
GEMINI_API_KEY=your-key npx @provision-ai/cli teach -d "Search LinkedIn for leads"
# With a Provision account (for team sharing)
npx @provision-ai/cli login
npx @provision-ai/cli teach -v my-workflow.mp4
npx @provision-ai/cli publish linkedin-leadsNo installation required — just prefix commands with npx @provision-ai/cli:
npx @provision-ai/cli teach -d "Monitor Hacker News for AI mentions"npm install -g @provision-ai/cliRequires Node.js 18 or later.
Use the CLI without a Provision account — just set your Gemini API key:
# Video-to-skill
GEMINI_API_KEY=your-key npx @provision-ai/cli teach -v demo.mp4
# Text-to-skill
GEMINI_API_KEY=your-key npx @provision-ai/cli teach -d "Describe your workflow"Get a free Gemini API key at aistudio.google.com/apikey.
Skills created offline are saved locally. To share with your team, log in and publish:
npx @provision-ai/cli login
npx @provision-ai/cli publish my-skillprovision loginOpens your browser to authorize the CLI with your Provision account. Once you click "Authorize," the CLI is logged in automatically.
For CI/CD or environments without a browser:
provision login --tokenGenerate a token at provision.ai/settings/api.
provision whoamiprovision logoutAll commands below use
provision(globally installed). You can also usenpx @provision-ai/cliinstead.
Create a new skill by describing what it should do.
# Interactive mode (opens your editor)
provision teach
# From a text description
provision teach -d "Search LinkedIn for dental offices in Austin, TX and extract their name, phone, and website"
# With a specific name
provision teach -d "Monitor Hacker News for AI mentions" -n hn-monitor
# From a screen recording
provision teach -v demo.mp4Options:
| Flag | Description |
|---|---|
-d, --describe <text> |
Describe the workflow in plain text |
-v, --video <path> |
Learn from a screen recording (MP4, WebM, MOV) |
-n, --name <name> |
Set the skill name (lowercase, hyphens) |
When logged in, the CLI uses the Provision API. In offline mode (with your own API keys), everything runs locally.
After generation, you can choose to:
- Publish to your team on Provision AI (requires login)
- Install to Claude Code (
~/.claude/skills/) - Install to OpenClaw (
~/.openclaw/skills/) - Install to Cursor (
.cursor/skills/) - Install to Codex (
.codex/skills/) - Keep it local only (
~/.provision/skills/)
Record your screen showing the workflow you want the agent to learn:
provision teach -v my-workflow.mp4Supported formats: MP4, WebM, QuickTime (MOV). Max file size: 100MB.
The AI extracts every URL, click, filter, and form input — not just a summary. Add a voice over to capture your reasoning and preferences. For example:
I think your workflow is:
1. Navigate to linkedin.com/sales/home. If not logged in, sign in.
2. Click 'Lead filters' to open the search interface.
3. Click 'Company Headcount' filter, select '11-50'.
4. Click 'Current Job Title', type 'VP of Sales'.
5. Click 'Geography' filter, select 'United States'.
...+27 more steps
Is this correct? [Confirm] [Edit] [Cancel]
Tips for good recordings:
- Add a voice over explaining what you're doing and why
- Show the full flow from start to finish
- Don't worry about mistakes — the AI understands your intent
- Longer videos produce more detailed skills
List all skills saved locally.
provision skills listShow details about a local skill — steps, tools, required env vars.
provision skills info linkedin-leadsEdit an existing skill. Three modes:
# Modify with natural language (AI applies the change)
provision skills edit linkedin-leads -d "Also extract the company's tech stack from their careers page"
# Re-teach from a new video
provision skills edit linkedin-leads -v updated-workflow.mp4
# Open SKILL.md in your editor ($EDITOR or nano)
provision skills edit linkedin-leads -eOptions:
| Flag | Description |
|---|---|
-d, --describe <prompt> |
Modify the skill with natural language instructions |
-v, --video <path> |
Re-teach from a new screen recording |
-e, --editor |
Open SKILL.md in your text editor |
Each edit automatically bumps the patch version (e.g., 1.0.0 → 1.0.1).
Publish a local skill to your team's library on Provision.
provision publish linkedin-leadsIf the skill already exists on the server, the version is automatically bumped:
Updating linkedin-leads v1.0.0 → v1.0.1
✓ Published linkedin-leads to Provision
View at: https://provision.ai/skills/linkedin-leads
Options:
| Flag | Description |
|---|---|
-c, --changelog <message> |
Add a changelog message for this version |
Every publish creates a version history record on the server for auditing.
Install a skill from the Provision marketplace to your local tools. Shows a multi-select menu to choose where to install.
provision install linkedin-leads? Where would you like to install this skill?
◻ Claude Code (~/.claude/skills/)
◻ OpenClaw local (~/.openclaw/skills/)
◻ Cursor (.cursor/skills/)
◻ Codex (.codex/skills/)
Each target gets a proper skill folder with SKILL.md and README.md.
Download a skill to ~/.provision/skills/ without installing to any tool.
provision pull linkedin-leadsSaves to ~/.provision/skills/<name>/.
Deploy a skill to a running Provision agent. The skill is pushed to the agent's server and available immediately.
# Interactive agent selection
provision deploy linkedin-leads
# Specify agent directly
provision deploy linkedin-leads -a agent_id_hereOptions:
| Flag | Description |
|---|---|
-a, --agent <id> |
Agent ID to deploy to (skips selection prompt) |
List your Provision agents and their status.
provision agents# 1. Log in
provision login
# 2. Create a skill
provision teach -d "Search LinkedIn Sales Navigator for dental offices in Austin. Extract practice name, phone, website, and a note on why they need our product."
# 3. Review the generated steps, confirm, and name it
# → Skill saved to ~/.provision/skills/dental-leads/
# 4. Publish to your team
provision publish dental-leads
# 5. Install to Claude Code
provision install dental-leads
# 6. Or deploy to a running Provision agent
provision deploy dental-leads
# 7. Later, iterate on the skill
provision skills edit dental-leads -d "Also check if they have a website form for demo requests"
# 8. Re-publish the updated version
provision publish dental-leads -c "Added website form check"Skills are saved to ~/.provision/skills/<name>/ with:
| File | Purpose |
|---|---|
SKILL.md |
Instructions the agent reads and follows (OpenClaw skill standard) |
skill.json |
Metadata: name, version, steps, required env vars, tools |
README.md |
Human-readable documentation |
The CLI stores config in ~/.provision/:
| File | Purpose |
|---|---|
config.json |
API token and settings |
skills/ |
Local skill files |
To point to a different API (self-hosted or development):
# Edit ~/.provision/config.json and set "apiUrl"git clone https://github.com/provision-org/provision-cli.git
cd provision-cli
npm install
node bin/provision.js --help- Provision AI — Build and share AI skills for your team
- API Tokens — Generate CLI tokens
MIT — see LICENSE for details.