Skip to main content

Glimx Configuration Guide

This guide explains how to configure Glimx CLI to customize its behavior, models, permissions, and integrations.

Configuration File Locations

Glimx looks for configuration files in the following locations (in order of precedence):

  1. --config CLI flag
  2. OPENCODE_CONFIG environment variable
  3. ./opencode.jsonc or ./opencode.json (current project)
  4. ~/.opencode/opencode.jsonc or ~/.opencode/opencode.json (user home)
  5. ~/.opencode/config.json (user home, legacy)

Configuration Schema

You can reference the JSON schema for autocompletion and validation:

{
"$schema": "https://codelabs-poliwangi.github.io/glimx-cli/config.json"
}

Basic Configuration

Here's a basic configuration example:

{
"$schema": "https://codelabs-poliwangi.github.io/glimx-cli/config.json",
"model": "groq/qwen-32b",
"theme": "glimx",
"username": "your-username"
}

Model Configuration

Setting Default Model

{
"model": "groq/qwen-32b"
}

Custom Provider Configuration

Configure custom providers and models:

{
"provider": {
"groq": {
"api": "https://api.groq.com/openai/v1",
"models": {
"qwen-32b": {
"id": "qwen/qwen3-32b",
"cost": { "input": 0, "output": 0 },
"limit": { "context": 32768, "output": 8192 }
}
}
},
"openrouter": {
"api": "https://openrouter.ai/api/v1",
"models": {
"deepseek-chat": {
"id": "deepseek/deepseek-chat-v3.1",
"cost": { "input": 0, "output": 0 },
"limit": { "context": 64000, "output": 8000 }
}
}
}
}
}

API Keys

Set API keys in your environment:

export GROQ_API_KEY="your-key-here"
export OPENROUTER_API_KEY="your-key-here"

Permission System

Glimx includes a smart permission system that validates commands before execution.

Default Permissions

By default, Glimx uses these safe permissions:

{
"permission": {
"bash": {
"cat *": "allow",
"cd *": "allow",
"chmod *": "ask",
"cp *": "ask",
"curl *": "ask",
"diff *": "allow",
"echo *": "allow",
"find *": "allow",
"git add *": "ask",
"git commit *": "ask",
"git push *": "ask",
"git pull *": "ask",
"git status *": "allow",
"git diff *": "allow",
"git log *": "allow",
"grep *": "allow",
"head *": "allow",
"ls *": "allow",
"mkdir *": "ask",
"mv *": "ask",
"npm install *": "ask",
"npm run *": "ask",
"pwd *": "allow",
"rm *": "ask",
"tail *": "allow",
"touch *": "ask",
"wc *": "allow",
"wget *": "ask",
"*": "ask"
},
"edit": "ask",
"write": "ask",
"webfetch": "allow"
}
}

Permission Levels

  • allow - Auto-execute without asking
  • ask - Require user approval (default for most operations)
  • deny - Block completely

Customizing Permissions

Override default permissions:

{
"permission": {
"bash": {
"git push *": "ask",
"rm -rf *": "deny",
"npm install *": "ask",
"ls *": "allow",
"*": "ask"
},
"edit": "ask",
"write": "ask"
}
}

MCP Server Configuration

Glimx includes 5 default MCP servers that are auto-enabled:

Default MCP Servers

{
"mcp": {
"filesystem": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "~"],
"enabled": true,
"timeout": 5000
},
"git": {
"type": "local",
"command": ["uvx", "mcp-server-git", "--repository", "."],
"enabled": true,
"timeout": 5000
},
"sequential-thinking": {
"type": "local",
"command": ["uvx", "mcp-server-sequential-thinking"],
"enabled": true,
"timeout": 5000
},
"fetch": {
"type": "local",
"command": ["uvx", "mcp-server-fetch"],
"enabled": true,
"timeout": 5000
},
"memory": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-memory"],
"enabled": true,
"timeout": 5000
}
}
}

Custom MCP Servers

Add your own MCP servers:

{
"mcp": {
"my-custom-server": {
"type": "local",
"command": ["my-mcp-server", "--port", "3000"],
"enabled": true,
"timeout": 10000
}
}
}

Agent Configuration

Configure agents for specific tasks:

{
"agent": {
"plan": {
"model": "groq/qwen-32b",
"description": "Planning agent for breaking down complex tasks",
"permission": {
"bash": "ask"
}
},
"build": {
"model": "groq/llama-3.3-70b",
"description": "Build agent for implementation tasks",
"permission": {
"bash": {
"npm install *": "ask",
"npm run build": "allow",
"*": "ask"
}
}
}
}
}

Command Configuration

Define custom commands:

{
"command": {
"test": {
"template": "Run all tests in the project",
"agent": "build",
"model": "groq/qwen-32b"
}
}
}

Theme Configuration

Customize the terminal interface:

{
"theme": "glimx"
}

Keybinds Configuration

Customize keyboard shortcuts:

{
"keybinds": {
"leader": "ctrl+x",
"app_exit": "ctrl+c,ctrl+d,<leader>q",
"editor_open": "<leader>e",
"theme_list": "<leader>t"
}
}

LSP Configuration

Configure Language Server Protocol integration:

{
"lsp": {
"typescript": {
"command": ["typescript-language-server", "--stdio"],
"extensions": [".ts", ".tsx"]
}
}
}

Formatter Configuration

Set up code formatters:

{
"formatter": {
"typescript": {
"command": ["prettier", "--stdin-filepath", "{filename}"],
"extensions": [".ts", ".tsx", ".js", ".jsx"]
}
}
}

Sharing Configuration

Control session sharing behavior:

{
"share": "manual" // or "auto" or "disabled"
}

Experimental Features

Enable experimental features:

{
"experimental": {
"chatMaxRetries": 3,
"disable_paste_summary": false
}
}

Environment Variables

Glimx supports several environment variables for configuration:

  • OPENCODE_CONFIG - Path to custom config file
  • OPENCODE_CONFIG_DIR - Additional config directory
  • GROQ_API_KEY - Groq API key
  • OPENROUTER_API_KEY - OpenRouter API key
  • CEREBRAS_API_KEY - Cerebras API key

Configuration Examples

Minimal Configuration

{
"$schema": "https://codelabs-poliwangi.github.io/glimx-cli/config.json",
"model": "groq/qwen-32b"
}

Advanced Configuration

{
"$schema": "https://codelabs-poliwangi.github.io/glimx-cli/config.json",
"model": "groq/qwen-32b",
"theme": "glimx",
"username": "developer",
"permission": {
"bash": {
"git push *": "ask",
"rm *": "ask",
"*": "ask"
}
},
"mcp": {
"filesystem": { "enabled": true },
"git": { "enabled": true },
"sequential-thinking": { "enabled": true },
"fetch": { "enabled": true },
"memory": { "enabled": true }
},
"agent": {
"plan": {
"model": "groq/qwen-32b",
"description": "Planning agent"
},
"build": {
"model": "groq/llama-3.3-70b",
"description": "Build agent"
}
},
"provider": {
"groq": {
"api": "https://api.groq.com/openai/v1"
}
}
}

Troubleshooting Configuration

Invalid Configuration

If you have an invalid configuration, Glimx will show detailed error messages:

ConfigInvalidError: Invalid configuration at ~/.opencode/opencode.json
- Issues:
- Unrecognized key 'invalid_key' at root
- Expected string for 'model', got number

Schema Validation

Use the JSON schema for validation and autocompletion in your editor:

{
"$schema": "https://codelabs-poliwangi.github.io/glimx-cli/config.json"
// Your configuration here
}

Next Steps