summaryrefslogtreecommitdiffhomepage
path: root/cmd/schema/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/schema/README.md')
-rw-r--r--cmd/schema/README.md64
1 files changed, 64 insertions, 0 deletions
diff --git a/cmd/schema/README.md b/cmd/schema/README.md
new file mode 100644
index 000000000..93ebe9f03
--- /dev/null
+++ b/cmd/schema/README.md
@@ -0,0 +1,64 @@
+# OpenCode Configuration Schema Generator
+
+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.
+
+## Usage
+
+```bash
+go run cmd/schema/main.go > opencode-schema.json
+```
+
+This will generate a JSON Schema file that can be used to validate configuration files.
+
+## Schema Features
+
+The generated schema includes:
+
+- All configuration options with descriptions
+- Default values where applicable
+- Validation for enum values (e.g., model IDs, provider types)
+- Required fields
+- Type checking
+
+## Using the Schema
+
+You can use the generated schema in several ways:
+
+1. **Editor Integration**: Many editors (VS Code, JetBrains IDEs, etc.) support JSON Schema for validation and autocompletion. You can configure your editor to use the generated schema for `.opencode.json` files.
+
+2. **Validation Tools**: You can use tools like [jsonschema](https://github.com/Julian/jsonschema) to validate your configuration files against the schema.
+
+3. **Documentation**: The schema serves as documentation for the configuration options.
+
+## Example Configuration
+
+Here's an example configuration that conforms to the schema:
+
+```json
+{
+ "data": {
+ "directory": ".opencode"
+ },
+ "debug": false,
+ "providers": {
+ "anthropic": {
+ "apiKey": "your-api-key"
+ }
+ },
+ "agents": {
+ "coder": {
+ "model": "claude-3.7-sonnet",
+ "maxTokens": 5000,
+ "reasoningEffort": "medium"
+ },
+ "task": {
+ "model": "claude-3.7-sonnet",
+ "maxTokens": 5000
+ },
+ "title": {
+ "model": "claude-3.7-sonnet",
+ "maxTokens": 80
+ }
+ }
+}
+``` \ No newline at end of file