Theseus Navigator — Silent Mode's Electron browser with the Ariadne resolver built in.
Find a file
Dev c06557e957 Theseus: Claude connector, an opt-in MCP server for the signed-in profile
Claude sessions could not work inside the user's own profile: the desktop
app's browser lost synthetic pastes and typing in Medium's editor, and a
browser-wide --remote-debugging-port would hand every session to any local
process. The connector is a built-in extension, off until turned on in
Settings > Extensions, that serves MCP on 127.0.0.1 behind a per-install
token and drives one tab at a time through that tab's webContents.debugger.

- Host: a "tab-control" capability (built-in add-ons only) for listing,
  opening, navigating, closing and focusing tabs, handing out web tabs'
  webContents (never Settings, extension or home tabs), and a toolbar chip
  plus tab outline while a client is connected; the chip's X stops it.
  Built-in add-ons can ship "defaultEnabled": false.
- Tools: list_tabs, open_tab, navigate, activate_tab, close_tab, screenshot,
  read_page_text, snapshot (accessibility tree with refs), click, type
  (insertText + real Enter), press_key, paste_html / paste_text (system
  clipboard + webContents.paste, clipboard restored), upload_file
  (DOM.setFileInputFiles), wait_for, and evaluate behind its own switch.
- Safety: first use of each site asks the user; password and one-time-code
  fields are refused; uploads only from folders the user added; requests
  from web pages or foreign Host headers are refused; every action is
  logged with a timestamp in the panel and actions.log.
- Claude Desktop runs stdio-shim.cjs through the Theseus executable in Node
  mode.
- Tests: unit (protocol, auth, policy, shim) and an end-to-end run on a
  throwaway profile that types, pastes HTML with a heading and a link, and
  uploads a PNG on a local page.
2026-10-23 17:45:02 +03:00
addon-build/docx-editor feat(docx-editor): the page fills the window, and two fonts ship with it 2026-09-22 19:12:56 +02:00
bundled-addons Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
dev Theseus ID in Theseus: window.theseusId.signIn and Settings › Theseus ID 2026-10-04 20:48:07 +02:00
docs Theseus docs: pithos is a live extension update channel 2026-10-03 19:20:41 +02:00
engine-icons Theseus 0.3.106: AI engine picker as a styled overlay with real icons 2026-10-22 22:06:37 +03:00
home-brand Theseus 0.3.105: fixed-slot left grid + Ariadne dark-bg icon 2026-10-22 21:31:45 +03:00
lib hermes: cloud-wrapped backup (opt-in B) + mobile site polish 2026-10-22 03:46:45 +03:00
nsis Ariadne 0.1.1 + Theseus fetches it from silentmode.st (no more bundling) 2026-09-08 01:27:51 +02:00
scripts Theseus: add-on stores live in memory — no more 16 s "Not Responding" at launch 2026-10-03 16:08:22 +02:00
snapshots Ship Theseus 0.0.8: window.bcnr dApp API + eTLD+1 permission origins 2026-08-31 01:38:55 +02:00
tests Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
addon-inject-preload.js WizardConnect "Open in wallet" links that open a new window reach Aegis 2026-10-22 19:15:05 +03:00
addon-tab-preload.js feat(addons): let an add-on talk to its own full-tab pages 2026-09-22 08:34:25 +02:00
addon-update-pubkeys.js feat(theseus/addons): bake operator pubkey — signed update endpoint now live 2026-09-07 23:57:47 +02:00
addon-updater.js Theseus: no links in a sandboxed extension's folder 2026-10-05 23:41:30 +02:00
addons-host.js Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
address-picker-preload.js Ship Theseus 0.3.4 3d6d3d6a (address-picker delete X, Enter picks highlight, URL bar override) 2026-09-02 04:28:54 +02:00
address-picker.html Ship Theseus 0.3.4 3d6d3d6a (address-picker delete X, Enter picks highlight, URL bar override) 2026-09-02 04:28:54 +02:00
approval-preload.js feat(theseus/bchwallet): per-site payment allowance for remembered sends 2026-09-06 12:43:17 +02:00
approval.html Vault: PIN setup steps, 6-8 digit PINs, save and offer logins, keep sign-ins 2026-10-04 20:23:43 +02:00
auth-prompt-preload.js fix(theseus): prompt for HTTP authentication instead of showing the bare 401 2026-09-15 22:30:29 +02:00
auth-prompt.html fix(theseus): prompt for HTTP authentication instead of showing the bare 401 2026-09-15 22:30:29 +02:00
bcnr-origin.js Ship Theseus 0.0.8: window.bcnr dApp API + eTLD+1 permission origins 2026-08-31 01:38:55 +02:00
bcnr-preload.js Passwords: save and fill logins inside iframes too 2026-10-05 20:34:17 +02:00
blocked.html Theseus: warn before opening a name a blocklist flags 2026-10-04 15:50:35 +02:00
bns-indexer.js Theseus: warn before opening a name a blocklist flags 2026-10-04 15:50:35 +02:00
BROWSER-PROMPT.md docs(theseus/prompts): tool-agnostic phrasing in session-prompt templates 2026-09-10 22:21:19 +02:00
chrome.html Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
collision-preload.js Collision modes (BCNR/ICANN) + root TLD cert + VPS electrum-source indexer 2026-08-02 11:39:00 +02:00
collision.html Theseus: in-tab collision prompt + toggle-style switcher + auto-switch 2026-08-02 14:43:31 +02:00
DESIGN-bns-indexer-service.md Theseus: read BNS names from Ariadne's indexer; its own is the standby 2026-10-03 17:06:24 +02:00
DESIGN-claude-connector.md Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
DESIGN-integrated-wallet.md Ship Theseus 0.0.8: window.bcnr dApp API + eTLD+1 permission origins 2026-08-31 01:38:55 +02:00
DESIGN-password-manager.md Snapshot in-progress work: Ariadne mobile, Theseus password manager, Hephaestus 2026-08-14 23:17:18 +02:00
DESIGN-wallet-multi-account-amendment.md docs(theseus): draft wallet multi-account amendment 2026-09-09 02:17:01 +02:00
downloads-preload.js Theseus: download tracker, search split, discover-more tier, UX polish 2026-08-02 15:31:47 +02:00
downloads.html Theseus: download tracker, search split, discover-more tier, UX polish 2026-08-02 15:31:47 +02:00
engine-picker-preload.js Theseus: Firefox-style search picker (favicons, catalog, scan) 2026-07-30 22:55:52 +02:00
engine-picker.html Theseus: download tracker, search split, discover-more tier, UX polish 2026-08-02 15:31:47 +02:00
error-preload.js feat(theseus/error): offline banner + BCNR did-you-mean on typos 2026-09-04 20:21:30 +02:00
error.html feat(theseus/error): CF Bot Fight 503 hint with .bch mirror suggestion 2026-10-04 01:50:09 +02:00
GOTCHAS.md Theseus: hand-off for moving Aegis to on-demand activation 2026-10-03 16:05:41 +02:00
home-preload.js Passwords: save and fill logins inside iframes too 2026-10-05 20:34:17 +02:00
home.html Theseus 0.3.105: fixed-slot left grid + Ariadne dark-bg icon 2026-10-22 21:31:45 +03:00
js-dialog-preload.js feat(theseus): Theseus's own prompts use the dialog sheet too 2026-09-27 20:13:06 +02:00
js-dialog.html Theseus: only theseus.x can ask to install an extension, and the sheet is armed 2026-10-04 04:21:05 +02:00
lang-picker-preload.js Theseus: language picker is a floating overlay now, not a native menu 2026-10-03 21:33:16 +02:00
lang-picker.html Theseus: language picker is a floating overlay now, not a native menu 2026-10-03 21:33:16 +02:00
LICENSE Licenses: MPL-2.0 for Theseus, Ariadne and Hephaestus; Apache-2.0 for Argus; CC BY 4.0 for the documents 2026-09-29 00:18:00 +02:00
link-status-preload.js Theseus: link-hover status bar (bottom-left href pill) 2026-08-29 15:49:30 +02:00
link-status.html feat(theseus/chrome): Ariadne's Thread registry menu, address-bar overflow fix, full-width link pill 2026-09-09 11:40:46 +02:00
llm-picker-preload.js Theseus 0.3.106: AI engine picker as a styled overlay with real icons 2026-10-22 22:06:37 +03:00
llm-picker.html Theseus 0.3.106: AI engine picker as a styled overlay with real icons 2026-10-22 22:06:37 +03:00
main.js Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
messages-preload.js Hermes: Ermis shortcut (Ctrl+Shift+E), sidebar add-on, vCard import, brand kit 2026-10-21 00:45:25 +03:00
messages.html Hermes: Ermis shortcut (Ctrl+Shift+E), sidebar add-on, vCard import, brand kit 2026-10-21 00:45:25 +03:00
no-badge-preload.js Theseus: no unread counts on the taskbar icon 2026-10-07 22:18:00 +02:00
package-lock.json feat(theseus): Cookie Pop-ups — consent banners answered automatically 2026-09-27 19:55:43 +02:00
package.json Theseus 0.3.106: AI engine picker as a styled overlay with real icons 2026-10-22 22:06:37 +03:00
PACKAGING-PROMPT.md Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
panel-grip-preload.js Theseus: the left panel resizes, and steps aside like Opera's 2026-10-04 20:53:16 +02:00
panel-grip.html Theseus: the left panel resizes, and steps aside like Opera's 2026-10-04 20:53:16 +02:00
panel-header-preload.js Theseus: sidebar panels open over the page or push it aside 2026-10-07 23:28:01 +02:00
panel-header.html Theseus: sidebar panels open over the page or push it aside 2026-10-07 23:28:01 +02:00
PENDING.md PENDING: retire the translate entry now that 0.1.7 has landed 2026-10-22 15:59:49 +03:00
popover-preload.js Collision modes (BCNR/ICANN) + root TLD cert + VPS electrum-source indexer 2026-08-02 11:39:00 +02:00
popover.html feat(theseus): consume owner-signed DNS records alongside on-chain records 2026-09-16 00:53:13 +02:00
preload.js Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
pw-fill-preload.js Theseus UX batch: tabs, address history, password autofill MVP, home cards 2026-08-17 02:17:12 +02:00
pw-fill.html Passwords: save and fill logins inside iframes too 2026-10-05 20:34:17 +02:00
quicklinks-preload.js Theseus 0.3.100: LLM sidebar button, Hermes consolidation, Settings polish 2026-10-21 20:10:11 +03:00
quicklinks.html hermes: tighter viewBox + bump sidebar strip icon size 20→26 2026-10-21 23:02:32 +03:00
README.md Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
RELEASE-HANDOFF.md Ship Theseus 0.0.2 (SameSite cookie shim) 2026-08-05 18:51:16 +02:00
ROADMAP-identity-wallet.md docs(theseus): note the Siacoin wallet's derivation and node-URL policy 2026-09-06 18:49:33 +02:00
SESSION-PROMPT-identity-wallet.md docs(theseus/prompts): tool-agnostic phrasing in session-prompt templates 2026-09-10 22:21:19 +02:00
settings-preload.js Theseus 0.3.100: LLM sidebar button, Hermes consolidation, Settings polish 2026-10-21 20:10:11 +03:00
settings.html Theseus: Claude connector, an opt-in MCP server for the signed-in profile 2026-10-23 17:45:02 +03:00
sidebar-preload.js feat(theseus/screenshot): 0.6.1 — text tool fix, category wrap, sidebar close X 2026-09-09 10:55:21 +02:00
strip-icons.js Theseus: Settings › Sidebar shows the apps' icons and suggests well-known ones 2026-10-08 01:38:53 +02:00
test-installer.wsb chore: push-split helper for per-project forge repos + Windows Sandbox installer config 2026-09-09 10:33:23 +02:00
theseus-id-preload.js Passwords: save and fill logins inside iframes too 2026-10-05 20:34:17 +02:00
THIRD-PARTY-NOTICES.md Licenses: MPL-2.0 for Theseus, Ariadne and Hephaestus; Apache-2.0 for Argus; CC BY 4.0 for the documents 2026-09-29 00:18:00 +02:00
TRADEMARKS.md whitepaper: corrections from a review against the code; trademark note covers every brand kit 2026-10-01 22:28:11 +02:00
unlock-preload.js Theseus: quick-unlock PIN for the vault, shared with extensions 2026-10-03 20:33:26 +02:00
unlock.html PIN pads: an Unlock button, Next to set 6-8 digits, bigger keys 2026-10-05 20:59:25 +02:00
webapps.js fix(theseus): an installed app can be closed and removed; Settings lists apps 2026-10-04 19:15:11 +02:00

Theseus Navigator

The browser — the consumer face of the stack. Native .bch support with the resolver built in, so a user installs one app instead of modifying their operating system. Named for the thread through the labyrinth: the chain is the thread.

Scope

  • Electron shell (Chromium engine, no forking): tabs, address bar, history.
  • In-process .bch resolution — no system daemon, no NRPT, no OS trust-store changes; reuses bns.js from the BNS repo as a library.
  • Record handling: h render, ip connect, p/s3 via in-app gateway, u redirect.
  • TLS via cert-verify hook (Electron setCertificateVerifyProc) against the BNS root / on-chain tls fingerprints — no OS store touched.
  • Provenance indicator: shows whether a page came from the chain / Sia / a direct server, with NFT category and record type — the decentralized padlock.

Status: not started

Build it in its own session/repo. The ready-to-paste brief is BROWSER-PROMPT.md (a reference copy in this folder; canonical source is D:\Dev\NameCoin\BROWSER-PROMPT.md — if they diverge, NameCoin wins). It points here and reuses the resolver core. theseus.bch is registered and should eventually serve the browser's own homepage over the protocol it implements.

Roadmap

BUILD-ROADMAP.md Stage 5.

Claude connector (MCP)

A built-in extension, off by default, that lets Claude Code or Claude Desktop on the same computer work in your signed-in Theseus tabs: open and read pages, click, type into rich editors, paste formatted text, upload files. Design: DESIGN-claude-connector.md.

Turn it on. Settings › Extensions › Claude connector. Its panel (the connector icon in the toolbar dock) shows the address, the token, the approved sites, the upload folders and a live log of every action.

Add it to Claude Code (once; --scope user makes it available in every project). Copy the exact command from the panel; it looks like:

claude mcp add --scope user --transport http theseus http://127.0.0.1:47800/mcp --header "Authorization: Bearer <token from the panel>"

Check it with claude mcp list. Claude Desktop speaks stdio only; the panel's Claude Desktop tab has a ready claude_desktop_config.json entry that runs stdio-shim.cjs through the Theseus executable itself (ELECTRON_RUN_AS_NODE=1), so nothing else needs installing.

What protects you

  • Listens on 127.0.0.1 only, behind a random 256-bit token. Requests from web pages (any Origin header) and foreign Host headers are refused. No --remote-debugging-port: each tab is driven through its own webContents.debugger.
  • Theseus asks the first time Claude acts on each site (Allow, Until Theseus restarts, Don't allow). Approved sites are listed in the panel.
  • Never types or pastes into password or one-time-code fields.
  • Uploads only from folders you add in the panel (none by default).
  • evaluate (arbitrary page JavaScript) is a separate switch, off by default.
  • A Claude chip in the toolbar shows while a client is connected, and the tabs it controls get a dashed outline. The chip's ✕ stops the connector at once; Revoke token in the panel issues a new token, cutting off every configured client.

Tools: list_tabs, open_tab, navigate, activate_tab, close_tab, screenshot, read_page_text, snapshot (accessibility tree with element refs), click, type, press_key, paste_html, paste_text, upload_file, wait_for, and evaluate while allowed.

Tests

node tests/claude-connector-unit.test.mjs
node tests/claude-connector.test.mjs

The second starts this checkout on a throwaway profile (THESEUS_USER_DATA, THESEUS_NO_UPDATE_CHECK) and drives a local test page over MCP: typing into a contenteditable editor, paste_html with a heading and a link, a PNG upload, and the refusals (password fields, a file outside the upload folder, no token, a browser origin).