@markus-global/cli 0.6.8 → 0.7.1
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.
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +6 -2
- package/dist/api-client.js.map +1 -1
- package/dist/commands/start.js +52 -11
- package/dist/commands/start.js.map +1 -1
- package/dist/markus.mjs +7354 -1520
- package/dist/web-ui/assets/browser-DlVfF39H.js +8 -0
- package/dist/web-ui/assets/index-BmAWk8NW.css +1 -0
- package/dist/web-ui/assets/index-DtpSP_xt.js +386 -0
- package/dist/web-ui/index.html +2 -2
- package/package.json +2 -1
- package/templates/skills/chrome-devtools/SKILL.md +93 -57
- package/templates/skills/chrome-devtools/skill.json +1 -1
- package/dist/web-ui/assets/index-B8jf_U2f.js +0 -385
- package/dist/web-ui/assets/index-bD7A_PcE.css +0 -1
package/dist/web-ui/index.html
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
<script>
|
|
12
12
|
(function(){var t=localStorage.getItem('markus-theme');if(t==='midnight'){t='dark';try{localStorage.setItem('markus-theme','dark')}catch(e){}}if(t&&t!=='system')document.documentElement.classList.add(t)})();
|
|
13
13
|
</script>
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
15
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-DtpSP_xt.js"></script>
|
|
15
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BmAWk8NW.css">
|
|
16
16
|
</head>
|
|
17
17
|
<body>
|
|
18
18
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@markus-global/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Markus — AI Digital Workforce Platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"@markus/comms": "workspace:*",
|
|
34
34
|
"@markus/core": "workspace:*",
|
|
35
35
|
"@markus/org-manager": "workspace:*",
|
|
36
|
+
"@markus/remote": "workspace:*",
|
|
36
37
|
"@markus/shared": "workspace:*",
|
|
37
38
|
"commander": "^14.0.3",
|
|
38
39
|
"esbuild": "^0.27.4"
|
|
@@ -22,93 +22,129 @@ Use Chrome DevTools tools when you need to:
|
|
|
22
22
|
Do NOT use these tools when `web_fetch` or `web_search` suffice (simple content retrieval or search).
|
|
23
23
|
Chrome DevTools is for interactive browser sessions that require a real rendering engine.
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## Connection Modes
|
|
26
|
+
|
|
27
|
+
Markus supports three ways to connect to Chrome, listed from best to fallback:
|
|
28
|
+
|
|
29
|
+
### Mode 1: Markus Chrome Extension (recommended)
|
|
30
|
+
|
|
31
|
+
The **Markus Browser Automation** Chrome extension provides the smoothest experience:
|
|
32
|
+
- **No debugging dialog** — the extension uses `chrome.debugger` API internally
|
|
33
|
+
- **Works when screen is locked or sleeping** — no OS-level interaction needed
|
|
34
|
+
- **Cross-platform** — works on macOS, Windows, and Linux identically
|
|
35
|
+
- **Instant startup** — no `npx` download, no child process spawn
|
|
36
|
+
- **No extra permissions** — no macOS Accessibility or Windows UI Automation needed
|
|
37
|
+
|
|
38
|
+
**How to install:**
|
|
39
|
+
|
|
40
|
+
1. Build the extension (one-time):
|
|
41
|
+
```
|
|
42
|
+
cd packages/chrome-extension && pnpm install && pnpm run build
|
|
43
|
+
```
|
|
44
|
+
2. Open Chrome → `chrome://extensions/`
|
|
45
|
+
3. Enable **Developer mode** (toggle in top-right)
|
|
46
|
+
4. Click **Load unpacked** → select `packages/chrome-extension/dist`
|
|
47
|
+
5. The Markus icon appears in the toolbar
|
|
48
|
+
|
|
49
|
+
**How it works:**
|
|
50
|
+
|
|
51
|
+
When Markus starts, it launches a WebSocket bridge on `ws://127.0.0.1:9333`. The extension
|
|
52
|
+
auto-connects to this bridge. All browser tool calls are routed through the extension instead
|
|
53
|
+
of spawning an external MCP process.
|
|
54
|
+
|
|
55
|
+
Check connection status in **Settings > Browser Automation > Chrome Extension**:
|
|
56
|
+
- Green dot = Connected (extension is active, all tools route through it)
|
|
57
|
+
- Gray dot = Not Connected (Markus falls back to Mode 2 or 3)
|
|
58
|
+
|
|
59
|
+
The extension reconnects automatically within 3 seconds if the connection drops.
|
|
60
|
+
|
|
61
|
+
**Note:** Chrome shows a yellow infobar ("Markus Browser Automation started debugging this
|
|
62
|
+
tab") on debugged tabs. This is cosmetic and doesn't affect functionality. To hide it, launch
|
|
63
|
+
Chrome with `--silent-debugger-extension-api`.
|
|
64
|
+
|
|
65
|
+
### Mode 2: Auto-Connect with Auto-Click (fallback)
|
|
66
|
+
|
|
67
|
+
If the extension is not installed, Markus falls back to `chrome-devtools-mcp` via `npx`.
|
|
68
|
+
Chrome shows an "Allow remote debugging?" dialog each time. Markus can auto-click this
|
|
69
|
+
dialog on supported platforms:
|
|
70
|
+
|
|
71
|
+
**macOS:** Requires Accessibility permission.
|
|
72
|
+
1. Open System Settings > Privacy & Security > Accessibility
|
|
73
|
+
2. Add the app running Markus (Markus.app, Terminal, or iTerm)
|
|
74
|
+
3. Enable "Auto-Allow Chrome Debugging Dialog" in Settings > Browser Automation
|
|
75
|
+
|
|
76
|
+
**Windows:** No additional permissions needed. Enable the toggle in Settings.
|
|
77
|
+
|
|
78
|
+
**Linux:** Auto-click is not supported. Use Mode 1 (extension) or Mode 3 (debugging port).
|
|
79
|
+
|
|
80
|
+
Limitations of auto-click:
|
|
81
|
+
- Does not work when the screen is locked or display is sleeping
|
|
82
|
+
- Requires OS-specific permissions (Accessibility on macOS)
|
|
83
|
+
- Has timing dependencies on npx download and dialog detection
|
|
26
84
|
|
|
27
|
-
###
|
|
85
|
+
### Mode 3: Persistent Debugging Port (manual)
|
|
28
86
|
|
|
29
|
-
|
|
87
|
+
Launch Chrome with a fixed debugging port to bypass the dialog entirely:
|
|
88
|
+
|
|
89
|
+
- **macOS**: `/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222`
|
|
90
|
+
- **Linux**: `google-chrome --remote-debugging-port=9222`
|
|
91
|
+
- **Windows**: `"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222`
|
|
92
|
+
|
|
93
|
+
Set the same port in **Settings > Browser Automation > Remote Debugging Port**.
|
|
94
|
+
|
|
95
|
+
## Installation & Setup
|
|
96
|
+
|
|
97
|
+
### 1. Check if Chrome is installed
|
|
30
98
|
|
|
31
99
|
- **macOS**: `ls /Applications/Google\ Chrome.app` or `mdfind "kMDItemCFBundleIdentifier == com.google.Chrome"`
|
|
32
100
|
- **Linux**: `which google-chrome || which google-chrome-stable || which chromium-browser`
|
|
33
101
|
- **Windows**: `where chrome` or check `"C:\Program Files\Google\Chrome\Application\chrome.exe"`
|
|
34
102
|
|
|
35
|
-
|
|
103
|
+
Chrome version **144+** is required (146+ recommended). Check with:
|
|
36
104
|
- **macOS**: `/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version`
|
|
37
105
|
- **Linux**: `google-chrome --version`
|
|
38
106
|
|
|
39
|
-
If Chrome is
|
|
40
|
-
|
|
41
|
-
**Only if Chrome is NOT installed:**
|
|
42
|
-
|
|
107
|
+
**If Chrome is NOT installed:**
|
|
43
108
|
- **macOS**: `brew install --cask google-chrome` or download from https://www.google.com/chrome/
|
|
44
109
|
- **Linux (Debian/Ubuntu)**: `wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - && sudo apt update && sudo apt install google-chrome-stable`
|
|
45
110
|
- **Windows**: Download from https://www.google.com/chrome/
|
|
46
111
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
### 2. Launch Chrome with Remote Debugging
|
|
112
|
+
### 2. Choose a connection mode
|
|
50
113
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- **
|
|
54
|
-
```
|
|
55
|
-
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
|
|
56
|
-
```
|
|
57
|
-
- **Linux**:
|
|
58
|
-
```
|
|
59
|
-
google-chrome --remote-debugging-port=9222
|
|
60
|
-
```
|
|
61
|
-
- **Windows**:
|
|
62
|
-
```
|
|
63
|
-
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Alternatively, skip the launch flag and use Auto-Connect (see Mode 1 below) — but you must
|
|
67
|
-
manually enable remote debugging in Chrome first.
|
|
114
|
+
- **Best experience**: Install the Markus Chrome Extension (Mode 1 above)
|
|
115
|
+
- **Quick start**: Just ensure Chrome is running — Markus will auto-connect and prompt for permission
|
|
116
|
+
- **Unattended use without extension**: Launch Chrome with `--remote-debugging-port=9222` (Mode 3)
|
|
68
117
|
|
|
69
118
|
### 3. Verify Connection
|
|
70
119
|
|
|
71
|
-
|
|
72
|
-
|
|
120
|
+
- With extension: Click the Markus icon in Chrome toolbar — status should show "Connected to Markus"
|
|
121
|
+
- With auto-connect: Open `chrome://inspect/#remote-debugging` in Chrome and verify tabs are listed
|
|
122
|
+
- In Markus: Go to Settings > Browser Automation — check the extension status or run the auto-click test
|
|
73
123
|
|
|
74
124
|
### Troubleshooting
|
|
75
125
|
|
|
76
|
-
- **
|
|
77
|
-
- **
|
|
78
|
-
- **
|
|
79
|
-
- **
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
The MCP server connects to the user's running Chrome via one of two modes:
|
|
84
|
-
|
|
85
|
-
### Mode 1: Auto-Connect (default)
|
|
86
|
-
Uses `--autoConnect` to discover Chrome automatically (Chrome 144+).
|
|
87
|
-
1. Chrome version must be 144 or newer (146+ recommended).
|
|
88
|
-
2. Open `chrome://inspect/#remote-debugging` in Chrome and enable remote debugging.
|
|
89
|
-
3. On first MCP connection, Chrome will show a permission dialog — the user must click **Allow**.
|
|
90
|
-
4. **Note:** This permission is per-connection. Each new agent or session may trigger a new dialog.
|
|
91
|
-
|
|
92
|
-
### Mode 2: Persistent Debugging Port (recommended for unattended use)
|
|
93
|
-
Set **Remote Debugging Port** in Settings > Browser Automation (e.g. 9222) to skip the
|
|
94
|
-
permission dialog entirely. This requires launching Chrome with:
|
|
95
|
-
```
|
|
96
|
-
chrome --remote-debugging-port=9222
|
|
97
|
-
```
|
|
98
|
-
Once configured, all agents reuse this connection without prompting for permission.
|
|
126
|
+
- **Extension shows "Not Connected"**: Ensure Markus is running (`pnpm dev`). The bridge starts on port 9333 by default. Check if another process is using that port.
|
|
127
|
+
- **Port conflict**: If port 9333 is in use, change `browser.extensionBridgePort` in Markus config.
|
|
128
|
+
- **Permission dialog keeps appearing**: Install the Chrome extension (Mode 1) to eliminate it entirely.
|
|
129
|
+
- **Memory Saver freezes tabs**: Disable at `chrome://settings/performance` or upgrade to Chrome 146+.
|
|
130
|
+
- **Connection timeout**: On first use without extension, `npx` may need to download `chrome-devtools-mcp`. Wait up to 60 seconds. Subsequent connections are faster.
|
|
131
|
+
- **Firewall**: Ensure localhost access to the debugging/bridge port is not blocked.
|
|
99
132
|
|
|
100
|
-
**
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
133
|
+
**If browser automation fails, advise the user:**
|
|
134
|
+
1. First choice: Install the Markus Chrome Extension (Settings > Browser Automation shows install path)
|
|
135
|
+
2. Second choice: Enable auto-click in Settings > Browser Automation (macOS/Windows only)
|
|
136
|
+
3. Third choice: Launch Chrome with `--remote-debugging-port=9222` and set the port in Settings
|
|
104
137
|
|
|
105
138
|
## Configurable behavior (Settings > Browser Automation)
|
|
106
139
|
|
|
107
140
|
| Setting | Default | Description |
|
|
108
141
|
|---------|---------|-------------|
|
|
142
|
+
| **Chrome Extension** | — | Shows connection status of the Markus Chrome Extension (Connected / Not Connected). |
|
|
109
143
|
| **Bring to Foreground** | Off | When on, Chrome tabs are brought to the foreground during agent operations. When off (default), agents operate silently in background tabs. |
|
|
110
144
|
| **Auto-close Tabs** | On | When on, agent-owned tabs are closed when the agent task completes or the agent is removed. |
|
|
145
|
+
| **Auto-Allow Debugging Dialog** | Off | Auto-click Chrome's "Allow remote debugging?" dialog via OS APIs. Only needed when extension is not installed. macOS requires Accessibility permission; Windows works out of the box; Linux not supported. |
|
|
111
146
|
| **Remote Debugging Port** | 0 (auto-connect) | Set to a port number (e.g. 9222) to use a persistent debugging connection instead of auto-connect, eliminating repeated permission dialogs. |
|
|
147
|
+
| **Extension Bridge Port** | 9333 | WebSocket port for communication between Markus and the Chrome extension. Change if 9333 conflicts with another service. |
|
|
112
148
|
|
|
113
149
|
## Tool reference
|
|
114
150
|
|