Skip to content
Back to skills

Unicli Operate

ASecurity

Compatibility guide for `unicli operate`. Prefer `unicli browser`, which now exposes the same operator surface plus daemon/session diagnostics.

  • 270 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
developmentgobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add olo-dot-io/Uni-CLI --skill unicli-operate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Unicli Operate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Unicli Operate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/olo-dot-io-unicli-operate/badge)](https://www.skillsdirectory.com/skills/olo-dot-io-unicli-operate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: unicli-operate
description: >
  Compatibility guide for `unicli operate`. Prefer `unicli browser`, which now
  exposes the same operator surface plus daemon/session diagnostics.
version: 1.0.0
triggers:
  - "operate browser"
  - "click element"
  - "fill form"
  - "extract page data"
  - "unicli operate"
allowed-tools: [Bash]
protocol: 2.0
---

## When to Use

Prefer `unicli browser` for new work:

```bash
unicli browser open <url>
unicli browser state
unicli browser click <ref>
unicli browser type <ref> <text>
unicli browser find --css <selector>
unicli browser extract
unicli browser tabs
unicli browser frames
```

`unicli operate ...` still works, but it is now the compatibility path over the same implementation.

## Core Workflow

1. `open` -> navigate to URL
2. `state` -> inspect DOM, get `[ref]` numbers for interactive elements
3. interact -> `click`, `type`, `select`, `keys` using ref numbers
4. verify -> `state` again or `get value <ref>` to confirm
5. extract -> `eval` for structured data

**Always `state` before interacting. Never guess ref numbers.**

## All Operate Subcommands

```bash
# Navigation
unicli operate open <url>             # Navigate to URL
unicli operate back                   # Go back in history
unicli operate scroll [direction]     # down, up, bottom, top
unicli operate close                  # Close automation window

# Inspection
unicli operate state                  # DOM tree with [ref] indices
unicli operate screenshot [path]      # Save visual capture

# Get data
unicli operate get title|url          # Page title or URL
unicli operate get text <ref>         # Element text by ref
unicli operate get value <ref>        # Input value (verify after type)
unicli operate get html [selector]    # Page or scoped HTML
unicli operate get attributes <ref>   # Element attributes

# Interaction
unicli operate click <ref>            # Click element
unicli operate type <ref> <text>      # Type into element
unicli operate select <ref> <option>  # Select dropdown
unicli operate keys <key>             # Press key (Enter, Escape, Control+a)
unicli operate upload <ref> <path>    # Upload file
unicli operate hover <ref>            # Hover over element

# Wait
unicli operate wait time <ms>         # Fixed delay
unicli operate wait selector <sel>    # Until element appears
unicli operate wait text <str>        # Until text appears

# Advanced
unicli operate eval <js>              # Execute JS in page
unicli operate network [pattern]      # Captured network requests
unicli operate observe <query>        # Natural language observation
```

## Patterns

```bash
# Browse + extract
unicli operate open "https://news.ycombinator.com" && unicli operate state
unicli operate eval "JSON.stringify([...document.querySelectorAll('.titleline a')].slice(0,5).map(a=>({title:a.textContent,url:a.href})))"

# Fill form (chain to reduce round trips)
unicli operate type 3 "user@example.com" && unicli operate type 5 "pass" && unicli operate click 7

# API discovery
unicli operate open "https://example.com/feed" && unicli operate wait time 3000
unicli operate network                # See captured JSON APIs
```

## Rules

1. Always `state` first -- never guess refs
2. `eval` is read-only -- never `eval "el.click()"`, use `click <ref>`
3. Verify inputs with `get value <ref>` after `type`
4. Re-inspect after navigation -- run `state` after `open` or link clicks
5. Prefer API over DOM -- if `network` reveals JSON APIs, use YAML adapters

## Troubleshooting

| Problem                | Fix                                     |
| ---------------------- | --------------------------------------- |
| Browser not connected  | `unicli browser doctor --repair`        |
| Element not found      | `scroll down` then `state`              |
| Stale refs after click | `state` to refresh                      |
| eval returns undefined | Wrap: `"(function(){ return ...; })()"` |

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.