oh-my-opencode 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +89 -126
- package/README.md +89 -140
- package/package.json +1 -1
- package/dist/oh-my-opencode.schema.json +0 -159
package/README.ko.md
CHANGED
|
@@ -5,10 +5,6 @@
|
|
|
5
5
|
- [Oh My OpenCode](#oh-my-opencode)
|
|
6
6
|
- [세 줄 요약](#세-줄-요약)
|
|
7
7
|
- [설치](#설치)
|
|
8
|
-
- [설정](#설정)
|
|
9
|
-
- [특정 MCP 비활성화](#특정-mcp-비활성화)
|
|
10
|
-
- [특정 Agent 비활성화](#특정-agent-비활성화)
|
|
11
|
-
- [Agent 설정](#agent-설정)
|
|
12
8
|
- [LLM Agent를 위한 안내](#llm-agent를-위한-안내)
|
|
13
9
|
- [Why OpenCode & Why Oh My OpenCode](#why-opencode--why-oh-my-opencode)
|
|
14
10
|
- [기능](#기능)
|
|
@@ -20,6 +16,7 @@
|
|
|
20
16
|
- [Safe Grep](#safe-grep)
|
|
21
17
|
- [내장 MCPs](#내장-mcps)
|
|
22
18
|
- [기타 편의 기능](#기타-편의-기능)
|
|
19
|
+
- [설정](#설정)
|
|
23
20
|
- [작성자의 노트](#작성자의-노트)
|
|
24
21
|
- [주의](#주의)
|
|
25
22
|
|
|
@@ -61,112 +58,6 @@ OpenCode 가 낭만이 사라진것같은 오늘날의 시대에, 당신에게
|
|
|
61
58
|
}
|
|
62
59
|
```
|
|
63
60
|
|
|
64
|
-
## 설정
|
|
65
|
-
|
|
66
|
-
`oh-my-opencode.json` (또는 `.oh-my-opencode.json`) 파일을 프로젝트 루트에 생성해서 Oh My OpenCode를 입맛대로 설정할 수 있어.
|
|
67
|
-
|
|
68
|
-
```json
|
|
69
|
-
{
|
|
70
|
-
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/dist/oh-my-opencode.schema.json"
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
설정 파일은 스키마를 통해 자동완성을 지원합니다. 자세한 내용은 각 기능 섹션에서 설명합니다.
|
|
75
|
-
|
|
76
|
-
### 특정 MCP 비활성화
|
|
77
|
-
|
|
78
|
-
특정 MCP가 거슬린다면 끌 수 있어.
|
|
79
|
-
|
|
80
|
-
```json
|
|
81
|
-
{
|
|
82
|
-
"disabled_mcps": ["websearch_exa"]
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### 특정 Agent 비활성화
|
|
87
|
-
|
|
88
|
-
특정 에이전트가 마음에 안 들거나, 토큰을 아끼고 싶다면 비활성화해.
|
|
89
|
-
비활성화 가능한 목록: `oracle`, `librarian`, `explore`, `frontend-ui-ux-engineer`, `document-writer`
|
|
90
|
-
|
|
91
|
-
```json
|
|
92
|
-
{
|
|
93
|
-
"disabled_agents": ["frontend-ui-ux-engineer"]
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Agent 설정
|
|
98
|
-
|
|
99
|
-
각 에이전트의 모델, 프롬프트, 권한 등을 세밀하게 조정할 수 있어.
|
|
100
|
-
|
|
101
|
-
**설정 옵션:**
|
|
102
|
-
|
|
103
|
-
| 옵션 | 설명 |
|
|
104
|
-
|------|------|
|
|
105
|
-
| `model` | 사용할 모델 ID (예: `anthropic/claude-sonnet-4`) |
|
|
106
|
-
| `temperature` | 창의성 조절 (0.0 ~ 2.0) |
|
|
107
|
-
| `top_p` | 단어 선택 다양성 (0.0 ~ 1.0) |
|
|
108
|
-
| `prompt` | 시스템 프롬프트 오버라이드 |
|
|
109
|
-
| `tools` | 특정 도구 활성화/비활성화 (`{"tool_name": false}`) |
|
|
110
|
-
| `disable` | 에이전트 비활성화 (`true`/`false`) |
|
|
111
|
-
| `description` | 에이전트 설명 수정 |
|
|
112
|
-
| `mode` | 에이전트 모드 (`subagent`, `primary`, `all`) |
|
|
113
|
-
| `color` | 터미널 출력 색상 (HEX 코드) |
|
|
114
|
-
| `permission` | 권한 설정 (아래 표 참조) |
|
|
115
|
-
|
|
116
|
-
**권한(`permission`) 옵션:**
|
|
117
|
-
|
|
118
|
-
각 권한은 `"ask"`(물어보기), `"allow"`(허용), `"deny"`(거부) 중 하나로 설정 가능해.
|
|
119
|
-
|
|
120
|
-
| 권한 | 설명 |
|
|
121
|
-
|------|------|
|
|
122
|
-
| `edit` | 파일 수정 권한 |
|
|
123
|
-
| `bash` | 쉘 명령어 실행 권한 |
|
|
124
|
-
| `webfetch` | 웹 콘텐츠 가져오기 권한 |
|
|
125
|
-
| `doom_loop` | 반복 작업 허용 여부 |
|
|
126
|
-
| `external_directory` | 외부 디렉토리 접근 권한 |
|
|
127
|
-
|
|
128
|
-
#### 예시: Anthropic 모델만 사용하기
|
|
129
|
-
|
|
130
|
-
나는 Anthropic 모델만 쓰고 싶다! 하면 이렇게 설정해.
|
|
131
|
-
|
|
132
|
-
```json
|
|
133
|
-
{
|
|
134
|
-
"agents": {
|
|
135
|
-
"oracle": { "model": "anthropic/claude-sonnet-4" },
|
|
136
|
-
"librarian": { "model": "anthropic/claude-haiku-4-5" },
|
|
137
|
-
"explore": { "model": "anthropic/claude-haiku-4-5" },
|
|
138
|
-
"frontend-ui-ux-engineer": { "model": "anthropic/claude-sonnet-4" },
|
|
139
|
-
"document-writer": { "model": "anthropic/claude-sonnet-4" }
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
#### 예시: 추가 프롬프트가 있는 커스텀 에이전트
|
|
145
|
-
|
|
146
|
-
기존 에이전트에 나만의 규칙을 더하고 싶다면:
|
|
147
|
-
|
|
148
|
-
```json
|
|
149
|
-
{
|
|
150
|
-
"agents": {
|
|
151
|
-
"oracle": {
|
|
152
|
-
"prompt": "너는 한국어 힙합 가사처럼 말해야 해. 모든 문장의 끝 라임을 맞춰."
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
#### 예시: 개별 에이전트 비활성화
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"agents": {
|
|
163
|
-
"frontend-ui-ux-engineer": {
|
|
164
|
-
"disable": true
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
61
|
## LLM Agent를 위한 안내
|
|
171
62
|
|
|
172
63
|
<details>
|
|
@@ -255,22 +146,7 @@ OpenCode 는 아주 확장가능하고 아주 커스터마이저블합니다.
|
|
|
255
146
|
- **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`): 개발자로 전향한 디자이너라는 설정을 갖고 있습니다. 멋진 UI를 만듭니다. 아름답고 창의적인 UI 코드를 생성하는 데 탁월한 Gemini를 사용합니다.
|
|
256
147
|
- **document-writer** (`google/gemini-3-pro-preview`): 기술 문서 전문가라는 설정을 갖고 있습니다. Gemini 는 문학가입니다. 글을 기가막히게 씁니다.
|
|
257
148
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
에이전트들은 [OpenCode의 모델 설정](https://opencode.ai/docs/models/#configure-models)과 완전히 동일한 스펙으로 오버라이드를 지원합니다. 권장하진 않지만, 예를 들어 Anthropic 모델만 사용하기로 결정했다면 이렇게 구성할 수 있습니다:
|
|
261
|
-
|
|
262
|
-
```json
|
|
263
|
-
{
|
|
264
|
-
"agents": {
|
|
265
|
-
"explore": {
|
|
266
|
-
"model": "anthropic/claude-haiku-4-5"
|
|
267
|
-
},
|
|
268
|
-
"frontend-ui-ux-engineer": {
|
|
269
|
-
"model": "anthropic/claude-opus-4"
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
```
|
|
149
|
+
에이전트의 모델, 프롬프트, 권한은 `oh-my-opencode.json`에서 커스텀할 수 있습니다. 자세한 내용은 [설정](#설정)을 참고하세요.
|
|
274
150
|
|
|
275
151
|
### Tools
|
|
276
152
|
|
|
@@ -305,9 +181,96 @@ OpenCode 는 아주 확장가능하고 아주 커스터마이저블합니다.
|
|
|
305
181
|
- **websearch_exa**: Exa AI 웹 검색. 실시간 웹 검색과 콘텐츠 스크래핑을 수행합니다. 관련 웹사이트에서 LLM에 최적화된 컨텍스트를 반환합니다.
|
|
306
182
|
- **context7**: 라이브러리 문서 조회. 정확한 코딩을 위해 최신 라이브러리 문서를 가져옵니다.
|
|
307
183
|
|
|
184
|
+
필요 없다면 `oh-my-opencode.json`에서 비활성화할 수 있습니다:
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
{
|
|
188
|
+
"disabled_mcps": ["websearch_exa"]
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
308
192
|
### 기타 편의 기능
|
|
309
193
|
- **Terminal Title**: 세션 상태에 따라 터미널 타이틀을 자동 업데이트합니다 (유휴 ○, 처리중 ◐, 도구 ⚡, 에러 ✖). tmux를 지원합니다.
|
|
310
194
|
|
|
195
|
+
## 설정
|
|
196
|
+
|
|
197
|
+
설정 파일 위치 (우선순위 순):
|
|
198
|
+
1. `.opencode/oh-my-opencode.json` (프로젝트)
|
|
199
|
+
2. `~/.config/opencode/oh-my-opencode.json` (사용자)
|
|
200
|
+
|
|
201
|
+
Schema 자동 완성이 지원됩니다:
|
|
202
|
+
|
|
203
|
+
```json
|
|
204
|
+
{
|
|
205
|
+
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Agents
|
|
210
|
+
|
|
211
|
+
내장 에이전트 설정을 오버라이드할 수 있습니다:
|
|
212
|
+
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"agents": {
|
|
216
|
+
"explore": {
|
|
217
|
+
"model": "anthropic/claude-haiku-4-5",
|
|
218
|
+
"temperature": 0.5
|
|
219
|
+
},
|
|
220
|
+
"frontend-ui-ux-engineer": {
|
|
221
|
+
"disable": true
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
각 에이전트에서 지원하는 옵션: `model`, `temperature`, `top_p`, `prompt`, `tools`, `disable`, `description`, `mode`, `color`, `permission`.
|
|
228
|
+
|
|
229
|
+
또는 `disabled_agents`로 비활성화할 수 있습니다:
|
|
230
|
+
|
|
231
|
+
```json
|
|
232
|
+
{
|
|
233
|
+
"disabled_agents": ["oracle", "frontend-ui-ux-engineer"]
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
사용 가능한 에이전트: `oracle`, `librarian`, `explore`, `frontend-ui-ux-engineer`, `document-writer`
|
|
238
|
+
|
|
239
|
+
### MCPs
|
|
240
|
+
|
|
241
|
+
내장된 MCP를 비활성화합니다:
|
|
242
|
+
|
|
243
|
+
```json
|
|
244
|
+
{
|
|
245
|
+
"disabled_mcps": ["context7", "websearch_exa"]
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
더 자세한 내용은 [OpenCode MCP Servers](https://opencode.ai/docs/mcp-servers)를 참조하세요.
|
|
250
|
+
|
|
251
|
+
### LSP
|
|
252
|
+
|
|
253
|
+
Oh My OpenCode의 LSP 도구는 오직 **리팩토링(이름 변경, 코드 액션)만을 위한 것**입니다. 분석용 LSP는 OpenCode 자체에서 처리합니다.
|
|
254
|
+
|
|
255
|
+
`lsp` 옵션을 통해 LSP 서버를 설정합니다:
|
|
256
|
+
|
|
257
|
+
```json
|
|
258
|
+
{
|
|
259
|
+
"lsp": {
|
|
260
|
+
"typescript-language-server": {
|
|
261
|
+
"command": ["typescript-language-server", "--stdio"],
|
|
262
|
+
"extensions": [".ts", ".tsx"],
|
|
263
|
+
"priority": 10
|
|
264
|
+
},
|
|
265
|
+
"pylsp": {
|
|
266
|
+
"disabled": true
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
각 서버는 다음을 지원합니다: `command`, `extensions`, `priority`, `env`, `initialization`, `disabled`.
|
|
273
|
+
|
|
311
274
|
## 작성자의 노트
|
|
312
275
|
|
|
313
276
|
Oh My OpenCode 를 설치하세요. 복잡하게 OpenCode 구성을 만들지마세요.
|
package/README.md
CHANGED
|
@@ -6,10 +6,6 @@ English | [한국어](README.ko.md)
|
|
|
6
6
|
- [TL;DR](#tldr)
|
|
7
7
|
- [Installation](#installation)
|
|
8
8
|
- [For LLM Agents](#for-llm-agents)
|
|
9
|
-
- [Configuration](#configuration)
|
|
10
|
-
- [Disable specific MCPs](#disable-specific-mcps)
|
|
11
|
-
- [Disable specific Agents](#disable-specific-agents)
|
|
12
|
-
- [Agent Configuration](#agent-configuration)
|
|
13
9
|
- [Why OpenCode & Why Oh My OpenCode](#why-opencode--why-oh-my-opencode)
|
|
14
10
|
- [Features](#features)
|
|
15
11
|
- [Hooks](#hooks)
|
|
@@ -20,6 +16,7 @@ English | [한국어](README.ko.md)
|
|
|
20
16
|
- [Safe Grep](#safe-grep)
|
|
21
17
|
- [Built-in MCPs](#built-in-mcps)
|
|
22
18
|
- [Other Features](#other-features)
|
|
19
|
+
- [Configuration](#configuration)
|
|
23
20
|
- [Author's Note](#authors-note)
|
|
24
21
|
- [Warnings](#warnings)
|
|
25
22
|
|
|
@@ -110,126 +107,6 @@ cat ~/.config/opencode/opencode.json # Should contain "oh-my-opencode" in plugi
|
|
|
110
107
|
|
|
111
108
|
</details>
|
|
112
109
|
|
|
113
|
-
## Configuration
|
|
114
|
-
|
|
115
|
-
You can configure Oh My OpenCode by creating a `oh-my-opencode.json` (or `.oh-my-opencode.json`) file in your project root.
|
|
116
|
-
|
|
117
|
-
Configuration supports autocomplete via schema. Details are covered in each feature section below.
|
|
118
|
-
|
|
119
|
-
```json
|
|
120
|
-
{
|
|
121
|
-
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/dist/oh-my-opencode.schema.json"
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Disable specific MCPs
|
|
126
|
-
|
|
127
|
-
If you want to disable specific built-in MCPs, you can use the `disabled_mcps` option.
|
|
128
|
-
|
|
129
|
-
```json
|
|
130
|
-
{
|
|
131
|
-
"disabled_mcps": ["context7", "websearch_exa"]
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Disable specific Agents
|
|
136
|
-
|
|
137
|
-
If you want to disable specific built-in agents, you can use the `disabled_agents` option.
|
|
138
|
-
|
|
139
|
-
```json
|
|
140
|
-
{
|
|
141
|
-
"disabled_agents": ["explore", "frontend-ui-ux-engineer"]
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
Available agents: `oracle`, `librarian`, `explore`, `frontend-ui-ux-engineer`, `document-writer`
|
|
146
|
-
|
|
147
|
-
### Agent Configuration
|
|
148
|
-
|
|
149
|
-
You can override the configuration of any built-in agent using the `agents` option. This allows you to change models, adjust creativity, modify permissions, or disable agents individually.
|
|
150
|
-
|
|
151
|
-
#### Configuration Options
|
|
152
|
-
|
|
153
|
-
| Option | Type | Description |
|
|
154
|
-
|--------|------|-------------|
|
|
155
|
-
| `model` | string | Override the default model (e.g., "anthropic/claude-sonnet-4") |
|
|
156
|
-
| `temperature` | number (0-2) | Controls randomness (0 = deterministic, 2 = creative) |
|
|
157
|
-
| `top_p` | number (0-1) | Nucleus sampling parameter |
|
|
158
|
-
| `prompt` | string | Additional system prompt to append |
|
|
159
|
-
| `tools` | object | Enable/disable specific tools (e.g., `{"websearch_exa": false}`) |
|
|
160
|
-
| `disable` | boolean | Completely disable the agent |
|
|
161
|
-
| `description` | string | Override agent description |
|
|
162
|
-
| `mode` | "subagent" | "primary" | "all" | When agent is available |
|
|
163
|
-
| `color` | string | Hex color code for terminal output (e.g., "#FF0000") |
|
|
164
|
-
| `permission` | object | Permission settings for sensitive operations |
|
|
165
|
-
|
|
166
|
-
#### Permission Options
|
|
167
|
-
|
|
168
|
-
| Option | Values | Description |
|
|
169
|
-
|--------|--------|-------------|
|
|
170
|
-
| `edit` | "ask" | "allow" | "deny" | File modification permissions |
|
|
171
|
-
| `bash` | "ask" | "allow" | "deny" | object | Shell command execution permissions |
|
|
172
|
-
| `webfetch` | "ask" | "allow" | "deny" | Web access permissions |
|
|
173
|
-
| `doom_loop` | "ask" | "allow" | "deny" | Infinite loop prevention |
|
|
174
|
-
| `external_directory` | "ask" | "allow" | "deny" | Access outside project root |
|
|
175
|
-
|
|
176
|
-
#### Examples
|
|
177
|
-
|
|
178
|
-
**Using Only Anthropic Models**
|
|
179
|
-
|
|
180
|
-
This configuration forces all agents to use Anthropic models, suitable for users with only Anthropic API access.
|
|
181
|
-
|
|
182
|
-
```json
|
|
183
|
-
{
|
|
184
|
-
"agents": {
|
|
185
|
-
"oracle": {
|
|
186
|
-
"model": "anthropic/claude-sonnet-4"
|
|
187
|
-
},
|
|
188
|
-
"librarian": {
|
|
189
|
-
"model": "anthropic/claude-haiku-4-5"
|
|
190
|
-
},
|
|
191
|
-
"explore": {
|
|
192
|
-
"model": "anthropic/claude-haiku-4-5"
|
|
193
|
-
},
|
|
194
|
-
"frontend-ui-ux-engineer": {
|
|
195
|
-
"model": "anthropic/claude-sonnet-4"
|
|
196
|
-
},
|
|
197
|
-
"document-writer": {
|
|
198
|
-
"model": "anthropic/claude-sonnet-4"
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
**Custom Agent with Additional Prompt**
|
|
205
|
-
|
|
206
|
-
Inject custom instructions into an agent's system prompt.
|
|
207
|
-
|
|
208
|
-
```json
|
|
209
|
-
{
|
|
210
|
-
"agents": {
|
|
211
|
-
"frontend-ui-ux-engineer": {
|
|
212
|
-
"prompt": "ALWAYS use Tailwind CSS. NEVER use inline styles. Prefer dark mode defaults.",
|
|
213
|
-
"temperature": 0.8
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
**Disable Agents Individually**
|
|
220
|
-
|
|
221
|
-
You can also disable agents using the `disable` property within the agent config.
|
|
222
|
-
|
|
223
|
-
```json
|
|
224
|
-
{
|
|
225
|
-
"agents": {
|
|
226
|
-
"explore": {
|
|
227
|
-
"disable": true
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
```
|
|
232
|
-
|
|
233
110
|
## Why OpenCode & Why Oh My OpenCode
|
|
234
111
|
|
|
235
112
|
OpenCode is limitlessly extensible and customizable. Zero screen flicker.
|
|
@@ -265,22 +142,7 @@ I believe in the right tool for the job. For your wallet's sake, use CLIProxyAPI
|
|
|
265
142
|
- **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.
|
|
266
143
|
- **document-writer** (`google/gemini-3-pro-preview`): A technical writing expert. Gemini is a wordsmith; it writes prose that flows naturally.
|
|
267
144
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
Agents follow the exact same model configuration spec as [OpenCode's model configuration](https://opencode.ai/docs/models/#configure-models). While not generally recommended, if you decide to use only Anthropic models, you could configure like this:
|
|
271
|
-
|
|
272
|
-
```json
|
|
273
|
-
{
|
|
274
|
-
"agents": {
|
|
275
|
-
"explore": {
|
|
276
|
-
"model": "anthropic/claude-haiku-4-5"
|
|
277
|
-
},
|
|
278
|
-
"frontend-ui-ux-engineer": {
|
|
279
|
-
"model": "anthropic/claude-opus-4"
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
```
|
|
145
|
+
Agent models, prompts, and permissions can be customized via `oh-my-opencode.json`. See [Configuration](#configuration) for details.
|
|
284
146
|
|
|
285
147
|
### Tools
|
|
286
148
|
|
|
@@ -317,10 +179,97 @@ Agents follow the exact same model configuration spec as [OpenCode's model confi
|
|
|
317
179
|
- **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.
|
|
318
180
|
- **context7**: Library documentation lookup. Fetches up-to-date documentation for any library to assist with accurate coding.
|
|
319
181
|
|
|
182
|
+
Don't need these? Disable them via `oh-my-opencode.json`:
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
{
|
|
186
|
+
"disabled_mcps": ["websearch_exa"]
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
320
190
|
### Other Features
|
|
321
191
|
|
|
322
192
|
- **Terminal Title**: Auto-updates terminal title with session status (idle ○, processing ◐, tool ⚡, error ✖). Supports tmux.
|
|
323
193
|
|
|
194
|
+
## Configuration
|
|
195
|
+
|
|
196
|
+
Configuration file locations (in priority order):
|
|
197
|
+
1. `.opencode/oh-my-opencode.json` (project)
|
|
198
|
+
2. `~/.config/opencode/oh-my-opencode.json` (user)
|
|
199
|
+
|
|
200
|
+
Schema autocomplete is supported:
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{
|
|
204
|
+
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Agents
|
|
209
|
+
|
|
210
|
+
Override built-in agent settings:
|
|
211
|
+
|
|
212
|
+
```json
|
|
213
|
+
{
|
|
214
|
+
"agents": {
|
|
215
|
+
"explore": {
|
|
216
|
+
"model": "anthropic/claude-haiku-4-5",
|
|
217
|
+
"temperature": 0.5
|
|
218
|
+
},
|
|
219
|
+
"frontend-ui-ux-engineer": {
|
|
220
|
+
"disable": true
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Each agent supports: `model`, `temperature`, `top_p`, `prompt`, `tools`, `disable`, `description`, `mode`, `color`, `permission`.
|
|
227
|
+
|
|
228
|
+
Or disable agents via `disabled_agents`:
|
|
229
|
+
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"disabled_agents": ["oracle", "frontend-ui-ux-engineer"]
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Available agents: `oracle`, `librarian`, `explore`, `frontend-ui-ux-engineer`, `document-writer`
|
|
237
|
+
|
|
238
|
+
### MCPs
|
|
239
|
+
|
|
240
|
+
Disable built-in MCPs:
|
|
241
|
+
|
|
242
|
+
```json
|
|
243
|
+
{
|
|
244
|
+
"disabled_mcps": ["context7", "websearch_exa"]
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
See [OpenCode MCP Servers](https://opencode.ai/docs/mcp-servers) for more.
|
|
249
|
+
|
|
250
|
+
### LSP
|
|
251
|
+
|
|
252
|
+
Oh My OpenCode's LSP tools are for **refactoring only** (rename, code actions). Analysis LSP is handled by OpenCode itself.
|
|
253
|
+
|
|
254
|
+
Configure LSP servers via `lsp` option:
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"lsp": {
|
|
259
|
+
"typescript-language-server": {
|
|
260
|
+
"command": ["typescript-language-server", "--stdio"],
|
|
261
|
+
"extensions": [".ts", ".tsx"],
|
|
262
|
+
"priority": 10
|
|
263
|
+
},
|
|
264
|
+
"pylsp": {
|
|
265
|
+
"disabled": true
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Each server supports: `command`, `extensions`, `priority`, `env`, `initialization`, `disabled`.
|
|
272
|
+
|
|
324
273
|
## Author's Note
|
|
325
274
|
|
|
326
275
|
Install Oh My OpenCode. Do not waste time configuring OpenCode from scratch.
|
package/package.json
CHANGED
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/dist/oh-my-opencode.schema.json",
|
|
4
|
-
"title": "Oh My OpenCode Configuration",
|
|
5
|
-
"description": "Configuration schema for oh-my-opencode plugin",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"properties": {
|
|
8
|
-
"$schema": {
|
|
9
|
-
"type": "string"
|
|
10
|
-
},
|
|
11
|
-
"disabled_mcps": {
|
|
12
|
-
"type": "array",
|
|
13
|
-
"items": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"enum": [
|
|
16
|
-
"websearch_exa",
|
|
17
|
-
"context7"
|
|
18
|
-
]
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
"disabled_agents": {
|
|
22
|
-
"type": "array",
|
|
23
|
-
"items": {
|
|
24
|
-
"type": "string",
|
|
25
|
-
"enum": [
|
|
26
|
-
"oracle",
|
|
27
|
-
"librarian",
|
|
28
|
-
"explore",
|
|
29
|
-
"frontend-ui-ux-engineer",
|
|
30
|
-
"document-writer"
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"agents": {
|
|
35
|
-
"type": "object",
|
|
36
|
-
"propertyNames": {
|
|
37
|
-
"type": "string",
|
|
38
|
-
"enum": [
|
|
39
|
-
"oracle",
|
|
40
|
-
"librarian",
|
|
41
|
-
"explore",
|
|
42
|
-
"frontend-ui-ux-engineer",
|
|
43
|
-
"document-writer"
|
|
44
|
-
]
|
|
45
|
-
},
|
|
46
|
-
"additionalProperties": {
|
|
47
|
-
"type": "object",
|
|
48
|
-
"properties": {
|
|
49
|
-
"model": {
|
|
50
|
-
"type": "string"
|
|
51
|
-
},
|
|
52
|
-
"temperature": {
|
|
53
|
-
"type": "number",
|
|
54
|
-
"minimum": 0,
|
|
55
|
-
"maximum": 2
|
|
56
|
-
},
|
|
57
|
-
"top_p": {
|
|
58
|
-
"type": "number",
|
|
59
|
-
"minimum": 0,
|
|
60
|
-
"maximum": 1
|
|
61
|
-
},
|
|
62
|
-
"prompt": {
|
|
63
|
-
"type": "string"
|
|
64
|
-
},
|
|
65
|
-
"tools": {
|
|
66
|
-
"type": "object",
|
|
67
|
-
"propertyNames": {
|
|
68
|
-
"type": "string"
|
|
69
|
-
},
|
|
70
|
-
"additionalProperties": {
|
|
71
|
-
"type": "boolean"
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"disable": {
|
|
75
|
-
"type": "boolean"
|
|
76
|
-
},
|
|
77
|
-
"description": {
|
|
78
|
-
"type": "string"
|
|
79
|
-
},
|
|
80
|
-
"mode": {
|
|
81
|
-
"type": "string",
|
|
82
|
-
"enum": [
|
|
83
|
-
"subagent",
|
|
84
|
-
"primary",
|
|
85
|
-
"all"
|
|
86
|
-
]
|
|
87
|
-
},
|
|
88
|
-
"color": {
|
|
89
|
-
"type": "string",
|
|
90
|
-
"pattern": "^#[0-9A-Fa-f]{6}$"
|
|
91
|
-
},
|
|
92
|
-
"permission": {
|
|
93
|
-
"type": "object",
|
|
94
|
-
"properties": {
|
|
95
|
-
"edit": {
|
|
96
|
-
"type": "string",
|
|
97
|
-
"enum": [
|
|
98
|
-
"ask",
|
|
99
|
-
"allow",
|
|
100
|
-
"deny"
|
|
101
|
-
]
|
|
102
|
-
},
|
|
103
|
-
"bash": {
|
|
104
|
-
"anyOf": [
|
|
105
|
-
{
|
|
106
|
-
"type": "string",
|
|
107
|
-
"enum": [
|
|
108
|
-
"ask",
|
|
109
|
-
"allow",
|
|
110
|
-
"deny"
|
|
111
|
-
]
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"type": "object",
|
|
115
|
-
"propertyNames": {
|
|
116
|
-
"type": "string"
|
|
117
|
-
},
|
|
118
|
-
"additionalProperties": {
|
|
119
|
-
"type": "string",
|
|
120
|
-
"enum": [
|
|
121
|
-
"ask",
|
|
122
|
-
"allow",
|
|
123
|
-
"deny"
|
|
124
|
-
]
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
]
|
|
128
|
-
},
|
|
129
|
-
"webfetch": {
|
|
130
|
-
"type": "string",
|
|
131
|
-
"enum": [
|
|
132
|
-
"ask",
|
|
133
|
-
"allow",
|
|
134
|
-
"deny"
|
|
135
|
-
]
|
|
136
|
-
},
|
|
137
|
-
"doom_loop": {
|
|
138
|
-
"type": "string",
|
|
139
|
-
"enum": [
|
|
140
|
-
"ask",
|
|
141
|
-
"allow",
|
|
142
|
-
"deny"
|
|
143
|
-
]
|
|
144
|
-
},
|
|
145
|
-
"external_directory": {
|
|
146
|
-
"type": "string",
|
|
147
|
-
"enum": [
|
|
148
|
-
"ask",
|
|
149
|
-
"allow",
|
|
150
|
-
"deny"
|
|
151
|
-
]
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|