U-Pool is a desktop provider and account switcher for Claude Code, Claude Desktop, Codex, Hermes, OpenCode, and Cursor. It keeps endpoint URLs, API keys, models, and provider accounts in per-tool lists, then makes a selected provider or Cursor account active without manual edits to settings.json, config.toml, other tool configuration files, or Windows user environment variables. Its reachability probe sends a plain GET request to a provider’s models endpoint to measure latency without running a completion or consuming a token. The app uses a Python backend, a statically exported Next.js interface, and a native OS webview rather than Electron or a Node runtime. Its source of truth is ~/.u-pool/config.json; on each switch, an adapter changes only the keys it owns in each target file and preserves other settings such as plugins, hooks, marketplaces, themes, MCP servers, and project trust. Writes use a temporary file followed by os.replace, keep an adjacent backup, and stop rather than overwrite a configuration file that cannot be parsed. Existing provider settings can be imported on first run. The app includes provider presets, an official-vendor mode that clears U-Pool-managed settings, per-provider permission controls, cached installed Claude Code and Codex versions, and controls that erase the transcript and prompt-history files for those CLIs.
The Cursor pool stores multiple signed-in Cursor accounts, accepts cookies in common formats, displays account names, email addresses, plans, and usage, and switches accounts by changing the specified Cursor authentication database rows. Claude Desktop is currently preview-only: providers can be saved and tested but are not written to its configuration. Hermes and OpenCode have dedicated configuration writers, while Codex writes its provider, model, approval, sandbox, web-search, and authentication settings. The core configuration operations are cross-platform. Windows-only integrations write owned variables to HKCU\\Environment and broadcast changes, launch the app at sign-in, and provide an in-app updater; Hermes, OpenCode, and Cursor read credentials from their own files and do not use those environment-variable writes.