neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
Manage Claude Code and Codex accounts, inspect usage limits and switch managed requests. Download the Switchboard beta for macOS and Windows.
Developer toolsRust · TypeScriptGitHub @passioncode-aiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Fabric Switchboard: Fabric's local account manager for Claude Code and Codex CLI (desktop app + CLI, macOS and Windows), also usable on its own. AGPL-3.0 or commercial.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Fabric Switchboard keeps your Claude Code and Codex CLI accounts in one local workbench. See
reported usage, separate work from personal accounts, and choose what handles your next
request. It is a desktop app plus the switchboard command-line tool, for macOS and
Windows. It is Fabric's account tool and works on its own; built by
PassionCode.ai, whose toolkit is for AI-native teams.
Status: beta. v0.4.0-beta.1
is published (prerelease, macOS universal notarized by Apple + Windows x64 unsigned). Real
provider login and end-to-end requests with live accounts are not yet verified.Read the full README ↗English · Русский
Local accounts and quota management for Claude Code, Codex CLI and Kimi Code. See which account is in use, check its remaining quota and open a session for your project. A desktop app, CLI and MCP server for macOS (Apple silicon and Intel), Windows (x64 and ARM) and Linux (x64 and ARM), built by PassionCode.ai.
Download for macOS · Download for Windows · Download for Linux · Installation · Release notes · Product page
The 0.6.13 Accounts screen, shown with synthetic demo accounts. Screenshot provenance.
| Task | In Switchboard |
|---|---|
| Keep work and personal accounts separate | Groups of projects with accounts of their own (a project is a repository with its worktrees and clones; one project may be in several groups), folder rules and isolated session homes |
| See where accounts and tokens go | Statistics: requests and the provider's own token counts by group, project, account, coding agent and day, with a daily chart |
| Know which company an account belongs to | Organizations: companies with their e-mail domains; an account belongs by your choice, its team at the provider or its address; a group of an organization runs only on that organization's accounts; the list can be read from PassionCode.ai |
| Give agents on API keys a key per group | API keys: the machine's OpenRouter key and a key per group, picked by the folder an agent starts in |
| See when another account is needed | Reported usage, reset countdowns and explicit unknown or expired states |
| Choose the next account | Native Claude switching or managed request routing; a response in progress keeps its identity |
| Use Kimi Code subscriptions | Official sign-in, membership and usage, then launch the chosen account in a project |
| Choose and configure coding agents | See which agents are installed, which take over work and the default one; OpenCode and Hermes continue workflows on an OpenRouter key; pick the model from OpenRouter's list |
| Work from your terminal or agent | switchboard CLI, MCP tools and launch --in-place |
Saved secrets use macOS Keychain, Windows DPAPI or the Linux Secret Service (GNOME Keyring, KWallet, KeePassXC). Automatic switching is opt-in. Kimi accounts stay in their own sign-in folders; Switchboard does not copy or renew them. See account behavior and agent support for the boundaries of each mode.
Latest published: the latest release (its number is on that page; installed copies update themselves). Recent changes: 0.6.81 no longer makes everything wait while one account's sign-in is read slowly from the vault; 0.6.80 shows which organization a session works for; 0.6.79 keeps a sign-in that was being renewed when you quit or Switchboard updated. Release notes for each version are in CHANGELOG.md.
macOS releases are universal, Developer ID signed and notarized by Apple. Windows releases (x64, arm64) are built natively and Authenticode-signed (Azure Artifact Signing, timestamped). Linux releases (x64, arm64) are a .deb, an AppImage and a CLI tarball. Installed copies from 0.6.1 update automatically. Builds and signatures come from the protected release workflow. Live-provider acceptance is tracked separately on the board (SB-01, SB-02, SB-15).
Open source under the GNU AGPL-3.0, with a commercial license available. License details.
With a coding agent: once the CLI is on PATH (step 3), ask the agent to run switchboard onboard
and follow it: it does every setup step it can and tells you the ones that are yours (opening the
app, signing in). switchboard onboard --status shows where setup stands.
Working for an organization (a company group, its seats, terminals in its folders): follow docs/ORGANIZATION.md (Russian) after step 1.
SHA256SUMS from the release
(shasum -a 256 -c SHA256SUMS --ignore-missing → OK), then follow
docs/INSTALL.md. The app is Developer ID signed, notarized and stapled
(spctl -a -vv "Fabric Switchboard.app" → accepted, source=Notarized Developer ID); the
CLI beside it runs (./switchboard --version). Open the app once after installing: it moves
accounts saved by earlier versions, opens at login from then on, and shows a five-step tour.switchboard accounts add … --secret-stdin; secrets come from your own Claude or Codex
sign-in and go to the OS vault, never into an environment variable or an argument.
--data-dir <absolute dir> points the CLI at a separate, disposable app-data directory.switchboard CLI on PATH by linking the one inside the app, so it updates
with the app: ln -sf "/Applications/Fabric Switchboard.app/Contents/MacOS/switchboard" ~/.local/bin/switchboard (or Agents → Link switchboard into ~/.local/bin;
INSTALL.md), then either claude plugin marketplace add passioncode-ai/fabric-switchboard
and claude plugin install switchboard@switchboard (server plus the switching-accounts
skill), or claude mcp add --scope user switchboard -- switchboard mcp. claude mcp list
then shows switchboard … ✔ Connected; a first call is the read-only
switchboard_accounts tool (an empty vault answers {"accounts":[]}). To prove it with a
real client without changing your agent config or saved accounts, write a temporary
mcp.json with {"mcpServers":{"switchboard":{"command":"switchboard","args":["--data-dir","<absolute empty dir>","mcp","--read-only"]}}}
and run claude -p "Call the switchboard_accounts tool once and reply with exactly its JSON result." --strict-mcp-config --mcp-config mcp.json --allowedTools mcp__switchboard__switchboard_accounts --max-turns 3
→ (run 2026-09-30 with the published 0.4.0 CLI:
). Even with and
an empty data dir, reads the current Claude Code and Codex sign-in
(on macOS the Claude Code Keychain item, through ) to report
which saved account is signed in; it writes, switches and prints nothing from it. 0.4.1
does not change this read: its Keychain change covers Switchboard's own items. All agents and
tools: . Measured from the published archive:
;
0.4.1 from the published archive: .macOS needs macOS 14+, Xcode Command Line Tools, Rust and Node.js. Windows needs Rust
(MSVC), Visual Studio C++ Build Tools, Node.js and WebView2. The official claude or
codex CLI is needed only to sign in or launch a session, not to run the manager. The
verification status of each platform is in the current build report.
npm ci
npm run app:dev
Build a local app:
npm run app:build
open 'target/release/bundle/macos/Fabric Switchboard.app'
That command alone does not establish Developer ID signing or notarization, and a build
signed on a laptop is a debug build. Releases are built, signed and notarized only by the
release workflow in GitHub Actions.
Binaries are not stored in Git. Dependencies are pinned by Cargo.lock and
package-lock.json; byte-for-byte reproducibility is not claimed.
CLI from source:
cargo build --release --locked -p switchboard-cli
./target/release/switchboard --help
./target/release/switchboard accounts list
./target/release/switchboard serve
serve, or an open desktop app, owns the proxy and the sessions. Other CLI commands talk
to that owner automatically. Without an owner, metadata operations run under an exclusive
lock; login and launch need a running runtime.
To look at the interface with synthetic data: npm run dev, then
http://127.0.0.1:1420/?demo=1. A plain web page does not connect to the vault. The browser
demo has no real accounts, no CLI launch and no network calls to providers.
switchboard serve must stay open; one managed session home per provider and group).
Ticked, it runs in the account's own home with a direct connection to the provider, and
later Select actions do not affect it.Use Switchboard in line with the terms of Anthropic and OpenAI. Breaking a provider's terms can get your account blocked. You are responsible for how you use your accounts.
The persistent credential stays in the OS vault, but isolated mode writes the working copy of the access token that the official CLI needs into a private file (0600 on macOS, a user-only DACL on Windows). The refresh token is not written there; when the token expires, sign in again. Details, recovery after a failure and removal: operations guide.
./scripts/check.sh
# The explicitly requested test creates and deletes only a random synthetic Keychain item:
cargo test -p switchboard-core native_vault_roundtrip_uses_only_random_app_owned_item -- --ignored --exact
| Path | Responsibility |
|---|---|
crates/switchboard-core | accounts, Keychain/DPAPI, atomic metadata, route snapshot |
crates/switchboard-proxy | loopback authentication, requests, streams, usage |
crates/switchboard-runtime | shared owner, control API, official login and CLI launch |
crates/switchboard-cli | the switchboard command, stdin and JSON |
src-tauri | native window and IPC to the shared runtime |
src | TypeScript interface and the clearly labelled demo |
docs | research, specification, scenarios, contracts and evidence |
Full hosted CI runs nightly (the macOS gate and build, and the native Windows fixtures), and pushes and pull requests do not run the full suite. A workflow existing does not mean it passed.
A release is a vX.Y.Z tag on the merged release commit. The tag starts
release.yml in the protected release environment, approved by checks (operator, 2026-10-11): its guard
job lets the signing jobs start only when main contains the tagged commit and nightly.yml passed on it
(started on the tag when it did not run), and only release-approvers can push a v* tag; the macOS app and CLI are signed
with the organization's CI Developer ID and notarized (the app stapled); Windows is built
natively and Authenticode-signed through Azure Artifact Signing, every signature checked Valid
before publishing (the receipt says windows_authenticode: SIGNED); Linux is built natively on
x64 and arm64; then every file
is attested (Sigstore), summed in SHA256SUMS, GPG-signed and published with the notes from
CHANGELOG.md. A rehearsal runs the same path on a vX.Y.Z-rc.N tag with
gh workflow run release.yml --ref vX.Y.Z-rc.N -f publish=false and creates no release.
Details, receipts and the Azure setup: DISTRIBUTION.md. Other projects' sources were studied but are not included as
dependencies.
Open source under the GNU AGPL-3.0. A commercial license is
available for use that does not meet the AGPL's terms: passioncode.ai/business.
v0.4.1-beta.1 is the first release under the AGPL. Versions up to and including v0.4.0-beta.1 were released under PolyForm Noncommercial or Internal Use (v0.4.0-beta.1) and the MIT License (v0.3.1-beta.1 and earlier, commits up to and including 7c36f4a); those releases keep their licence.
The built app and CLI include third-party components under their own licenses; see THIRD_PARTY_NOTICES.md. Contributions are accepted under the CLA, which allows this dual licence; see CONTRIBUTING.md.
{"accounts":[]}--read-onlyswitchboard_accountssecurity find-generic-passwordnpm ci, then ./scripts/check.sh (the gate) and npm run app:dev; the CLI is
cargo build --release --locked -p switchboard-cli → target/release/switchboard. Start at
docs/HANDOFF.md, AGENTS.md and the layout table in
Checks and layout; tests use synthetic fixtures only.