Skip to main content

Switchboard

Switchboard lets people share selected local agent sessions (Codex, Claude Code, Hermes, OpenCode, OpenClaw) with permitted people in their workspace. Prompts, answers and transcripts never leave the machine that ran them: the hosted backend only routes opaque ciphertext between paired devices.

This repo is the local side: the connector (Python CLI, resident service and MCP server) and the desktop app. The hosted backend and web app live in switchboard-control.

How it works

flowchart LR
    U[Caller asks a question] --> H[Caller harness]
    H <-->|MCP over stdio| L[Local MCP server]
    L <-->|loopback| C[Caller connector]
    C -->|signed encrypted envelope| M[Switchboard backend<br/>directory, grants, opaque mailbox]
    M -->|ciphertext only| W[Owner connector<br/>mailbox worker]
    W -->|decrypt, recheck grant and policy| A[Harness adapter]
    A --> S[Owner session<br/>or caller-isolated fork]
    A -->|encrypted answer, reverse path| H
  • The connector discovers local harness sessions, publishes the shared ones to the backend directory, and runs the mailbox worker that executes incoming requests after rechecking the grant and the owner's local policy.
  • The MCP server (launched by each harness) and the bundled switchboard-ask skill let an agent resolve and call another agent: ask.research is your own local agent, ask.sim.research an agent shared with you.
  • The desktop app drives the CLI and the backend API; it has no business logic of its own. See apps/desktop.
src/switchboard/
├── harness/          adapters for Codex, Hermes, Claude Code, OpenCode and OpenClaw
├── local/            the resident service: CLI, connector, approval bridge, policy
│   ├── owner_app/    owner-local A2A app (task API, agent cards, web UI)
│   ├── mcp/          harness-facing MCP server and remote calls
│   ├── policy/       owner policy authoring and enforcement
│   └── skills/       the switchboard-ask skill installed into every harness
├── mailbox/          envelope crypto, client and worker, QEDB ledger
└── qedb/             A2A task store and proofs
apps/desktop/         Tauri desktop app
docs/                 harness registration details
tests/                mirrors src/switchboard

Getting started

Requires Python 3.12+ and uv.

uv sync
make check        # pre-commit hooks, tests and build: the CI gate

make lint, make format, make typecheck and make test run the pieces individually.

To run the connector from your checkout against a backend:

uv run switchboard install --switchboard-url <control backend URL>
uv run switchboard pair --device-name "dev machine"
uv run switchboard status

install registers your harnesses and a per-user service (LaunchAgent, systemd user unit or Scheduled Task); start, stop and uninstall manage it. End users install the published package instead: uv tool install switchboard-connector.

The connector (connector-v* tag, PyPI) and the desktop app (desktop-v* tag, switchboard-releases) are released separately by CI.

License

Business Source License 1.1, see LICENSE.md.

Metadata

Release files for switchboard-connector 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for switchboard-connector 0.2.1
File Interpreter ABI Platform
switchboard_connector-0.2.1-py3-none-any.whl Python 3 none any Details

Release files / switchboard_connector-0.2.1-py3-none-any.whl

Download URL switchboard_connector-0.2.1-py3-none-any.whl
Size 190.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d92d11dbbf4fcc298a4e1a20a40868bb7a806047e6f97dfa46c73493357c66c
BLAKE2b-256 checksum
How to use checksums
9108f73427b66be0464aa5a7d4d390d85bdbb37308d6460aab925e3b07f33edd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

This release

0.2.1 This release

1 release file

0.2.0

1 release file

0.1.15

1 release file

0.1.14

1 release file

0.1.13

1 release file

0.1.11

1 release file

0.1.10

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page