From a72bfe5c0250533c81cce474f2b84e25d5b96fcd Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Fri, 5 Dec 2025 09:28:36 +0900 Subject: [PATCH] docs: consolidate README.en.md into README.md --- README.en.md | 191 -------------------------------------------------- README.ko.md | 2 +- README.md | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 192 insertions(+), 193 deletions(-) delete mode 100644 README.en.md mode change 120000 => 100644 README.md diff --git a/README.en.md b/README.en.md deleted file mode 100644 index cc7e980..0000000 --- a/README.en.md +++ /dev/null @@ -1,191 +0,0 @@ -English | [한국어](README.ko.md) - -## Contents - -- [Oh My OpenCode](#oh-my-opencode) - - [Installation](#installation) - - [Configuration](#configuration) - - [Disable specific MCPs](#disable-specific-mcps) - - [TL;DR](#tldr) - - [Why OpenCode \& Why Oh My OpenCode](#why-opencode--why-oh-my-opencode) - - [Features](#features) - - [Hooks](#hooks) - - [Agents](#agents) - - [Tools](#tools) - - [Built-in LSP Tools](#built-in-lsp-tools) - - [Built-in AST-Grep Tools](#built-in-ast-grep-tools) - - [Safe Grep](#safe-grep) - - [Built-in MCPs](#built-in-mcps) - - [Other Features](#other-features) - - [Author's Note](#authors-note) - - [Warnings](#warnings) - -# Oh My OpenCode - -Oh My OpenCode - -oMoMoMoMoMo··· - -If you work in tech, you likely appreciated [Claude Code](https://www.claude.com/product/claude-code). -If you are a hacker, you will fucking falling in love with [OpenCode](https://github.com/sst/opencode). - -You don't write code just for a paycheck? You write because you genuinely love it? - -To you, OpenCode will feel like the paradigm shift from Windows to Linux. Not you? It's still worth the investment. Give it 10 minutes. Your work and life will improve. I promise. - -## Installation - -Add to `~/.config/opencode/opencode.json`: - -```json -{ - "plugin": [ - "oh-my-opencode" - ] -} -``` - -## Configuration - -You can configure Oh My OpenCode by creating a `oh-my-opencode.json` (or `.oh-my-opencode.json`) file in your project root. - -### JSON Schema Support - -For autocompletion and validation in VS Code (or other editors), add the `$schema` property to your configuration file. - -**Using Remote Schema (Recommended):** -```json -{ - "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/dist/oh-my-opencode.schema.json", - "disabled_mcps": ["context7"] -} -``` - -**Using Local Schema:** -```json -{ - "$schema": "./node_modules/oh-my-opencode/dist/oh-my-opencode.schema.json" -} -``` - -### Disable specific MCPs - -If you want to disable specific built-in MCPs, you can use the `disabled_mcps` option. - -```json -{ - "disabled_mcps": ["context7", "websearch_exa"] -} -``` - -## TL;DR - -- **Model Setup Required** - - This plugin utilizes models from [OpenCode Zen](https://opencode.ai/docs/zen/), Google, OpenAI, and Anthropic. - - For Anthropic models, use [OpenCode's built-in Claude Code Max Plan login](https://opencode.ai/docs/providers/#anthropic). - - For OpenAI models, I recommend the [OpenCode-OpenAI-Codex-Auth plugin](https://github.com/numman-ali/opencode-openai-codex-auth). - - For Gemini and GPT, use [VibeProxy (macOS Only)](https://github.com/automazeio/vibeproxy) or [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI). -- **Truth be told, the rest is optional. Just install it. Once set up, no further learning is required. It simply evolves.** -- **Paste this document into Claude Code, OpenCode, or Cursor, instruct it to install, and ask for assistance if needed. It works seamlessly.** - - If you are an LLM Agent, install the required plugins and dependencies, then run `opencode auth login` via tmux to assist the user with configuration. - -## Why OpenCode & Why Oh My OpenCode - -OpenCode is limitlessly extensible and customizable. Zero screen flicker. -[LSP](https://opencode.ai/docs/lsp/), [linters, formatters](https://opencode.ai/docs/formatters/)? Automatic and fully configurable. -You can mix and orchestrate models to your exact specifications. -It is feature-rich. It is elegant. It handles the terminal without hesitation. It is high-performance. - -But here is the catch: the learning curve is steep. There is a lot to master. - -Inspired by [AmpCode](https://ampcode.com) and [Claude Code](https://code.claude.com/docs/en/overview), I have implemented their features here—often with superior execution. -Because this is OpenCode. - -Consider this a superior AmpCode, a superior Claude Code, or simply a specialized distribution. - -I believe in the right tool for the job. For your wallet's sake, use CLIProxyAPI or VibeProxy. Employ the best LLMs from frontier labs. You are in command. - -**Note**: This setup is highly opinionated. It represents the generic component of my personal configuration, so it evolves constantly. I have spent tokens worth $20,000 just for my personal programming usages, and this plugin represents the apex of that experience. You simply inherit the best. If you have superior ideas, PRs are welcome. - -## Features - -### Hooks - -- **Todo Continuation Enforcer**: Forces the agent to complete all tasks before exiting. Eliminates the common LLM issue of "giving up halfway". -- **Context Window Monitor**: Implements [Context Window Anxiety Management](https://agentic-patterns.com/patterns/context-window-anxiety-management/). When context usage exceeds 70%, it reminds the agent that resources are sufficient, preventing rushed or low-quality output. -- **Session Notification**: Sends a native OS notification when the job is done (macOS, Linux, Windows). -- **Session Recovery**: Automatically recovers from API errors by injecting missing tool results and correcting thinking block violations, ensuring session stability. -- **Comment Checker**: Detects and reports unnecessary comments after code modifications. Smartly ignores valid patterns (BDD, directives, docstrings, shebangs) to keep the codebase clean from AI-generated artifacts. - -### Agents -- **oracle** (`openai/gpt-5.1`): The architect. Expert in code reviews and strategy. Uses GPT-5.1 for its unmatched logic and reasoning capabilities. Inspired by AmpCode. -- **librarian** (`anthropic/claude-haiku-4-5`): Multi-repo analysis, documentation lookup, and implementation examples. Haiku is chosen for its speed, competence, excellent tool usage, and cost-efficiency. Inspired by AmpCode. -- **explore** (`opencode/grok-code`): Fast exploration and pattern matching. Claude Code uses Haiku; we use Grok. It is currently free, blazing fast, and intelligent enough for file traversal. Inspired by Claude Code. -- **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`): A designer turned developer. Creates stunning UIs. Uses Gemini because its creativity and UI code generation are superior. -- **document-writer** (`google/gemini-3-pro-preview`): A technical writing expert. Gemini is a wordsmith; it writes prose that flows naturally. - -### Tools - -#### Built-in LSP Tools - -[OpenCode provides LSP](https://opencode.ai/docs/lsp/), but only for analysis. Oh My OpenCode equips you with navigation and refactoring tools matching the same specification. - -- **lsp_hover**: Get type info, docs, signatures at position -- **lsp_goto_definition**: Jump to symbol definition -- **lsp_find_references**: Find all usages across workspace -- **lsp_document_symbols**: Get file's symbol outline -- **lsp_workspace_symbols**: Search symbols by name across project -- **lsp_diagnostics**: Get errors/warnings before build -- **lsp_servers**: List available LSP servers -- **lsp_prepare_rename**: Validate rename operation -- **lsp_rename**: Rename symbol across workspace -- **lsp_code_actions**: Get available quick fixes/refactorings -- **lsp_code_action_resolve**: Apply a code action - -#### Built-in AST-Grep Tools - -- **ast_grep_search**: AST-aware code pattern search (25 languages) -- **ast_grep_replace**: AST-aware code replacement - -#### Safe Grep - -- **safe_grep**: Content search with safety limits (5min timeout, 10MB output). - - The default `grep` lacks safeguards. On a large codebase, a broad pattern can cause CPU overload and indefinite hanging. - - `safe_grep` enforces strict limits. - - **Note**: Default `grep` is disabled to prevent Agent confusion. `safe_grep` delivers full `grep` functionality with safety assurance. - -#### Built-in MCPs - -- **websearch_exa**: Exa AI web search. Performs real-time web searches and can scrape content from specific URLs. Returns LLM-optimized context from relevant websites. -- **context7**: Library documentation lookup. Fetches up-to-date documentation for any library to assist with accurate coding. - -### Other Features - -- **Terminal Title**: Auto-updates terminal title with session status (idle ○, processing ◐, tool ⚡, error ✖). Supports tmux. - -## Author's Note - -Install Oh My OpenCode. Do not waste time configuring OpenCode from scratch. -I have resolved the friction so you don't have to. The answers are in this plugin. If OpenCode is Arch Linux, Oh My OpenCode is [Omarchy](https://omarchy.org/). - -Enjoy the multi-model stability and rich feature set that other harnesses promise but fail to deliver. -I will continue testing and updating here. I am the primary user of this project. - -- Who possesses the best raw logic? -- Who is the debugging god? -- Who writes the best prose? -- Who dominates frontend? -- Who owns backend? -- Which model is fastest for daily driving? -- What new features are other harnesses shipping? - -Do not overthink it. I have done the thinking. I will integrate the best practices. I will update this. -If this sounds arrogant and you have a superior solution, send a PR. You are welcome. - -As of now, I have no affiliation with any of the projects or models mentioned here. This plugin is purely based on personal experimentation and preference. - -I constructed 99% of this project using OpenCode. I focused on functional verification. This documentation has been personally reviewed and comprehensively rewritten, so you can rely on it with confidence. -## Warnings - -- If you are on [1.0.132](https://github.com/sst/opencode/releases/tag/v1.0.132) or lower, OpenCode has a bug that might break config. - - [The fix](https://github.com/sst/opencode/pull/5040) was merged after 1.0.132, so use a newer version. diff --git a/README.ko.md b/README.ko.md index d52faa5..3a66aa2 100644 --- a/README.ko.md +++ b/README.ko.md @@ -1,4 +1,4 @@ -[English](README.en.md) | 한국어 +[English](README.md) | 한국어 ## 목차 diff --git a/README.md b/README.md deleted file mode 120000 index 3336f8d..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -README.en.md \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..cc7e980 --- /dev/null +++ b/README.md @@ -0,0 +1,191 @@ +English | [한국어](README.ko.md) + +## Contents + +- [Oh My OpenCode](#oh-my-opencode) + - [Installation](#installation) + - [Configuration](#configuration) + - [Disable specific MCPs](#disable-specific-mcps) + - [TL;DR](#tldr) + - [Why OpenCode \& Why Oh My OpenCode](#why-opencode--why-oh-my-opencode) + - [Features](#features) + - [Hooks](#hooks) + - [Agents](#agents) + - [Tools](#tools) + - [Built-in LSP Tools](#built-in-lsp-tools) + - [Built-in AST-Grep Tools](#built-in-ast-grep-tools) + - [Safe Grep](#safe-grep) + - [Built-in MCPs](#built-in-mcps) + - [Other Features](#other-features) + - [Author's Note](#authors-note) + - [Warnings](#warnings) + +# Oh My OpenCode + +Oh My OpenCode + +oMoMoMoMoMo··· + +If you work in tech, you likely appreciated [Claude Code](https://www.claude.com/product/claude-code). +If you are a hacker, you will fucking falling in love with [OpenCode](https://github.com/sst/opencode). + +You don't write code just for a paycheck? You write because you genuinely love it? + +To you, OpenCode will feel like the paradigm shift from Windows to Linux. Not you? It's still worth the investment. Give it 10 minutes. Your work and life will improve. I promise. + +## Installation + +Add to `~/.config/opencode/opencode.json`: + +```json +{ + "plugin": [ + "oh-my-opencode" + ] +} +``` + +## Configuration + +You can configure Oh My OpenCode by creating a `oh-my-opencode.json` (or `.oh-my-opencode.json`) file in your project root. + +### JSON Schema Support + +For autocompletion and validation in VS Code (or other editors), add the `$schema` property to your configuration file. + +**Using Remote Schema (Recommended):** +```json +{ + "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/dist/oh-my-opencode.schema.json", + "disabled_mcps": ["context7"] +} +``` + +**Using Local Schema:** +```json +{ + "$schema": "./node_modules/oh-my-opencode/dist/oh-my-opencode.schema.json" +} +``` + +### Disable specific MCPs + +If you want to disable specific built-in MCPs, you can use the `disabled_mcps` option. + +```json +{ + "disabled_mcps": ["context7", "websearch_exa"] +} +``` + +## TL;DR + +- **Model Setup Required** + - This plugin utilizes models from [OpenCode Zen](https://opencode.ai/docs/zen/), Google, OpenAI, and Anthropic. + - For Anthropic models, use [OpenCode's built-in Claude Code Max Plan login](https://opencode.ai/docs/providers/#anthropic). + - For OpenAI models, I recommend the [OpenCode-OpenAI-Codex-Auth plugin](https://github.com/numman-ali/opencode-openai-codex-auth). + - For Gemini and GPT, use [VibeProxy (macOS Only)](https://github.com/automazeio/vibeproxy) or [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI). +- **Truth be told, the rest is optional. Just install it. Once set up, no further learning is required. It simply evolves.** +- **Paste this document into Claude Code, OpenCode, or Cursor, instruct it to install, and ask for assistance if needed. It works seamlessly.** + - If you are an LLM Agent, install the required plugins and dependencies, then run `opencode auth login` via tmux to assist the user with configuration. + +## Why OpenCode & Why Oh My OpenCode + +OpenCode is limitlessly extensible and customizable. Zero screen flicker. +[LSP](https://opencode.ai/docs/lsp/), [linters, formatters](https://opencode.ai/docs/formatters/)? Automatic and fully configurable. +You can mix and orchestrate models to your exact specifications. +It is feature-rich. It is elegant. It handles the terminal without hesitation. It is high-performance. + +But here is the catch: the learning curve is steep. There is a lot to master. + +Inspired by [AmpCode](https://ampcode.com) and [Claude Code](https://code.claude.com/docs/en/overview), I have implemented their features here—often with superior execution. +Because this is OpenCode. + +Consider this a superior AmpCode, a superior Claude Code, or simply a specialized distribution. + +I believe in the right tool for the job. For your wallet's sake, use CLIProxyAPI or VibeProxy. Employ the best LLMs from frontier labs. You are in command. + +**Note**: This setup is highly opinionated. It represents the generic component of my personal configuration, so it evolves constantly. I have spent tokens worth $20,000 just for my personal programming usages, and this plugin represents the apex of that experience. You simply inherit the best. If you have superior ideas, PRs are welcome. + +## Features + +### Hooks + +- **Todo Continuation Enforcer**: Forces the agent to complete all tasks before exiting. Eliminates the common LLM issue of "giving up halfway". +- **Context Window Monitor**: Implements [Context Window Anxiety Management](https://agentic-patterns.com/patterns/context-window-anxiety-management/). When context usage exceeds 70%, it reminds the agent that resources are sufficient, preventing rushed or low-quality output. +- **Session Notification**: Sends a native OS notification when the job is done (macOS, Linux, Windows). +- **Session Recovery**: Automatically recovers from API errors by injecting missing tool results and correcting thinking block violations, ensuring session stability. +- **Comment Checker**: Detects and reports unnecessary comments after code modifications. Smartly ignores valid patterns (BDD, directives, docstrings, shebangs) to keep the codebase clean from AI-generated artifacts. + +### Agents +- **oracle** (`openai/gpt-5.1`): The architect. Expert in code reviews and strategy. Uses GPT-5.1 for its unmatched logic and reasoning capabilities. Inspired by AmpCode. +- **librarian** (`anthropic/claude-haiku-4-5`): Multi-repo analysis, documentation lookup, and implementation examples. Haiku is chosen for its speed, competence, excellent tool usage, and cost-efficiency. Inspired by AmpCode. +- **explore** (`opencode/grok-code`): Fast exploration and pattern matching. Claude Code uses Haiku; we use Grok. It is currently free, blazing fast, and intelligent enough for file traversal. Inspired by Claude Code. +- **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`): A designer turned developer. Creates stunning UIs. Uses Gemini because its creativity and UI code generation are superior. +- **document-writer** (`google/gemini-3-pro-preview`): A technical writing expert. Gemini is a wordsmith; it writes prose that flows naturally. + +### Tools + +#### Built-in LSP Tools + +[OpenCode provides LSP](https://opencode.ai/docs/lsp/), but only for analysis. Oh My OpenCode equips you with navigation and refactoring tools matching the same specification. + +- **lsp_hover**: Get type info, docs, signatures at position +- **lsp_goto_definition**: Jump to symbol definition +- **lsp_find_references**: Find all usages across workspace +- **lsp_document_symbols**: Get file's symbol outline +- **lsp_workspace_symbols**: Search symbols by name across project +- **lsp_diagnostics**: Get errors/warnings before build +- **lsp_servers**: List available LSP servers +- **lsp_prepare_rename**: Validate rename operation +- **lsp_rename**: Rename symbol across workspace +- **lsp_code_actions**: Get available quick fixes/refactorings +- **lsp_code_action_resolve**: Apply a code action + +#### Built-in AST-Grep Tools + +- **ast_grep_search**: AST-aware code pattern search (25 languages) +- **ast_grep_replace**: AST-aware code replacement + +#### Safe Grep + +- **safe_grep**: Content search with safety limits (5min timeout, 10MB output). + - The default `grep` lacks safeguards. On a large codebase, a broad pattern can cause CPU overload and indefinite hanging. + - `safe_grep` enforces strict limits. + - **Note**: Default `grep` is disabled to prevent Agent confusion. `safe_grep` delivers full `grep` functionality with safety assurance. + +#### Built-in MCPs + +- **websearch_exa**: Exa AI web search. Performs real-time web searches and can scrape content from specific URLs. Returns LLM-optimized context from relevant websites. +- **context7**: Library documentation lookup. Fetches up-to-date documentation for any library to assist with accurate coding. + +### Other Features + +- **Terminal Title**: Auto-updates terminal title with session status (idle ○, processing ◐, tool ⚡, error ✖). Supports tmux. + +## Author's Note + +Install Oh My OpenCode. Do not waste time configuring OpenCode from scratch. +I have resolved the friction so you don't have to. The answers are in this plugin. If OpenCode is Arch Linux, Oh My OpenCode is [Omarchy](https://omarchy.org/). + +Enjoy the multi-model stability and rich feature set that other harnesses promise but fail to deliver. +I will continue testing and updating here. I am the primary user of this project. + +- Who possesses the best raw logic? +- Who is the debugging god? +- Who writes the best prose? +- Who dominates frontend? +- Who owns backend? +- Which model is fastest for daily driving? +- What new features are other harnesses shipping? + +Do not overthink it. I have done the thinking. I will integrate the best practices. I will update this. +If this sounds arrogant and you have a superior solution, send a PR. You are welcome. + +As of now, I have no affiliation with any of the projects or models mentioned here. This plugin is purely based on personal experimentation and preference. + +I constructed 99% of this project using OpenCode. I focused on functional verification. This documentation has been personally reviewed and comprehensively rewritten, so you can rely on it with confidence. +## Warnings + +- If you are on [1.0.132](https://github.com/sst/opencode/releases/tag/v1.0.132) or lower, OpenCode has a bug that might break config. + - [The fix](https://github.com/sst/opencode/pull/5040) was merged after 1.0.132, so use a newer version.