🛠️account-pool❖ Community
Run several accounts of one provider in Hermes' credential pool: `hermes account <provider> <action>` adds accounts with email verification, shows live usage per account, keeps the least-used account first (fill_first + a 5-minute balance timer over every provider with accounts), parks accounts for hours or on a weekly schedule, shows which bot is on which account and its tokens at API prices, alerts on dead logins, a full pool or a runaway bot, and can start an idle account's 5-hour window with one tiny request (wake). Adapters for anthropic and openai-codex; generic commands for any pool provider. Optional Accounts page in Hermes Desktop. Linux and Windows. Disclosure — logins stay in Hermes: park holds an entry out of rotation in Hermes' pool (mark_exhausted_and_rotate, reason "parked") and unpark is reset_status; the plugin's park list holds labels, ids and times only; expired tokens are refreshed by Hermes (try_refresh_matching); sign-in, in the terminal and on the Desktop page, runs `hermes auth add`; other profiles' accounts are read with read_credential_pool. It uses each account's access token as Hermes stores it for live usage and the email check (api.anthropic.com/api/oauth/usage and /profile, chatgpt.com/backend-api/wham/usage, with the client headers of Hermes' usage fetcher) and for wake (a command, a page button, or the timer after the opt-in `wake auto-on`): one one-word request per account through Hermes' Anthropic client or the Codex Responses endpoint, and the account's model list. Telegram alerts through `hermes send -t telegram` to the bot's home channel or a chat id kept in account-pool.json; no telemetry. Its session tracker, a post_api_request hook, runs in every profile and writes labels, ids and token counts only. `setup` writes plugins.enabled of every profile, links the plugin into every profile, removes the retired account-pool-tracker (`hermes plugins remove`) and, with --timer, adds a systemd user timer (Linux) or a Task Scheduler task for the user (Windows, no admin rights). Runs systemctl --user and notify-send (Linux), schtasks, powershell.exe and taskkill (Windows), hermes config set, hermes auth add/remove, hermes send, hermes plugins remove; reads every profile's config.yaml and state.db (read-only), the gateway config (whether the Telegram bot has a home channel) and /proc on Linux. The command registers in the default profile only and provides no tools. Live usage, the email check and wake send each account's own access token from Hermes' pool straight to its vendor with Claude Code (anthropic) and Codex CLI (openai-codex) client headers. The session tracker reads the running agent's current pool account (label and id only) by scanning Python thread frames for Hermes' private _credential_pool. On the first run after 3.x it moves parked logins from account-pool-parked.json back into Hermes' pool and deletes that file.
Tools