oh-my-opencode/src/cli/AGENTS.md
YeonGyu-Kim 1f8f7b592b docs(AGENTS): update line counts and stats across all AGENTS.md files
- Update main AGENTS.md with current file sizes
- Update complexity hotspot line counts
- Update agent count from 11 to 32 files
- Update CLI utility count to 70
- Update test file count from 100+ to 163

🤖 Generated with assistance of OhMyOpenCode
2026-02-08 17:51:30 +09:00

3.0 KiB
Raw Blame History

CLI KNOWLEDGE BASE

OVERVIEW

CLI entry: bunx oh-my-opencode. 70 CLI utilities and commands with Commander.js + @clack/prompts TUI.

Commands: install (interactive setup), doctor (14 health checks), run (session launcher), get-local-version, mcp-oauth

STRUCTURE

cli/
├── index.ts              # Commander.js entry (5 commands)
├── install.ts            # Interactive TUI (542 lines)
├── config-manager.ts     # JSONC parsing (667 lines)
├── model-fallback.ts     # Model fallback configuration
├── types.ts              # InstallArgs, InstallConfig
├── doctor/
│   ├── index.ts          # Doctor entry
│   ├── runner.ts         # Check orchestration
│   ├── formatter.ts      # Colored output
│   ├── constants.ts      # Check IDs, symbols
│   ├── types.ts          # CheckResult, CheckDefinition
│   └── checks/           # 14 checks, 23 files
│       ├── version.ts    # OpenCode + plugin version
│       ├── config.ts     # JSONC validity, Zod
│       ├── auth.ts       # Anthropic, OpenAI, Google
│       ├── dependencies.ts # AST-Grep, Comment Checker
│       ├── lsp.ts        # LSP connectivity
│       ├── mcp.ts        # MCP validation
│       ├── model-resolution.ts # Model resolution check (323 lines)
│       └── gh.ts         # GitHub CLI
├── run/
│   ├── index.ts          # Session launcher
│   └── events.ts         # CLI run events (325 lines)
├── mcp-oauth/
│   └── index.ts          # MCP OAuth flow
└── get-local-version/
    └── index.ts          # Version detection

COMMANDS

Command Purpose
install Interactive setup with provider selection
doctor 14 health checks for diagnostics
run Launch session with todo enforcement
get-local-version Version detection and update check
mcp-oauth MCP OAuth authentication flow

DOCTOR CATEGORIES (14 Checks)

Category Checks
installation opencode, plugin
configuration config validity, Zod, model-resolution
authentication anthropic, openai, google
dependencies ast-grep, comment-checker, gh-cli
tools LSP, MCP
updates version comparison

HOW TO ADD CHECK

  1. Create src/cli/doctor/checks/my-check.ts
  2. Export getXXXCheckDefinition() factory returning CheckDefinition
  3. Add to getAllCheckDefinitions() in checks/index.ts

TUI FRAMEWORK

  • @clack/prompts: select(), spinner(), intro(), outro()
  • picocolors: Terminal colors for status and headers
  • Symbols: ✓ (pass), ✗ (fail), ⚠ (warn), (info)

ANTI-PATTERNS

  • Blocking in non-TTY: Always check process.stdout.isTTY
  • Direct JSON.parse: Use parseJsonc() from shared utils
  • Silent failures: Return warn or fail in doctor instead of throwing
  • Hardcoded paths: Use getOpenCodeConfigPaths() from config-manager.ts