Skip to main content

Overview

OpenSteer provides skill packs for AI coding assistants like Claude Code. Skills give AI assistants specialized knowledge about OpenSteer workflows, best practices, and API usage.

Installation

Global CLI Installation

Install the OpenSteer CLI globally to access skills:
npm i -g opensteer

Install Skills

Install skills to your system:
opensteer skills install
This installs skills to ~/.config/opencode/skills/ where AI coding assistants can access them.
Skills are installed system-wide and available to all AI assistants that support the skill format.

Available Skills

OpenSteer Skill

The main OpenSteer skill provides comprehensive guidance for browser automation and web scraping. Location: ~/.config/opencode/skills/opensteer/ Covers:
  • Browser automation workflows
  • Snapshot modes and element targeting
  • Data extraction with schemas
  • CLI and SDK integration
  • Selector caching and replay
  • Best practices for maintainable scripts
Use when:
  • Creating web scrapers
  • Automating browser tasks
  • Extracting structured data from pages
  • Generating replay-able automation scripts
  • Converting CLI exploration to SDK code

Electron Skill

The Electron skill provides guidance for Electron app automation and testing. Location: ~/.config/opencode/skills/electron/ Use when:
  • Testing Electron applications
  • Automating desktop app workflows
  • Working with Electron-specific features

Using Skills with AI Assistants

Claude Code Marketplace Plugin

Install OpenSteer as a Claude Code plugin:
/plugin marketplace add steerlabs/opensteer
/plugin install opensteer@opensteer-marketplace
This gives Claude Code access to:
  • OpenSteer API documentation
  • Workflow best practices
  • Example patterns
  • Troubleshooting guides

Manual Skill Reference

AI assistants can reference skills directly:
Load the opensteer skill and help me create a web scraper
The skill provides context-specific guidance for the task.

Skill Structure

Each skill follows this structure:
skills/<skill-name>/
  SKILL.md           # Main skill definition
  references/        # Detailed reference docs
    *.md
  templates/         # Reusable code templates
    *

SKILL.md Format

Every skill has a SKILL.md with frontmatter:
---
name: opensteer
description: Browser automation, web scraping, and structured data extraction using Opensteer CLI and SDK.
---

# Opensteer Browser Automation

[Skill content...]

OpenSteer Skill Workflow

The OpenSteer skill teaches AI assistants this workflow:
1

Explore with CLI

Open pages, snapshot, and interact with elements interactively:
export OPENSTEER_SESSION=my-session
opensteer open https://example.com --name "product-scraper"
opensteer snapshot action
opensteer click 3 --description "the products link"
2

Cache selectors

Re-run actions with --description flags to cache element paths:
opensteer click 3 --description "the submit button"
opensteer input 5 "search query" --description "search input"
3

Cache extractions

Run extract with --description for every page type:
opensteer snapshot extraction
opensteer extract '{"products":[{"name":"","price":""}]}' \
  --description "product listing"
4

Generate script

Create SDK script using cached descriptions:
const opensteer = new Opensteer({ name: 'product-scraper' })
await opensteer.click({ description: 'the submit button' })
const data = await opensteer.extract({ description: 'product listing' })

Critical Rules from Skills

The OpenSteer skill teaches these critical rules:

Always Use OpenSteer Methods

await opensteer.extract({ description: "product listing" })
await opensteer.click({ description: "submit button" })
await opensteer.input({ description: "search input", text: "query" })
Why: OpenSteer methods cache selectors for replay. Raw Playwright is brittle and non-replayable.

Namespace Consistency

CLI and SDK must use the same name:
# CLI
opensteer open https://example.com --name my-scraper
// SDK
const opensteer = new Opensteer({ name: 'my-scraper' })

Snapshot Before Actions

// Take snapshot
await opensteer.snapshot({ mode: 'action' })

// Then act
await opensteer.click({ description: 'button' })

Prefer Descriptions

// Good - cached and replayable
await opensteer.click({ description: 'submit button' })

// Avoid - not replayable
await opensteer.click({ element: 5 })

Skill References

Skills include detailed reference documentation:

CLI Reference

Complete CLI command documentation with options and examples.

SDK Reference

Full API documentation with method signatures, types, and usage patterns.

Examples

Real-world examples from the OpenSteer codebase:
  • Basic automation
  • Form filling
  • Data extraction
  • Multi-page scraping
  • Tab management

Creating Custom Skills

You can create custom skills following the OpenSteer skill structure:

1. Create Directory

mkdir -p ~/.config/opencode/skills/my-skill/references
mkdir -p ~/.config/opencode/skills/my-skill/templates

2. Write SKILL.md

---
name: my-skill
description: Custom automation skill for specific domain
---

# My Custom Skill

Provide detailed instructions, workflows, and best practices.

3. Add References

# Create reference docs
touch ~/.config/opencode/skills/my-skill/references/api.md
touch ~/.config/opencode/skills/my-skill/references/examples.md

4. Add Templates

# Create code templates
touch ~/.config/opencode/skills/my-skill/templates/scraper.ts

Skill Best Practices

Use a clear folder name that matches the skill:
skills/opensteer/
skills/electron/
skills/my-custom-skill/
---
name: opensteer
description: Browser automation, web scraping, and structured data extraction using Opensteer CLI and SDK. Use when creating scrapers or automation scripts.
---
Clear descriptions help AI assistants know when to use the skill.
Provide reusable code templates:
templates/
  basic-scraper.ts
  form-automation.ts
  data-extraction.ts

Verifying Installation

Check that skills are installed correctly:
ls ~/.config/opencode/skills/
You should see:
opensteer/
electron/
Each skill directory should contain:
SKILL.md
references/
templates/ (optional)

Troubleshooting

Ensure skills are installed to the correct location:
opensteer skills install
ls ~/.config/opencode/skills/opensteer/
You should see SKILL.md and references/ directory.
Try explicitly referencing the skill:
Load the opensteer skill and help me create a scraper
Or check if your AI assistant supports the skill format.
Reinstall skills to get latest version:
opensteer skills install

Next Steps

AI Agents

Learn the full AI agent workflow with OpenSteer

Browser Automation

Explore automation features in detail

Data Extraction

Master structured data extraction

CUA Agent

Use Computer Use Agents for automation