Files
oh-my-openagent/src/cli/AGENTS.md
YeonGyu-Kim a1fe0f8517 docs(agents): regenerate all AGENTS.md files with comprehensive codebase analysis
- Regenerated root AGENTS.md with overview, structure, and complexity hotspots
- Regenerated all 7 subdirectory AGENTS.md files: hooks, tools, features, agents, cli, auth, shared
- Used 11 background explore agents for comprehensive feature and architecture analysis
- All files within size limits (root: 112 lines, subdirs: 57-68 lines)
- Includes where-to-look guide, conventions, anti-patterns, and agent model information

🤖 Generated with assistance of oh-my-opencode
2026-01-02 10:42:38 +09:00

2.0 KiB

CLI KNOWLEDGE BASE

OVERVIEW

CLI for oh-my-opencode: interactive installer, health diagnostics (doctor), runtime launcher. Entry: bunx oh-my-opencode.

STRUCTURE

cli/
├── index.ts              # Commander.js entry, subcommand routing
├── install.ts            # Interactive TUI installer (477 lines)
├── config-manager.ts     # JSONC parsing, env detection (669 lines)
├── types.ts              # CLI-specific types
├── doctor/               # Health check system
│   ├── index.ts          # Doctor command entry
│   ├── constants.ts      # Check categories
│   ├── types.ts          # Check result interfaces
│   └── checks/           # 17+ individual checks
├── get-local-version/    # Version detection
└── run/                  # OpenCode session launcher

CLI COMMANDS

Command Purpose
install Interactive setup wizard
doctor Environment health checks
run Launch OpenCode session

DOCTOR CHECKS

17+ checks in doctor/checks/:

  • version.ts (OpenCode >= 1.0.150)
  • config.ts (plugin registered)
  • bun.ts, node.ts, git.ts
  • anthropic-auth.ts, openai-auth.ts, google-auth.ts
  • lsp-.ts, mcp-.ts

CONFIG-MANAGER (669 lines)

  • JSONC support (comments, trailing commas)
  • Multi-source: User (~/.config/opencode/) + Project (.opencode/)
  • Zod validation
  • Legacy format migration
  • Error aggregation for doctor

HOW TO ADD CHECK

  1. Create src/cli/doctor/checks/my-check.ts:
    export const myCheck: DoctorCheck = {
      name: "my-check",
      category: "environment",
      check: async () => {
        return { status: "pass" | "warn" | "fail", message: "..." }
      }
    }
    
  2. Add to src/cli/doctor/checks/index.ts

ANTI-PATTERNS

  • Blocking prompts in non-TTY (check process.stdout.isTTY)
  • Hardcoded paths (use shared utilities)
  • JSON.parse for user files (use parseJsonc)
  • Silent failures in doctor checks