opencode-multi-accounts
v1.0.0
Published
OpenCode API key manager with multi-account rotation
Maintainers
Readme
OpenCode Multi-Accounts
Features
- OpenCode API key management with multi-account rotation
- Interactive CLI with select-based flows
- Local dashboard with account management
- OpenCode plugin support
- AES-256-GCM encrypted store support
- 4 rotation strategies: round-robin, least-used, random, weighted-round-robin
- 83 passing tests
Install
Global install
pnpm add -g opencode-multi-accountsFrom source
git clone https://github.com/devcomfort/opencode-multi-accounts.git
cd opencode-multi-accounts
pnpm install
pnpm run build
pnpm link --globalQuick start
# Install and register as OpenCode plugin
ocma install
# Add an OpenCode API-key account
ocma add work --api-key oc-xxxxx
# Add another OpenCode account
ocma add personal --api-key oc-yyyyy
# See current accounts
ocma
# Switch accounts
ocma use work
# Rotate
ocma next
# Start the dashboard
ocma webOpenCode Plugin Registration
ocma install automatically registers the package as an OpenCode plugin by adding
"opencode-multi-accounts" to ~/.config/opencode/opencode.json.
If OpenCode is not installed, ocma install fails with an error message.
After registration, restart OpenCode. The plugin intercepts API calls and rotates through configured accounts automatically — no manual switching needed.
CLI overview
ocma add [alias] Add account
ocma remove [alias] Remove account
ocma list List accounts
ocma use [alias] Switch active account
ocma status Show current status
ocma next Test next account rotation
ocma strategy [name] Set rotation strategy
ocma weight [a] [w] Set account weight
ocma install Register as OpenCode plugin
ocma doctor Diagnose installation issues
ocma web Start web dashboardThe CLI is interactive when arguments are omitted:
addprompts for alias, provider, and credential inputuse,remove,strategy, andweightall support select prompts- running
ocmawith no subcommand shows the current account summary
Architecture
┌─────────────────────────────────────────────────────────────┐
│ OpenCode Multi-Accounts │
├─────────────────────────────────────────────────────────────┤
│ CLI Layer │ Web Layer │ Plugin Layer │
│ src/cli.ts │ src/web.ts │ src/opencode-plugin.ts│
├─────────────────────────────────────────────────────────────┤
│ Core Services │
│ src/services/account-service.ts │
│ src/services/store-service.ts │
├─────────────────────────────────────────────────────────────┤
│ Core Domain │
│ src/store.ts encrypted account store │
│ src/rotation.ts account rotation engine │
│ src/types.ts shared domain types │
│ src/adapters.ts external tool adapters │
└─────────────────────────────────────────────────────────────┘Layer responsibilities
- CLI Layer: interactive prompts, command routing, local UX
- Web Layer: REST API, dashboard serving, static dashboard serving
- Plugin Layer: OpenCode integration and API key management
- Core Layer: persistence, account state, rotation, account typing
Dashboard
ocma web --port 3434 --host 127.0.0.1Dashboard capabilities:
- account list and active-state view
- switch / enable / delete actions
- add-account modal
- strategy selector and next-account test button
Development
git clone https://github.com/devcomfort/opencode-multi-accounts.git
cd opencode-multi-accounts
pnpm install
pnpm run build
pnpm test
pnpm link --globalLicense
MIT
