@oya-ai/cli 1.0.57 → 1.0.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -27
  3. package/package.json +20 -2
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Oya AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,43 +1,185 @@
1
1
  # @oya-ai/cli
2
2
 
3
- The `oya` command: start, drive and watch browsers on the Oya control plane from your terminal.
3
+ <p align="center">
4
+ <strong>The Command-Line Interface for the Oya Browser Control Plane.</strong>
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/@oya-ai/cli"><img src="https://img.shields.io/npm/v/@oya-ai/cli?color=39ed35&label=@oya-ai/cli&logo=npm" alt="NPM Version"></a>
9
+ <a href="https://github.com/OyadotAI/oya-browser/blob/main/packages/cli/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg?color=39ed35" alt="License: MIT"></a>
10
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg" alt="Node Version"></a>
11
+ </p>
12
+
13
+ ---
14
+
15
+ <p align="center">
16
+ <img src="https://raw.githubusercontent.com/OyadotAI/oya-browser/main/assets/cli-demo.svg" alt="oya start, goto, ask and ls in a terminal" width="100%">
17
+ </p>
18
+
19
+ Manage, navigate, benchmark, and watch browser agent instances on Oya Cloud, Browserbase, Steel, Anchor, Browser Use, or your self-hosted Chrome fleet straight from your terminal.
20
+
21
+ Oya does for browser vendors what OpenRouter does for LLM providers: one interface, and the vendor behind it is a setting.
4
22
 
5
23
  ```bash
6
- npm i -g @oya-ai/cli
7
- oya login # paste an API key from browser.getoya.ai
8
- oya init # pick your model, browser provider and sign-ins
24
+ npm install -g @oya-ai/cli
9
25
  ```
10
26
 
11
- ## A session
27
+ ---
28
+
29
+ ## ⚡ 60-Second Setup
12
30
 
13
31
  ```bash
14
- oya start --persona auto # prints the browser id
15
- oya goto https://example.com # defaults to the newest browser
16
- oya ask "Find the pricing page" # drive it in plain language
17
- oya open # watch it live
32
+ # 1. Authenticate with an API key (interactive or via flags)
33
+ oya login
34
+
35
+ # 2. Interactive onboarding: pick your AI model, default browser provider, and solver
36
+ oya init
37
+ ```
38
+
39
+ ---
40
+
41
+ ## 🚀 Everyday Workflow
42
+
43
+ ```bash
44
+ # Start an orchestrated browser with an automatically rotated persona
45
+ oya start --persona auto
46
+ # Output: ✅ oya-8ed39f1c
47
+
48
+ # Navigate to a target website (defaults to your newest active browser)
49
+ oya goto https://news.ycombinator.com
50
+
51
+ # Drive the browser in plain English using your configured LLM
52
+ oya ask "Extract top 3 articles with points and comments"
53
+
54
+ # Open the sub-second interactive live stream in your desktop browser
55
+ oya open
56
+
57
+ # Check real-time health, command logs, and latencies
58
+ oya status
59
+
60
+ # Inspect running fleet instances
61
+ oya ls
62
+
63
+ # Gracefully terminate all active browsers
18
64
  oya rm --all
19
65
  ```
20
66
 
21
- ## Commands
67
+ ---
68
+
69
+ ## 📖 Command Reference
70
+
71
+ ### Fleet Execution & Control
72
+
73
+ | Command | Flags | Description |
74
+ |:---|:---|:---|
75
+ | `oya start` | `[--persona <id\|auto>] [--provider <p>] [--name <n>] [--governed] [--budget-usd <n>]` | Launch browser instance and print its ID and CDP endpoint |
76
+ | `oya goto <url>` | `[--id <id>]` | Navigate to URL (defaults to newest browser) |
77
+ | `oya ask "<prompt>"` | `[--id <id>]` | Drive page using configured AI model |
78
+ | `oya open` | `[--id <id>]` | Launch interactive SSE live view in system browser |
79
+ | `oya ls` | `[--json]` | List active fleet browsers with health status |
80
+ | `oya status` | `[--id <id>] [--json]` | Detailed metrics, error counts, and recent activity log |
81
+ | `oya rm <id>...` | `[--all]` | Terminate target browser or entire fleet |
82
+
83
+ ### Persona Management (Anti-Ban Identities)
84
+
85
+ ```bash
86
+ # List all saved personas and active concurrency
87
+ oya personas
88
+
89
+ # Create a new persona with fixed device parameters
90
+ oya personas new us-shopper --platform MacIntel --tz America/New_York --locale en-US --max 2 --geo US
91
+
92
+ # Preview generated hardware fingerprint without saving
93
+ oya personas new --preview --platform Win32 --tz Europe/London
94
+
95
+ # Clone an existing persona (same hardware fingerprint class, clean cookie jar)
96
+ oya personas clone <id> --name us-shopper-backup
97
+
98
+ # Edit persona concurrency cap or residential proxy geo
99
+ oya personas edit <id> --max 4 --geo US
100
+
101
+ # Delete a persona and its stored cookie jar
102
+ oya personas rm <id>
103
+ ```
104
+
105
+ ### Human-in-the-Loop Takeover
106
+
107
+ When automation encounters hardware 2FA, phone biometric approvals, or complex verification:
108
+
109
+ ```bash
110
+ # 1. Acquire human control lease (pauses agent execution safely)
111
+ oya takeover <browser-id>
112
+
113
+ # 2. Complete manual verification via interactive live view
114
+ oya open --id <browser-id>
115
+
116
+ # 3. Release control when done
117
+ oya release <browser-id>
118
+
119
+ # 4. Acknowledge and resume autonomous agent execution
120
+ oya resume <browser-id>
121
+ ```
122
+
123
+ ### Governance, Auditing & Webhooks
124
+
125
+ ```bash
126
+ # View fleet overview, spend rate cards, and limits
127
+ oya control
128
+
129
+ # Inspect durable sessions (including cleanup-pending or disconnected nodes)
130
+ oya sessions [id]
131
+
132
+ # Force termination of an unresponsive session
133
+ oya stop <id> --force
134
+
135
+ # Read durable append-only lifecycle events
136
+ oya events [--after <cursor>]
137
+
138
+ # Audit hourly token and sandbox spend
139
+ oya usage
140
+
141
+ # Mint scoped service credentials
142
+ oya credential new --role operator --label "ci-runner"
143
+
144
+ # Register an HMAC-signed webhook for fleet lifecycle events
145
+ oya webhook new https://api.mycorp.com/oya-events
146
+ ```
147
+
148
+ ### Stealth Benchmarking
22
149
 
23
- | Command | |
24
- |---|---|
25
- | `oya start [--persona auto] [--provider <p>]` | Start a browser and print its id |
26
- | `oya goto <url>` · `oya ask "<prompt>"` | Navigate · drive it in plain language (`--id` picks a browser) |
27
- | `oya ls` · `oya rm <id> \| --all` | List · stop browsers |
28
- | `oya status` · `oya open` | Health and recent activity · open the live view |
29
- | `oya personas [new \| edit \| clone \| rm]` | Identities: fingerprint + cookies + proxy |
30
- | `oya config [key=value ...]` | Show or change this key's settings |
31
- | `oya sessions` · `oya events` · `oya control` | Durable sessions, lifecycle events, project overview |
32
- | `oya takeover <id>` · `oya release <id>` · `oya resume <id>` | Human control of a running browser |
33
- | `oya members` · `oya credential` · `oya webhook` | Team, service credentials, signed webhooks |
34
- | `oya usage` | What this key has spent |
35
- | `oya stealth-test [--live]` | Score this deployment against bot detectors |
150
+ Benchmark your browser deployment against live detection platforms (CreepJS and Bot.Sannysoft). The harness lives in `server/`, so run this from a checkout of the repo, or set `OYA_SERVER_DIR`:
151
+
152
+ ```bash
153
+ # Run local evasion probe suite
154
+ oya stealth-test
155
+
156
+ # Run live benchmark against detection platforms
157
+ oya stealth-test --live
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 🤖 CI/CD & Headless Environments
163
+
164
+ In automated pipelines (GitHub Actions, GitLab CI, Docker), use flags or environment variables to bypass interactive prompts:
165
+
166
+ ```bash
167
+ export OYA_API_KEY="oya_live_..."
168
+ export OYA_BASE_URL="https://browser.getoya.ai"
169
+
170
+ # Non-interactive launch with JSON output
171
+ oya start --provider browserbase --persona auto --json
172
+ ```
36
173
 
37
- Run `oya help` for every flag.
174
+ | Global Flag | Description |
175
+ |:---|:---|
176
+ | `--key <key>` | Override API key for command |
177
+ | `--url <url>` | Override control plane URL |
178
+ | `--id <id>` | Target specific browser instance ID |
179
+ | `--json` | Output pure JSON for programmatic parsing |
38
180
 
39
- ## Configuration
181
+ ---
40
182
 
41
- `oya login` saves the key to `~/.oya/config.json` (or under `OYA_CONFIG_HOME`). `OYA_API_KEY` and `OYA_BASE_URL` override it, and so do `--key` and `--url`, so CI needs no login. Add `--json` for machine-readable output.
183
+ ## 📄 License
42
184
 
43
- Building an agent in code? Use the SDK: [@oya-ai/browser](https://www.npmjs.com/package/@oya-ai/browser).
185
+ MIT © [Oya](https://getoya.ai)
package/package.json CHANGED
@@ -1,8 +1,26 @@
1
1
  {
2
2
  "name": "@oya-ai/cli",
3
- "version": "1.0.57",
3
+ "version": "1.0.59",
4
4
  "description": "Command line for the Oya browser control plane.",
5
5
  "license": "MIT",
6
+ "homepage": "https://browser.getoya.ai",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/OyadotAI/oya-browser.git",
10
+ "directory": "packages/cli"
11
+ },
12
+ "bugs": "https://github.com/OyadotAI/oya-browser/issues",
13
+ "keywords": [
14
+ "browser",
15
+ "ai-agents",
16
+ "cli",
17
+ "cdp",
18
+ "headless-chrome",
19
+ "browserbase",
20
+ "steel",
21
+ "browser-use",
22
+ "mcp"
23
+ ],
6
24
  "type": "module",
7
25
  "bin": {
8
26
  "oya": "./dist/index.js"
@@ -21,7 +39,7 @@
21
39
  "access": "public"
22
40
  },
23
41
  "devDependencies": {
24
- "@oya-ai/browser": "1.0.57",
42
+ "@oya-ai/browser": "1.0.59",
25
43
  "@types/node": "^20.19.43",
26
44
  "tsup": "^8.0.0",
27
45
  "typescript": "^5.4.0"