feat: add 9 plugins, sync to new provider format, add 6 new MCP packages
This commit is contained in:
@@ -66,10 +66,11 @@ echo 'export BRAVE_API_KEY=BSA...' >> ~/.bashrc
|
|||||||
|
|
||||||
## What's Synced
|
## What's Synced
|
||||||
|
|
||||||
|
- **9 Plugins** - oh-my-openagent, opencode-mem, opencode-pty, dynamic context pruning, RAG, command-inject, notify, agent-identity, tokenscope
|
||||||
- **32 Skills** - Coding standards, frontend/backend patterns, security review, etc.
|
- **32 Skills** - Coding standards, frontend/backend patterns, security review, etc.
|
||||||
- **3 Agents** - explorer, reviewer, docs-researcher
|
- **3 Agents** - explorer, reviewer, docs-researcher
|
||||||
- **11 MCP Servers** - codegraph, brave-search, playwright, github, etc.
|
- **14 MCP Servers** - codegraph, brave-search, playwright, github, context7, exa, etc.
|
||||||
- **Model Config** - Kimi K2.6 + 7 other models via OpenAI-compatible API
|
- **Model Config** - Kimi K2.6 + 14 other models via `@ai-sdk/openai-compatible`
|
||||||
|
|
||||||
## Updating
|
## Updating
|
||||||
|
|
||||||
|
|||||||
+6
-9
@@ -200,8 +200,12 @@ GLOBAL_PACKAGES=(
|
|||||||
"@playwright/mcp"
|
"@playwright/mcp"
|
||||||
"@upstash/context7-mcp"
|
"@upstash/context7-mcp"
|
||||||
"mcp-remote"
|
"mcp-remote"
|
||||||
|
"jina-mcp-tools"
|
||||||
|
"git-mcp-server"
|
||||||
|
"chrome-devtools-mcp"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Install npm global deps (git-mcp-server replaces Python mcp-server-git)
|
||||||
for pkg in "${GLOBAL_PACKAGES[@]}"; do
|
for pkg in "${GLOBAL_PACKAGES[@]}"; do
|
||||||
echo -e "${DARKGRAY} Installing $pkg...${NC}" -n
|
echo -e "${DARKGRAY} Installing $pkg...${NC}" -n
|
||||||
if npm install -g "$pkg" 2>/dev/null; then
|
if npm install -g "$pkg" 2>/dev/null; then
|
||||||
@@ -211,23 +215,16 @@ for pkg in "${GLOBAL_PACKAGES[@]}"; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Install Python git MCP
|
|
||||||
echo -e "${DARKGRAY} Installing Python git MCP...${NC}" -n
|
|
||||||
if python3 -m pip install mcp-server-git 2>/dev/null || python -m pip install mcp-server-git 2>/dev/null; then
|
|
||||||
echo -e "${GREEN} OK${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${YELLOW} SKIP${NC}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${CYAN}========================================${NC}"
|
echo -e "${CYAN}========================================${NC}"
|
||||||
echo -e "${GREEN} Installation Complete! ${NC}"
|
echo -e "${GREEN} Installation Complete! ${NC}"
|
||||||
echo -e "${CYAN}========================================${NC}"
|
echo -e "${CYAN}========================================${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${WHITE}Next steps:${NC}"
|
echo -e "${WHITE}Next steps:${NC}"
|
||||||
echo -e " 1. Restart opencode to load new config"
|
echo -e " 1. Restart opencode to load new config (plugins auto-install on startup)"
|
||||||
echo -e " 2. Run 'opencode' in your project directory"
|
echo -e " 2. Run 'opencode' in your project directory"
|
||||||
echo -e " 3. Initialize CodeGraph: codegraph init"
|
echo -e " 3. Initialize CodeGraph: codegraph init"
|
||||||
|
echo -e " 4. For smart-tree MCP: install from https://github.com/anomalyco/smart-tree"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${DARKGRAY}Config location: $CONFIG_DIR${NC}"
|
echo -e "${DARKGRAY}Config location: $CONFIG_DIR${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
+135
-78
@@ -1,22 +1,17 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://opencode.ai/config.json",
|
"$schema": "https://opencode.ai/config.json",
|
||||||
"model": "openai-compatible/kimi-k2.6",
|
"disabled_providers": [],
|
||||||
"small_model": "openai-compatible/miaoda-model-flash",
|
"model": "ai/kimi-k2.6",
|
||||||
|
"small_model": "ai/miaoda-model-flash",
|
||||||
"provider": {
|
"provider": {
|
||||||
"openai-compatible": {
|
"ai": {
|
||||||
"api": "openai",
|
"npm": "@ai-sdk/openai-compatible",
|
||||||
"name": "OpenAI Compatible",
|
|
||||||
"options": {
|
"options": {
|
||||||
|
"baseURL": "https://ai.fs.nomsg.cn/v1",
|
||||||
"apiKey": "${OPENCODE_API_KEY}",
|
"apiKey": "${OPENCODE_API_KEY}",
|
||||||
"baseURL": "https://ai.fs.nomsg.cn/v1"
|
"setCacheKey": true
|
||||||
},
|
},
|
||||||
"models": {
|
"models": {
|
||||||
"kimi-k2.6": {
|
|
||||||
"id": "kimi-k2.6",
|
|
||||||
"name": "Kimi K2.6",
|
|
||||||
"tool_call": true,
|
|
||||||
"reasoning": true
|
|
||||||
},
|
|
||||||
"doubao-seed-2.0-pro": {
|
"doubao-seed-2.0-pro": {
|
||||||
"id": "doubao-seed-2.0-pro",
|
"id": "doubao-seed-2.0-pro",
|
||||||
"name": "Doubao Seed 2.0 Pro",
|
"name": "Doubao Seed 2.0 Pro",
|
||||||
@@ -27,15 +22,16 @@
|
|||||||
"name": "GLM 5.1",
|
"name": "GLM 5.1",
|
||||||
"tool_call": true
|
"tool_call": true
|
||||||
},
|
},
|
||||||
"qwen-3.6-plus": {
|
"grok-4.3": {
|
||||||
"id": "qwen-3.6-plus",
|
"id": "grok-4.3",
|
||||||
"name": "Qwen 3.6 Plus",
|
"name": "Grok 4.3",
|
||||||
"tool_call": true
|
"tool_call": true
|
||||||
},
|
},
|
||||||
"minimax-m3": {
|
"kimi-k2.6": {
|
||||||
"id": "minimax-m3",
|
"id": "kimi-k2.6",
|
||||||
"name": "MiniMax M3",
|
"name": "Kimi K2.6",
|
||||||
"tool_call": true
|
"tool_call": true,
|
||||||
|
"reasoning": true
|
||||||
},
|
},
|
||||||
"miaoda-auto-multimodal": {
|
"miaoda-auto-multimodal": {
|
||||||
"id": "miaoda-auto-multimodal",
|
"id": "miaoda-auto-multimodal",
|
||||||
@@ -51,34 +47,107 @@
|
|||||||
"id": "miaoda-model-flash",
|
"id": "miaoda-model-flash",
|
||||||
"name": "Miaoda Model Flash",
|
"name": "Miaoda Model Flash",
|
||||||
"tool_call": true
|
"tool_call": true
|
||||||
|
},
|
||||||
|
"mimo-v2.5": {
|
||||||
|
"id": "mimo-v2.5",
|
||||||
|
"name": "Mimo V2.5",
|
||||||
|
"tool_call": true
|
||||||
|
},
|
||||||
|
"mimo-v2.5-pro": {
|
||||||
|
"id": "mimo-v2.5-pro",
|
||||||
|
"name": "Mimo V2.5 Pro",
|
||||||
|
"tool_call": true
|
||||||
|
},
|
||||||
|
"minimax-m3": {
|
||||||
|
"id": "minimax-m3",
|
||||||
|
"name": "MiniMax M3",
|
||||||
|
"tool_call": true
|
||||||
|
},
|
||||||
|
"qwen-3.6-plus": {
|
||||||
|
"id": "qwen-3.6-plus",
|
||||||
|
"name": "Qwen 3.6 Plus",
|
||||||
|
"tool_call": true
|
||||||
|
},
|
||||||
|
"step-3.5-flash": {
|
||||||
|
"id": "step-3.5-flash",
|
||||||
|
"name": "Step 3.5 Flash",
|
||||||
|
"tool_call": true
|
||||||
|
},
|
||||||
|
"step-3.5-flash-2603": {
|
||||||
|
"id": "step-3.5-flash-2603",
|
||||||
|
"name": "Step 3.5 Flash 2603",
|
||||||
|
"tool_call": true
|
||||||
|
},
|
||||||
|
"step-3.7-flash": {
|
||||||
|
"id": "step-3.7-flash",
|
||||||
|
"name": "Step 3.7 Flash",
|
||||||
|
"tool_call": true
|
||||||
|
},
|
||||||
|
"step-router-v1": {
|
||||||
|
"id": "step-router-v1",
|
||||||
|
"name": "Step Router V1",
|
||||||
|
"tool_call": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"skills": {
|
"plugin": [
|
||||||
"paths": ["~/.config/opencode/skills"]
|
"oh-my-openagent",
|
||||||
},
|
"opencode-mem",
|
||||||
"agent": {
|
"opencode-pty",
|
||||||
"explorer": {
|
"@tarquinen/opencode-dcp",
|
||||||
"description": "Read-only codebase explorer for gathering evidence before changes are proposed.",
|
"opencode-rag-plugin",
|
||||||
"mode": "subagent",
|
"opencode-command-inject",
|
||||||
"model": "openai-compatible/kimi-k2.6",
|
"opencode-notify",
|
||||||
"permission": { "edit": "deny", "bash": "ask" }
|
"@gotgenes/opencode-agent-identity",
|
||||||
},
|
"@ramtinj95/opencode-tokenscope"
|
||||||
"reviewer": {
|
],
|
||||||
"description": "PR reviewer focused on correctness, security, and missing tests.",
|
|
||||||
"mode": "subagent",
|
|
||||||
"model": "openai-compatible/kimi-k2.6",
|
|
||||||
"permission": { "edit": "deny", "bash": "ask" }
|
|
||||||
},
|
|
||||||
"docs-researcher": {
|
|
||||||
"description": "Documentation specialist that verifies APIs, framework behavior, and release notes.",
|
|
||||||
"mode": "subagent",
|
|
||||||
"model": "openai-compatible/kimi-k2.6",
|
|
||||||
"permission": { "edit": "deny", "bash": "ask" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mcp": {
|
"mcp": {
|
||||||
|
"git": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["git-mcp-server"],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"filesystem": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["mcp-server-filesystem", "${PROJECTS_PATH}"],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"jina": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["jina-mcp-tools"],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"codegraph": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["codegraph", "serve", "--mcp"],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"smart-tree": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["/home/chaos/.local/bin/st", "--mcp"],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"dbhub": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["dbhub", "--transport", "stdio", "--demo"],
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["npx", "-y", "@modelcontextprotocol/server-memory"],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"playwright": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["npx", "-y", "@playwright/mcp@latest"],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"chrome-devtools": {
|
||||||
|
"type": "local",
|
||||||
|
"command": ["chrome-devtools-mcp"],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
"github": {
|
"github": {
|
||||||
"type": "local",
|
"type": "local",
|
||||||
"command": ["npx", "-y", "@modelcontextprotocol/server-github"],
|
"command": ["npx", "-y", "@modelcontextprotocol/server-github"],
|
||||||
@@ -94,46 +163,11 @@
|
|||||||
"command": ["npx", "-y", "mcp-remote", "https://mcp.exa.ai/mcp"],
|
"command": ["npx", "-y", "mcp-remote", "https://mcp.exa.ai/mcp"],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
"memory": {
|
|
||||||
"type": "local",
|
|
||||||
"command": ["npx", "-y", "@modelcontextprotocol/server-memory"],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"playwright": {
|
|
||||||
"type": "local",
|
|
||||||
"command": ["npx", "-y", "@playwright/mcp@latest", "--extension"],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"sequential-thinking": {
|
"sequential-thinking": {
|
||||||
"type": "local",
|
"type": "local",
|
||||||
"command": ["npx", "-y", "@modelcontextprotocol/server-sequential-thinking"],
|
"command": ["npx", "-y", "@modelcontextprotocol/server-sequential-thinking"],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
"codegraph": {
|
|
||||||
"type": "local",
|
|
||||||
"command": ["codegraph", "serve", "--mcp"],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"git": {
|
|
||||||
"type": "local",
|
|
||||||
"command": ["python", "-m", "mcp_server_git"],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"filesystem": {
|
|
||||||
"type": "local",
|
|
||||||
"command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "${PROJECTS_PATH}"],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"fetch": {
|
|
||||||
"type": "local",
|
|
||||||
"command": ["npx", "-y", "@modelcontextprotocol/server-fetch"],
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
"time": {
|
|
||||||
"type": "local",
|
|
||||||
"command": ["npx", "-y", "@modelcontextprotocol/server-time"],
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
"brave-search": {
|
"brave-search": {
|
||||||
"type": "local",
|
"type": "local",
|
||||||
"command": ["npx", "-y", "@brave/brave-search-mcp-server"],
|
"command": ["npx", "-y", "@brave/brave-search-mcp-server"],
|
||||||
@@ -142,5 +176,28 @@
|
|||||||
"BRAVE_API_KEY": "${BRAVE_API_KEY}"
|
"BRAVE_API_KEY": "${BRAVE_API_KEY}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"skills": {
|
||||||
|
"paths": ["~/.config/opencode/skills"]
|
||||||
|
},
|
||||||
|
"agent": {
|
||||||
|
"explorer": {
|
||||||
|
"description": "Read-only codebase explorer for gathering evidence before changes are proposed.",
|
||||||
|
"mode": "subagent",
|
||||||
|
"model": "ai/kimi-k2.6",
|
||||||
|
"permission": { "edit": "deny", "bash": "ask" }
|
||||||
|
},
|
||||||
|
"reviewer": {
|
||||||
|
"description": "PR reviewer focused on correctness, security, and missing tests.",
|
||||||
|
"mode": "subagent",
|
||||||
|
"model": "ai/kimi-k2.6",
|
||||||
|
"permission": { "edit": "deny", "bash": "ask" }
|
||||||
|
},
|
||||||
|
"docs-researcher": {
|
||||||
|
"description": "Documentation specialist that verifies APIs, framework behavior, and release notes.",
|
||||||
|
"mode": "subagent",
|
||||||
|
"model": "ai/kimi-k2.6",
|
||||||
|
"permission": { "edit": "deny", "bash": "ask" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user