on main help sign in
chore: rename OpenCode -> Crush
2ea3947Kujtim Hoxha
OpenCode.md+1−1
@@ -1,4 +1,4 @@
1−# OpenCode Development Guide
1+# Crush Development Guide
2
2
3## Build/Test/Lint Commands
3## Build/Test/Lint Commands
4
4
README.md+26−26
@@ -1,4 +1,4 @@
1−# ⌬ OpenCode
1+# ⌬ Crush
2
2
3<p align="center"><img src="https://github.com/user-attachments/assets/9ae61ef6-70e5-4876-bc45-5bcb4e52c714" width="800"></p>
3<p align="center"><img src="https://github.com/user-attachments/assets/9ae61ef6-70e5-4876-bc45-5bcb4e52c714" width="800"></p>
4
4
@@ -8,10 +8,10 @@ A powerful terminal-based AI assistant for developers, providing intelligent cod
8
8
9## Overview
9## Overview
10
10
11−OpenCode is a Go-based CLI application that brings AI assistance to your terminal. It provides a TUI (Terminal User Interface) for interacting with various AI models to help with coding tasks, debugging, and more.
11+Crush is a Go-based CLI application that brings AI assistance to your terminal. It provides a TUI (Terminal User Interface) for interacting with various AI models to help with coding tasks, debugging, and more.
12
12
13<p>For a quick video overview, check out
13<p>For a quick video overview, check out
14−<a href="https://www.youtube.com/watch?v=P8luPmEa1QI"><img width="25" src="https://upload.wikimedia.org/wikipedia/commons/0/09/YouTube_full-color_icon_%282017%29.svg"> OpenCode + Gemini 2.5 Pro: BYE Claude Code! I'm SWITCHING To the FASTEST AI Coder!</a></p>
14+<a href="https://www.youtube.com/watch?v=P8luPmEa1QI"><img width="25" src="https://upload.wikimedia.org/wikipedia/commons/0/09/YouTube_full-color_icon_%282017%29.svg"> Crush + Gemini 2.5 Pro: BYE Claude Code! I'm SWITCHING To the FASTEST AI Coder!</a></p>
15
15
16<a href="https://www.youtube.com/watch?v=P8luPmEa1QI"><img width="550" src="https://i3.ytimg.com/vi/P8luPmEa1QI/maxresdefault.jpg"></a><p>
16<a href="https://www.youtube.com/watch?v=P8luPmEa1QI"><img width="550" src="https://i3.ytimg.com/vi/P8luPmEa1QI/maxresdefault.jpg"></a><p>
17
17
@@ -64,7 +64,7 @@ go install github.com/charmbracelet/crush@latest
64
64
65## Configuration
65## Configuration
66
66
67−OpenCode looks for configuration in the following locations:
67+Crush looks for configuration in the following locations:
68
68
69- `$HOME/.crush.json`
69- `$HOME/.crush.json`
70- `$XDG_CONFIG_HOME/crush/.crush.json`
70- `$XDG_CONFIG_HOME/crush/.crush.json`
@@ -72,7 +72,7 @@ OpenCode looks for configuration in the following locations:
72
72
73### Auto Compact Feature
73### Auto Compact Feature
74
74
75−OpenCode includes an auto compact feature that automatically summarizes your conversation when it approaches the model's context window limit. When enabled (default setting), this feature:
75+Crush includes an auto compact feature that automatically summarizes your conversation when it approaches the model's context window limit. When enabled (default setting), this feature:
76
76
77- Monitors token usage during your conversation
77- Monitors token usage during your conversation
78- Automatically triggers summarization when usage reaches 95% of the model's context window
78- Automatically triggers summarization when usage reaches 95% of the model's context window
@@ -89,7 +89,7 @@ You can enable or disable this feature in your configuration file:
89
89
90### Environment Variables
90### Environment Variables
91
91
92−You can configure OpenCode using environment variables:
92+You can configure Crush using environment variables:
93
93
94| Environment Variable | Purpose |
94| Environment Variable | Purpose |
95| -------------------------- | ------------------------------------------------------ |
95| -------------------------- | ------------------------------------------------------ |
@@ -110,7 +110,7 @@ You can configure OpenCode using environment variables:
110
110
111### Shell Configuration
111### Shell Configuration
112
112
113−OpenCode allows you to configure the shell used by the bash tool. By default, it uses the shell specified in the `SHELL` environment variable, or falls back to `/bin/bash` if not set.
113+Crush allows you to configure the shell used by the bash tool. By default, it uses the shell specified in the `SHELL` environment variable, or falls back to `/bin/bash` if not set.
114
114
115You can override this in your configuration file:
115You can override this in your configuration file:
116
116
@@ -190,7 +190,7 @@ This is useful if you want to use a different shell than your default system she
190
190
191## Supported AI Models
191## Supported AI Models
192
192
193−OpenCode supports a variety of AI models from different providers:
193+Crush supports a variety of AI models from different providers:
194
194
195### OpenAI
195### OpenAI
196
196
@@ -247,7 +247,7 @@ OpenCode supports a variety of AI models from different providers:
247## Usage
247## Usage
248
248
249```bash
249```bash
250−# Start OpenCode
250+# Start Crush
251crush
251crush
252
252
253# Start with debug logging
253# Start with debug logging
@@ -259,7 +259,7 @@ crush -c /path/to/project
259
259
260## Non-interactive Prompt Mode
260## Non-interactive Prompt Mode
261
261
262−You can run OpenCode in non-interactive mode by passing a prompt directly as a command-line argument. This is useful for scripting, automation, or when you want a quick answer without launching the full TUI.
262+You can run Crush in non-interactive mode by passing a prompt directly as a command-line argument. This is useful for scripting, automation, or when you want a quick answer without launching the full TUI.
263
263
264```bash
264```bash
265# Run a single prompt and print the AI's response to the terminal
265# Run a single prompt and print the AI's response to the terminal
@@ -272,13 +272,13 @@ crush -p "Explain the use of context in Go" -f json
272crush -p "Explain the use of context in Go" -q
272crush -p "Explain the use of context in Go" -q
273```
273```
274
274
275−In this mode, OpenCode will process your prompt, print the result to standard output, and then exit. All permissions are auto-approved for the session.
275+In this mode, Crush will process your prompt, print the result to standard output, and then exit. All permissions are auto-approved for the session.
276
276
277−By default, a spinner animation is displayed while the model is processing your query. You can disable this spinner with the `-q` or `--quiet` flag, which is particularly useful when running OpenCode from scripts or automated workflows.
277+By default, a spinner animation is displayed while the model is processing your query. You can disable this spinner with the `-q` or `--quiet` flag, which is particularly useful when running Crush from scripts or automated workflows.
278
278
279### Output Formats
279### Output Formats
280
280
281−OpenCode supports the following output formats in non-interactive mode:
281+Crush supports the following output formats in non-interactive mode:
282
282
283| Format | Description |
283| Format | Description |
284| ------ | ------------------------------- |
284| ------ | ------------------------------- |
@@ -369,7 +369,7 @@ The output format is implemented as a strongly-typed `OutputFormat` in the codeb
369
369
370## AI Assistant Tools
370## AI Assistant Tools
371
371
372−OpenCode's AI assistant has access to various tools to help with coding tasks:
372+Crush's AI assistant has access to various tools to help with coding tasks:
373
373
374### File and Code Tools
374### File and Code Tools
375
375
@@ -395,7 +395,7 @@ OpenCode's AI assistant has access to various tools to help with coding tasks:
395
395
396## Architecture
396## Architecture
397
397
398−OpenCode is built with a modular architecture:
398+Crush is built with a modular architecture:
399
399
400- **cmd**: Command-line interface using Cobra
400- **cmd**: Command-line interface using Cobra
401- **internal/app**: Core application services
401- **internal/app**: Core application services
@@ -410,7 +410,7 @@ OpenCode is built with a modular architecture:
410
410
411## Custom Commands
411## Custom Commands
412
412
413−OpenCode supports custom commands that can be created by users to quickly send predefined prompts to the AI assistant.
413+Crush supports custom commands that can be created by users to quickly send predefined prompts to the AI assistant.
414
414
415### Creating Custom Commands
415### Creating Custom Commands
416
416
@@ -449,7 +449,7 @@ This creates a command called `user:prime-context`.
449
449
450### Command Arguments
450### Command Arguments
451
451
452−OpenCode supports named arguments in custom commands using placeholders in the format `$NAME` (where NAME consists of uppercase letters, numbers, and underscores, and must start with a letter).
452+Crush supports named arguments in custom commands using placeholders in the format `$NAME` (where NAME consists of uppercase letters, numbers, and underscores, and must start with a letter).
453
453
454For example:
454For example:
455
455
@@ -461,7 +461,7 @@ RUN git grep --author="$AUTHOR_NAME" -n .
461RUN grep -R "$SEARCH_PATTERN" $DIRECTORY
461RUN grep -R "$SEARCH_PATTERN" $DIRECTORY
462```
462```
463
463
464−When you run a command with arguments, OpenCode will prompt you to enter values for each unique placeholder. Named arguments provide several benefits:
464+When you run a command with arguments, Crush will prompt you to enter values for each unique placeholder. Named arguments provide several benefits:
465
465
466- Clear identification of what each argument represents
466- Clear identification of what each argument represents
467- Ability to use the same argument multiple times
467- Ability to use the same argument multiple times
@@ -487,16 +487,16 @@ The content of the command file will be sent as a message to the AI assistant.
487
487
488### Built-in Commands
488### Built-in Commands
489
489
490−OpenCode includes several built-in commands:
490+Crush includes several built-in commands:
491
491
492| Command | Description |
492| Command | Description |
493| ------------------ | --------------------------------------------------------------------------------------------------- |
493| ------------------ | --------------------------------------------------------------------------------------------------- |
494−| Initialize Project | Creates or updates the OpenCode.md memory file with project-specific information |
494+| Initialize Project | Creates or updates the Crush.md memory file with project-specific information |
495| Compact Session | Manually triggers the summarization of the current session, creating a new session with the summary |
495| Compact Session | Manually triggers the summarization of the current session, creating a new session with the summary |
496
496
497## MCP (Model Context Protocol)
497## MCP (Model Context Protocol)
498
498
499−OpenCode implements the Model Context Protocol (MCP) to extend its capabilities through external tools. MCP provides a standardized way for the AI assistant to interact with external services and tools.
499+Crush implements the Model Context Protocol (MCP) to extend its capabilities through external tools. MCP provides a standardized way for the AI assistant to interact with external services and tools.
500
500
501### MCP Features
501### MCP Features
502
502
@@ -537,7 +537,7 @@ Once configured, MCP tools are automatically available to the AI assistant along
537
537
538## LSP (Language Server Protocol)
538## LSP (Language Server Protocol)
539
539
540−OpenCode integrates with Language Server Protocol to provide code intelligence features across multiple programming languages.
540+Crush integrates with Language Server Protocol to provide code intelligence features across multiple programming languages.
541
541
542### LSP Features
542### LSP Features
543
543
@@ -576,13 +576,13 @@ While the LSP client implementation supports the full LSP protocol (including co
576
576
577## Using a self-hosted model provider
577## Using a self-hosted model provider
578
578
579−OpenCode can also load and use models from a self-hosted (OpenAI-like) provider.
579+Crush can also load and use models from a self-hosted (OpenAI-like) provider.
580This is useful for developers who want to experiment with custom models.
580This is useful for developers who want to experiment with custom models.
581
581
582### Configuring a self-hosted provider
582### Configuring a self-hosted provider
583
583
584You can use a self-hosted model by setting the `LOCAL_ENDPOINT` environment variable.
584You can use a self-hosted model by setting the `LOCAL_ENDPOINT` environment variable.
585−This will cause OpenCode to load and use the models from the specified endpoint.
585+This will cause Crush to load and use the models from the specified endpoint.
586
586
587```bash
587```bash
588LOCAL_ENDPOINT=http://localhost:1235/v1
588LOCAL_ENDPOINT=http://localhost:1235/v1
@@ -625,7 +625,7 @@ go build -o crush
625
625
626## Acknowledgments
626## Acknowledgments
627
627
628−OpenCode gratefully acknowledges the contributions and support from these key individuals:
628+Crush gratefully acknowledges the contributions and support from these key individuals:
629
629
630- [@isaacphi](https://github.com/isaacphi) - For the [mcp-language-server](https://github.com/isaacphi/mcp-language-server) project which provided the foundation for our LSP client implementation
630- [@isaacphi](https://github.com/isaacphi) - For the [mcp-language-server](https://github.com/isaacphi/mcp-language-server) project which provided the foundation for our LSP client implementation
631- [@adamdottv](https://github.com/adamdottv) - For the design direction and UI/UX architecture
631- [@adamdottv](https://github.com/adamdottv) - For the design direction and UI/UX architecture
@@ -634,7 +634,7 @@ Special thanks to the broader open source community whose tools and libraries ha
634
634
635## License
635## License
636
636
637−OpenCode is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
637+Crush is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
638
638
639## Contributing
639## Contributing
640
640
cmd/root.go+1−1
@@ -23,7 +23,7 @@ import (
23var rootCmd = &cobra.Command{
23var rootCmd = &cobra.Command{
24 Use: "crush",
24 Use: "crush",
25 Short: "Terminal-based AI assistant for software development",
25 Short: "Terminal-based AI assistant for software development",
26− Long: `OpenCode is a powerful terminal-based AI assistant that helps with software development tasks.
26+ Long: `Crush is a powerful terminal-based AI assistant that helps with software development tasks.
27It provides an interactive chat interface with AI capabilities, code analysis, and LSP integration
27It provides an interactive chat interface with AI capabilities, code analysis, and LSP integration
28to assist developers in writing, debugging, and understanding code directly from the terminal.`,
28to assist developers in writing, debugging, and understanding code directly from the terminal.`,
29 Example: `
29 Example: `
cmd/schema/README.md+2−2
@@ -1,6 +1,6 @@
1−# OpenCode Configuration Schema Generator
1+# Crush Configuration Schema Generator
2
2
3−This tool generates a JSON Schema for the OpenCode configuration file. The schema can be used to validate configuration files and provide autocompletion in editors that support JSON Schema.
3+This tool generates a JSON Schema for the Crush configuration file. The schema can be used to validate configuration files and provide autocompletion in editors that support JSON Schema.
4
4
5## Usage
5## Usage
6
6
cmd/schema/main.go+4−4
@@ -38,8 +38,8 @@ func main() {
38func generateSchema() map[string]any {
38func generateSchema() map[string]any {
39 schema := map[string]any{
39 schema := map[string]any{
40 "$schema": "http://json-schema.org/draft-07/schema#",
40 "$schema": "http://json-schema.org/draft-07/schema#",
41− "title": "OpenCode Configuration",
41+ "title": "Crush Configuration",
42− "description": "Configuration schema for the OpenCode application",
42+ "description": "Configuration schema for the Crush application",
43 "type": "object",
43 "type": "object",
44 "properties": map[string]any{},
44 "properties": map[string]any{},
45 }
45 }
@@ -91,8 +91,8 @@ func generateSchema() map[string]any {
91 "CLAUDE.local.md",
91 "CLAUDE.local.md",
92 "crush.md",
92 "crush.md",
93 "crush.local.md",
93 "crush.local.md",
94− "OpenCode.md",
94+ "Crush.md",
95− "OpenCode.local.md",
95+ "Crush.local.md",
96 "OPENCODE.md",
96 "OPENCODE.md",
97 "OPENCODE.local.md",
97 "OPENCODE.local.md",
98 },
98 },
internal/config/config.go+2−2
@@ -112,8 +112,8 @@ var defaultContextPaths = []string{
112 "CLAUDE.local.md",
112 "CLAUDE.local.md",
113 "crush.md",
113 "crush.md",
114 "crush.local.md",
114 "crush.local.md",
115− "OpenCode.md",
115+ "Crush.md",
116− "OpenCode.local.md",
116+ "Crush.local.md",
117 "OPENCODE.md",
117 "OPENCODE.md",
118 "OPENCODE.local.md",
118 "OPENCODE.local.md",
119}
119}
internal/fileutil/ls.go+1−1
@@ -63,7 +63,7 @@ var CommonIgnorePatterns = []string{
63 ".Spotlight-V100",
63 ".Spotlight-V100",
64 ".fseventsd",
64 ".fseventsd",
65
65
66− // OpenCode
66+ // Crush
67 ".crush",
67 ".crush",
68}
68}
69
69
internal/llm/agent/mcp-tools.go+2−2
@@ -46,7 +46,7 @@ func runTool(ctx context.Context, c MCPClient, toolName string, input string) (t
46 initRequest := mcp.InitializeRequest{}
46 initRequest := mcp.InitializeRequest{}
47 initRequest.Params.ProtocolVersion = mcp.LATEST_PROTOCOL_VERSION
47 initRequest.Params.ProtocolVersion = mcp.LATEST_PROTOCOL_VERSION
48 initRequest.Params.ClientInfo = mcp.Implementation{
48 initRequest.Params.ClientInfo = mcp.Implementation{
49− Name: "OpenCode",
49+ Name: "Crush",
50 Version: version.Version,
50 Version: version.Version,
51 }
51 }
52
52
@@ -140,7 +140,7 @@ func getTools(ctx context.Context, name string, m config.MCPServer, permissions
140 initRequest := mcp.InitializeRequest{}
140 initRequest := mcp.InitializeRequest{}
141 initRequest.Params.ProtocolVersion = mcp.LATEST_PROTOCOL_VERSION
141 initRequest.Params.ProtocolVersion = mcp.LATEST_PROTOCOL_VERSION
142 initRequest.Params.ClientInfo = mcp.Implementation{
142 initRequest.Params.ClientInfo = mcp.Implementation{
143− Name: "OpenCode",
143+ Name: "Crush",
144 Version: version.Version,
144 Version: version.Version,
145 }
145 }
146
146
internal/llm/prompt/coder.go+4−4
@@ -25,7 +25,7 @@ func CoderPrompt(provider models.ModelProvider) string {
25}
25}
26
26
27const baseOpenAICoderPrompt = `
27const baseOpenAICoderPrompt = `
28−You are operating as and within the OpenCode CLI, a terminal-based agentic coding assistant built by OpenAI. It wraps OpenAI models to enable natural language interaction with a local codebase. You are expected to be precise, safe, and helpful.
28+You are operating as and within the Crush CLI, a terminal-based agentic coding assistant built by OpenAI. It wraps OpenAI models to enable natural language interaction with a local codebase. You are expected to be precise, safe, and helpful.
29
29
30You can:
30You can:
31- Receive user prompts, project context, and files.
31- Receive user prompts, project context, and files.
@@ -71,17 +71,17 @@ You MUST adhere to the following criteria when executing the task:
71- Remember the user does not see the full output of tools
71- Remember the user does not see the full output of tools
72`
72`
73
73
74−const baseAnthropicCoderPrompt = `You are OpenCode, an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.
74+const baseAnthropicCoderPrompt = `You are Crush, an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.
75
75
76IMPORTANT: Before you begin work, think about what the code you're editing is supposed to do based on the filenames directory structure.
76IMPORTANT: Before you begin work, think about what the code you're editing is supposed to do based on the filenames directory structure.
77
77
78# Memory
78# Memory
79−If the current working directory contains a file called OpenCode.md, it will be automatically added to your context. This file serves multiple purposes:
79+If the current working directory contains a file called Crush.md, it will be automatically added to your context. This file serves multiple purposes:
801. Storing frequently used bash commands (build, test, lint, etc.) so you can use them without searching each time
801. Storing frequently used bash commands (build, test, lint, etc.) so you can use them without searching each time
812. Recording the user's code style preferences (naming conventions, preferred libraries, etc.)
812. Recording the user's code style preferences (naming conventions, preferred libraries, etc.)
823. Maintaining useful information about the codebase structure and organization
823. Maintaining useful information about the codebase structure and organization
83
83
84−When you spend time searching for commands to typecheck, lint, build, or test, you should ask the user if it's okay to add those commands to OpenCode.md. Similarly, when learning about code style preferences or important codebase information, ask if it's okay to add that to OpenCode.md so you can remember it for next time.
84+When you spend time searching for commands to typecheck, lint, build, or test, you should ask the user if it's okay to add those commands to Crush.md. Similarly, when learning about code style preferences or important codebase information, ask if it's okay to add that to Crush.md so you can remember it for next time.
85
85
86# Tone and style
86# Tone and style
87You should be concise, direct, and to the point. When you run a non-trivial bash command, you should explain what the command does and why you are running it, to make sure the user understands what you are doing (this is especially important when you are running a command that will make changes to the user's system).
87You should be concise, direct, and to the point. When you run a non-trivial bash command, you should explain what the command does and why you are running it, to make sure the user understands what you are doing (this is especially important when you are running a command that will make changes to the user's system).
internal/llm/prompt/task.go+1−1
@@ -7,7 +7,7 @@ import (
7)
7)
8
8
9func TaskPrompt(_ models.ModelProvider) string {
9func TaskPrompt(_ models.ModelProvider) string {
10− agentPrompt := `You are an agent for OpenCode. Given the user's prompt, you should use the tools available to you to answer the user's question.
10+ agentPrompt := `You are an agent for Crush. Given the user's prompt, you should use the tools available to you to answer the user's question.
11Notes:
11Notes:
121. IMPORTANT: You should be concise, direct, and to the point, since your responses will be displayed on a command line interface. Answer the user's question directly, without elaboration, explanation, or details. One word answers are best. Avoid introductions, conclusions, and explanations. You MUST avoid text before/after your response, such as "The answer is <answer>.", "Here is the content of the file..." or "Based on the information provided, the answer is..." or "Here is what I will do next...".
121. IMPORTANT: You should be concise, direct, and to the point, since your responses will be displayed on a command line interface. Answer the user's question directly, without elaboration, explanation, or details. One word answers are best. Avoid introductions, conclusions, and explanations. You MUST avoid text before/after your response, such as "The answer is <answer>.", "Here is the content of the file..." or "Based on the information provided, the answer is..." or "Here is what I will do next...".
132. When relevant, share file names and code snippets relevant to the query
132. When relevant, share file names and code snippets relevant to the query
internal/llm/provider/provider.go+1−1
@@ -131,7 +131,7 @@ func NewProvider(providerName models.ModelProvider, opts ...ProviderClientOption
131 WithOpenAIBaseURL("https://openrouter.ai/api/v1"),
131 WithOpenAIBaseURL("https://openrouter.ai/api/v1"),
132 WithOpenAIExtraHeaders(map[string]string{
132 WithOpenAIExtraHeaders(map[string]string{
133 "HTTP-Referer": "crush.ai",
133 "HTTP-Referer": "crush.ai",
134− "X-Title": "OpenCode",
134+ "X-Title": "Crush",
135 }),
135 }),
136 )
136 )
137 return &baseProvider[OpenAIClient]{
137 return &baseProvider[OpenAIClient]{
internal/tui/components/dialog/init.go+1−1
@@ -108,7 +108,7 @@ func (m InitDialogCmp) View() string {
108 explanation := t.S().Text.
108 explanation := t.S().Text.
109 Width(maxWidth).
109 Width(maxWidth).
110 Padding(0, 1).
110 Padding(0, 1).
111− Render("Initialization generates a new OpenCode.md file that contains information about your codebase, this file serves as memory for each project, you can freely add to it to help the agents be better at their job.")
111+ Render("Initialization generates a new Crush.md file that contains information about your codebase, this file serves as memory for each project, you can freely add to it to help the agents be better at their job.")
112
112
113 question := t.S().Text.
113 question := t.S().Text.
114 Width(maxWidth).
114 Width(maxWidth).
internal/tui/components/dialogs/commands/commands.go+2−2
@@ -226,9 +226,9 @@ func (c *commandDialogCmp) defaultCommands() []Command {
226 {
226 {
227 ID: "init",
227 ID: "init",
228 Title: "Initialize Project",
228 Title: "Initialize Project",
229− Description: "Create/Update the OpenCode.md memory file",
229+ Description: "Create/Update the Crush.md memory file",
230 Handler: func(cmd Command) tea.Cmd {
230 Handler: func(cmd Command) tea.Cmd {
231− prompt := `Please analyze this codebase and create a OpenCode.md file containing:
231+ prompt := `Please analyze this codebase and create a Crush.md file containing:
232 1. Build/lint/test commands - especially for running a single test
232 1. Build/lint/test commands - especially for running a single test
233 2. Code style guidelines including imports, formatting, types, naming conventions, error handling, etc.
233 2. Code style guidelines including imports, formatting, types, naming conventions, error handling, etc.
234
234
opencode-schema.json+4−4
@@ -97,7 +97,7 @@
97 "type": "object"
97 "type": "object"
98 }
98 }
99 },
99 },
100− "description": "Configuration schema for the OpenCode application",
100+ "description": "Configuration schema for the Crush application",
101 "properties": {
101 "properties": {
102 "agents": {
102 "agents": {
103 "additionalProperties": {
103 "additionalProperties": {
@@ -218,8 +218,8 @@
218 "CLAUDE.local.md",
218 "CLAUDE.local.md",
219 "crush.md",
219 "crush.md",
220 "crush.local.md",
220 "crush.local.md",
221− "OpenCode.md",
221+ "Crush.md",
222− "OpenCode.local.md",
222+ "Crush.local.md",
223 "OPENCODE.md",
223 "OPENCODE.md",
224 "OPENCODE.local.md"
224 "OPENCODE.local.md"
225 ],
225 ],
@@ -397,6 +397,6 @@
397 "type": "string"
397 "type": "string"
398 }
398 }
399 },
399 },
400− "title": "OpenCode Configuration",
400+ "title": "Crush Configuration",
401 "type": "object"
401 "type": "object"
402}
402}