- 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
69 lines
2.0 KiB
Markdown
69 lines
2.0 KiB
Markdown
# 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`:
|
|
```typescript
|
|
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
|