Theseus for developers

Everything you need to extend Theseus Navigator, or borrow its superpower — on-device Bitcoin Cash Domain Name resolution — for whatever you are building. Theseus ships Ariadne's Thread as a bundled plug-in; the same resolver can live inside your app too.

Resolve BNS names from your own code

The authoritative developer page is on Ariadne.X — the resolver is the Ariadne project. It covers the BNS1 protocol in one page, the record types, a 60-line Node.js resolver you can run as-is, and the pointers to every production implementation.

→ Resolve a BNS name from your own code

Protocol, record types, minimum resolver, reference implementations, public endpoints.

ariadne.x/dev

→ Ariadne's Thread

What it is, how it works, system-wide mode, trust model.

ariadne.x/thread

→ Protocol spec

The authoritative BNS1 specification on the forge.

PROTOCOL.md ↗

Add BNS to your own app

If you ship any kind of app with a browser surface — Electron, native, game launcher, mail client — your users can resolve .bch, .x, .p2p as soon as Ariadne's Thread is on the machine. Three paths:

Easiest — chain-install the Windows service

Bundle the Thread installer and run AriadneResolver-Setup.exe /S after your own install finishes. Theseus does this today. The resolver registers an NRPT rule that only affects BNS TLDs, so everything else on the machine is untouched.

JavaScript / Electron — import the resolver

import { resolveName } from
  "https://code.silentmode.st/silentmode/ariadne/raw/branch/master/Argus/src/lib/resolver-web.js";

const { records } = await resolveName("sirius.x");
// records.s3 → "bns/sirius.x/"

Any language — HTTP API against a local Thread

If the Thread is installed, it exposes a local HTTP API on 127.0.0.1:4626:

GET /api/name/<name>
GET /api/dns/<name>
GET /health

Full embedding guide, platform coverage table, and the NSIS/Inno chain-install snippets live on ariadne.x/dev/#embed.

Build an extension

Extensions are everyone's add-ons: published by any BCNR name holder, signed by that name's wallet, verified on your users' devices before a byte runs. They are not plug-ins — plug-ins are first-party and ship inside Theseus (see Plug-ins).

Publish an extension

  1. Register a .x name on sirius.x.
  2. Build your extension tarball — same manifest as Chrome extensions plus a Silent Mode addon.json.
  3. Upload it with PUT /api/ext, signed with the wallet that owns the name.
  4. Theseus verifies the signature against the on-chain owner before installing. Updates work the same way; your users' Theseus checks for a newer updates.json on your own Sia bucket.

Walk-through: theseus.x/extensions/publish.

Connect Claude to Theseus

The built-in Claude connector is a local MCP server: Claude Code or Claude Desktop on the same computer can open and read your tabs, click, type into rich editors, paste formatted text and upload files, in the profile where you are already signed in. It is off until you turn it on, and it reaches nothing beyond this computer.

Set it up

  1. Turn it on in Settings › Extensions › Claude connector. Its panel (the connector icon in the toolbar) shows the address, the token, the sites you have approved, the upload folders and a live log.
  2. Copy the command from the panel and run it once. --scope user makes it available in every project:
claude mcp add --scope user --transport http theseus http://127.0.0.1:47800/mcp --header "Authorization: Bearer <token from the panel>"

claude mcp list should then show theseus as connected. For Claude Desktop, the panel's Claude Desktop tab has a ready claude_desktop_config.json entry. It runs a small stdio relay through the Theseus executable itself, so there is nothing else to install.

What Claude can do

list_tabs, open_tab, navigate, activate_tab, close_tab, screenshot, read_page_text, snapshot (the accessibility tree, with a ref per element), click, type, press_key, paste_html, paste_text, upload_file, wait_for, and evaluate while you allow it. Typing is real key input and pastes go through the system clipboard and the browser's own paste, so editors such as Medium's accept them; your clipboard is put back afterwards.

What keeps you in charge. The connector listens on 127.0.0.1 only, behind a random token; requests from web pages are refused. There is no browser-wide debugging port: each tab is driven on its own. Theseus asks the first time Claude acts on a site. Password and one-time-code fields are always refused, files can be uploaded only from folders you add, and running page scripts (evaluate) is a separate switch, off by default. Every action is logged with its time. The toolbar chip's ✕ stops the connector at once; Revoke token cuts off every client you set up.

The connector ships with the next Theseus release after 0.3.106. Design notes: DESIGN-claude-connector.md ↗.

Plug-ins (first-party)

Plug-ins are the few add-ons Silent Mode builds, signs with the operator key, and ships as part of Theseus — Aegis wallet, Ariadne's Thread, Shield blocker. Users enable or disable them from Settings › Plug-ins.

If you have an idea for one, open an issue on silentmode/theseus first — the plug-in surface is intentionally small and we triage proposals before accepting code.

Where everything lives