@jobshimo/browser-link 0.0.1 → 0.2.0
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/LICENSE +21 -21
- package/README.md +102 -83
- package/dist/cli.js +50 -36
- package/dist/cli.js.map +1 -1
- package/dist/commands/about.d.ts +17 -18
- package/dist/commands/about.js +149 -190
- package/dist/commands/about.js.map +1 -1
- package/dist/commands/updates.d.ts +19 -0
- package/dist/commands/updates.js +83 -0
- package/dist/commands/updates.js.map +1 -0
- package/dist/commands/welcome.d.ts +10 -8
- package/dist/commands/welcome.js +49 -128
- package/dist/commands/welcome.js.map +1 -1
- package/dist/extension/background.js +90 -90
- package/dist/extension/icons/icon.svg +14 -14
- package/dist/extension/manifest.json +28 -28
- package/dist/extension/popup.html +88 -88
- package/dist/installers/copilot.d.ts +2 -0
- package/dist/installers/copilot.js +72 -0
- package/dist/installers/copilot.js.map +1 -0
- package/dist/installers/index.d.ts +2 -3
- package/dist/installers/index.js +5 -4
- package/dist/installers/index.js.map +1 -1
- package/dist/installers/opencode.js +49 -21
- package/dist/installers/opencode.js.map +1 -1
- package/dist/installers/types.d.ts +1 -1
- package/dist/map/db.js +28 -28
- package/dist/map/queries.js +4 -4
- package/dist/tools/server-instructions.js +46 -46
- package/dist/ui/app.d.ts +7 -0
- package/dist/ui/app.js +62 -0
- package/dist/ui/app.js.map +1 -0
- package/dist/ui/components.d.ts +18 -0
- package/dist/ui/components.js +27 -0
- package/dist/ui/components.js.map +1 -0
- package/dist/ui/screens.d.ts +48 -0
- package/dist/ui/screens.js +291 -0
- package/dist/ui/screens.js.map +1 -0
- package/dist/ui/start.d.ts +6 -0
- package/dist/ui/start.js +19 -0
- package/dist/ui/start.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +15 -0
- package/dist/version.js.map +1 -0
- package/package.json +69 -61
- package/dist/commands/menu.d.ts +0 -26
- package/dist/commands/menu.js +0 -187
- package/dist/commands/menu.js.map +0 -1
- package/dist/commands/tty.d.ts +0 -51
- package/dist/commands/tty.js +0 -148
- package/dist/commands/tty.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Martín Miguel Bernal
|
|
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.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Martín Miguel Bernal
|
|
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,83 +1,102 @@
|
|
|
1
|
-
# @jobshimo/browser-link
|
|
2
|
-
|
|
3
|
-
> ⚠️
|
|
4
|
-
>
|
|
5
|
-
> This package opens a bridge between
|
|
6
|
-
>
|
|
7
|
-
>
|
|
8
|
-
>
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
>
|
|
14
|
-
>
|
|
15
|
-
>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
the
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
browser-link
|
|
49
|
-
browser-link
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
1
|
+
# @jobshimo/browser-link
|
|
2
|
+
|
|
3
|
+
> ⚠️ **Read this before installing**
|
|
4
|
+
>
|
|
5
|
+
> This package opens a bridge between your MCP client (Claude Code,
|
|
6
|
+
> OpenCode, GitHub Copilot CLI…) and the Chrome tabs you explicitly
|
|
7
|
+
> enable through a companion extension. On every tab where you press
|
|
8
|
+
> "Conectar" in the extension popup, the agent can read its DOM, click,
|
|
9
|
+
> type, run arbitrary JavaScript, and follow links — including any
|
|
10
|
+
> logged-in session, saved card, wallet, banking page or admin panel
|
|
11
|
+
> that tab is currently showing.
|
|
12
|
+
>
|
|
13
|
+
> Treat the agent like a junior dev with remote control of those tabs.
|
|
14
|
+
> Only enable tabs where you would let an automated process act on your
|
|
15
|
+
> behalf, and disconnect them when you are done. You are responsible for
|
|
16
|
+
> every action the agent performs on the tabs you explicitly enable.
|
|
17
|
+
|
|
18
|
+
MCP server that bridges any MCP-compatible client (Claude Code, OpenCode,
|
|
19
|
+
GitHub Copilot CLI, and friends) to the Chrome tabs you grant access to,
|
|
20
|
+
through a small WebSocket relay and a companion Chrome extension. Ships
|
|
21
|
+
with a persistent UI map so the agent remembers selectors, flows and
|
|
22
|
+
gotchas it learned about each app, across sessions.
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install -g @jobshimo/browser-link
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
This puts the `browser-link` binary on your PATH on macOS, Linux and Windows.
|
|
31
|
+
|
|
32
|
+
## Set it up
|
|
33
|
+
|
|
34
|
+
The fastest path is the interactive UI — a full-screen [Ink](https://github.com/vadimdemedes/ink)-based app with a pinned header, live status of every MCP client, and sub-screens that swap in place (no flicker, no scroll-off):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
browser-link
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
That opens the welcome / disclaimer screen (English or Spanish), and then
|
|
41
|
+
the setup menu where you can register `browser-link` with **Claude Code**,
|
|
42
|
+
**OpenCode**, or **GitHub Copilot CLI**, see the Chrome extension install
|
|
43
|
+
steps, run a doctor diagnose, and open the about / help page.
|
|
44
|
+
|
|
45
|
+
If you prefer direct commands:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
browser-link install # register in every detected client
|
|
49
|
+
browser-link install --client claude # register only in Claude Code
|
|
50
|
+
browser-link install --client opencode # register only in OpenCode
|
|
51
|
+
browser-link install --client copilot # register only in GitHub Copilot CLI
|
|
52
|
+
browser-link uninstall --client opencode # remove from one client
|
|
53
|
+
browser-link extension # show the Chrome extension assets path + steps
|
|
54
|
+
browser-link doctor # diagnose current setup
|
|
55
|
+
browser-link about # what this is, how it works, every tool
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
After `install`, restart the MCP client so it picks up the new entry.
|
|
59
|
+
After `extension`, follow the printed steps to load the unpacked extension
|
|
60
|
+
in Chrome. Then click "Conectar" on every tab you want the agent to reach
|
|
61
|
+
— and only on those.
|
|
62
|
+
|
|
63
|
+
## Supported MCP clients
|
|
64
|
+
|
|
65
|
+
| Client | Config file written |
|
|
66
|
+
| -------------------------------------------------------------------- | ---------------------------------------------------------------- |
|
|
67
|
+
| [Claude Code](https://docs.claude.com/claude-code) | `~/.claude.json` (`%USERPROFILE%\.claude.json` on Windows) |
|
|
68
|
+
| [OpenCode](https://opencode.ai) | `~/.config/opencode/opencode.json` on **every** OS (Win incl.) |
|
|
69
|
+
| [GitHub Copilot CLI](https://docs.github.com/en/copilot/copilot-cli) | `~/.copilot/mcp-config.json` (override via `COPILOT_HOME` env) |
|
|
70
|
+
|
|
71
|
+
Every registration is idempotent — re-running `install` updates the
|
|
72
|
+
entry instead of duplicating it. `uninstall --client <id>` removes it
|
|
73
|
+
cleanly without touching anything else in the file.
|
|
74
|
+
|
|
75
|
+
## Tools exposed
|
|
76
|
+
|
|
77
|
+
Browser bridge: `browser.list_tabs`, `browser.ping`, `browser.navigate`,
|
|
78
|
+
`browser.snapshot`, `browser.click`, `browser.type`, `browser.evaluate`,
|
|
79
|
+
`browser.console`, `browser.network`, `browser.network_body`.
|
|
80
|
+
|
|
81
|
+
UI map (persistent across sessions): `browser.map.recall`,
|
|
82
|
+
`browser.map.save`, `browser.map.record_use`, `browser.map.forget`,
|
|
83
|
+
`browser.map.rename_app`, `browser.map.apps`.
|
|
84
|
+
|
|
85
|
+
The server also ships usage instructions for the agent via the MCP
|
|
86
|
+
`initialize` handshake — no manual prompt setup required.
|
|
87
|
+
|
|
88
|
+
## Where the data lives
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
macOS ~/Library/Application Support/browser-link/map.db
|
|
92
|
+
Linux $XDG_DATA_HOME/browser-link/map.db (default: ~/.local/share/browser-link/map.db)
|
|
93
|
+
Windows %APPDATA%/browser-link/map.db
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Override with `BROWSER_LINK_DATA_DIR`. The database is local to your
|
|
97
|
+
machine and never uploaded anywhere by this package. The WebSocket relay
|
|
98
|
+
binds to `127.0.0.1:17529` (loopback only).
|
|
99
|
+
|
|
100
|
+
## License
|
|
101
|
+
|
|
102
|
+
MIT — see [LICENSE](https://github.com/jobshimo/browser-link/blob/main/LICENSE).
|
package/dist/cli.js
CHANGED
|
@@ -4,35 +4,45 @@ import { installAll, installFor } from './commands/install.js';
|
|
|
4
4
|
import { uninstallAll, uninstallFor } from './commands/uninstall.js';
|
|
5
5
|
import { printExtensionInstructions } from './commands/extension.js';
|
|
6
6
|
import { printAbout } from './commands/about.js';
|
|
7
|
+
import { checkUpdates, formatUpdate } from './commands/updates.js';
|
|
7
8
|
import { loadConfig } from './config.js';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
browser-link
|
|
18
|
-
browser-link
|
|
19
|
-
|
|
20
|
-
browser-link
|
|
21
|
-
browser-link
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
9
|
+
import { VERSION } from './version.js';
|
|
10
|
+
const HELP = `browser-link ${VERSION} — bridge any MCP client to the Chrome tabs you enable.
|
|
11
|
+
|
|
12
|
+
Usage:
|
|
13
|
+
browser-link When invoked from an interactive terminal,
|
|
14
|
+
opens the setup UI (register a client, show
|
|
15
|
+
extension steps, run doctor, check updates).
|
|
16
|
+
When invoked by an MCP client over stdio,
|
|
17
|
+
starts the MCP server.
|
|
18
|
+
browser-link install Register browser-link in every detected client.
|
|
19
|
+
browser-link install --client <claude|opencode|copilot>
|
|
20
|
+
Register only in the named client.
|
|
21
|
+
browser-link uninstall Remove every registration.
|
|
22
|
+
browser-link uninstall --client <id>
|
|
23
|
+
Remove only the named registration.
|
|
24
|
+
browser-link extension Show the Chrome extension assets path and
|
|
25
|
+
per-OS install instructions.
|
|
26
|
+
browser-link doctor Diagnose current setup (clients, server, extension, map DB).
|
|
27
|
+
browser-link updates Check the npm registry for a newer version.
|
|
28
|
+
browser-link about Show the full explanation of what this is and how it works.
|
|
29
|
+
browser-link version Print the installed version (also: --version, -v).
|
|
30
|
+
browser-link help This message.
|
|
31
|
+
|
|
32
|
+
Environment:
|
|
33
|
+
BROWSER_LINK_DATA_DIR Override the DB location (defaults per OS).
|
|
34
|
+
BROWSER_LINK_BIN Override the command stored in client configs
|
|
35
|
+
(e.g. "node /path/to/dist/index.js" for dev).
|
|
36
|
+
COPILOT_HOME Override GitHub Copilot CLI's config dir
|
|
37
|
+
(default ~/.copilot).`;
|
|
28
38
|
function parseClient(argv) {
|
|
29
39
|
const idx = argv.findIndex((a) => a === '--client');
|
|
30
40
|
if (idx === -1 || idx === argv.length - 1)
|
|
31
41
|
return null;
|
|
32
42
|
const val = argv[idx + 1];
|
|
33
|
-
if (val === 'claude' || val === 'opencode')
|
|
43
|
+
if (val === 'claude' || val === 'opencode' || val === 'copilot')
|
|
34
44
|
return val;
|
|
35
|
-
throw new Error(`Unknown --client value: ${val}. Use claude or
|
|
45
|
+
throw new Error(`Unknown --client value: ${val}. Use claude, opencode or copilot.`);
|
|
36
46
|
}
|
|
37
47
|
async function dispatch(argv) {
|
|
38
48
|
const [cmd, ...rest] = argv;
|
|
@@ -82,6 +92,20 @@ async function dispatch(argv) {
|
|
|
82
92
|
printAbout(cfg.language ?? 'en');
|
|
83
93
|
return;
|
|
84
94
|
}
|
|
95
|
+
case 'updates': {
|
|
96
|
+
const info = await checkUpdates();
|
|
97
|
+
console.log(formatUpdate(info));
|
|
98
|
+
// Non-zero exit when we could not reach the registry, so scripts can detect it.
|
|
99
|
+
if (info.error || info.latest === null)
|
|
100
|
+
process.exit(2);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
case 'version':
|
|
104
|
+
case '-v':
|
|
105
|
+
case '--version': {
|
|
106
|
+
console.log(VERSION);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
85
109
|
default: {
|
|
86
110
|
console.error(`Unknown command: ${cmd}`);
|
|
87
111
|
console.error('');
|
|
@@ -91,22 +115,12 @@ async function dispatch(argv) {
|
|
|
91
115
|
}
|
|
92
116
|
}
|
|
93
117
|
const argv = process.argv.slice(2);
|
|
94
|
-
// No args + both stdin and stdout are TTYs → human in a terminal:
|
|
95
|
-
//
|
|
96
|
-
// setup menu in the chosen language.
|
|
118
|
+
// No args + both stdin and stdout are TTYs → human in a terminal: mount the
|
|
119
|
+
// Ink-based UI (welcome on first run, then the setup menu).
|
|
97
120
|
// Otherwise (no TTY anywhere, or output piped) → start the MCP server over stdio.
|
|
98
121
|
if (argv.length === 0 && process.stdin.isTTY && process.stdout.isTTY) {
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
let language = cfg.language ?? 'en';
|
|
102
|
-
if (!cfg.skipWelcome) {
|
|
103
|
-
const { runWelcome } = await import('./commands/welcome.js');
|
|
104
|
-
const welcome = await runWelcome({ initial: language });
|
|
105
|
-
if (welcome.action === 'quit')
|
|
106
|
-
process.exit(0);
|
|
107
|
-
language = welcome.language;
|
|
108
|
-
}
|
|
109
|
-
await runMenu(language);
|
|
122
|
+
const { startUI } = await import('./ui/start.js');
|
|
123
|
+
await startUI();
|
|
110
124
|
process.exit(0);
|
|
111
125
|
}
|
|
112
126
|
dispatch(argv).catch((err) => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/about.d.ts
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import type { Language } from './welcome.js';
|
|
2
|
-
interface AboutI18n {
|
|
2
|
+
export interface AboutI18n {
|
|
3
3
|
title: string;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
whatTitle: string;
|
|
5
|
+
what: string;
|
|
6
|
+
howTitle: string;
|
|
7
|
+
how: string;
|
|
8
|
+
bindingTitle: string;
|
|
9
|
+
binding: string;
|
|
10
|
+
bridgeToolsTitle: string;
|
|
11
|
+
bridgeTools: string;
|
|
12
|
+
mapToolsTitle: string;
|
|
13
|
+
mapTools: string;
|
|
14
|
+
privacyTitle: string;
|
|
15
|
+
privacy: string;
|
|
16
|
+
helpTitle: string;
|
|
17
|
+
help: string;
|
|
17
18
|
}
|
|
18
19
|
export declare const I18N_ABOUT: Record<Language, AboutI18n>;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/** Plain-text render of About for non-interactive output (browser-link about). */
|
|
20
|
+
/** Non-interactive about — `browser-link about`. Plain output, no prompts.
|
|
21
|
+
* The interactive version lives in the Ink UI (`ui/screens.tsx`). */
|
|
22
22
|
export declare function printAbout(language?: Language): void;
|
|
23
|
-
export {};
|