mirror of
https://github.com/hanzoai/dev.git
synced 2026-10-25 03:32:32 +00:00
Includes: - All 7 agent backends: claude, codex, gemini, qwen, vibe, copilot, ollama - Language-specific expert agents (python, typescript, rust, go) - 4 MCP servers: hanzo (Python), hanzo-node (Node), github, filesystem - Subagent commands: /plan, /solve, /code, /review, /context - Full sandbox and shell environment configuration - API key documentation in header comments
327 lines
9.7 KiB
TOML
327 lines
9.7 KiB
TOML
# ==============================================================================
|
|
# Hanzo Dev Configuration Example
|
|
# ==============================================================================
|
|
#
|
|
# Copy this file to ~/.hanzo/config.toml (or ~/.code/config.toml)
|
|
#
|
|
# Environment Variables for API Keys:
|
|
# -----------------------------------
|
|
# ANTHROPIC_API_KEY - For Claude CLI (or use 'claude login')
|
|
# OPENAI_API_KEY - For Codex/GPT (or use ChatGPT auth)
|
|
# GOOGLE_API_KEY - For Gemini CLI
|
|
# DASHSCOPE_API_KEY - For Qwen CLI (Alibaba)
|
|
# MISTRAL_API_KEY - For Vibe CLI
|
|
# GH_TOKEN - For GitHub Copilot (or use 'gh auth login')
|
|
#
|
|
# MCP Server Auth:
|
|
# ----------------
|
|
# HANZO_API_KEY - For Hanzo MCP server authentication
|
|
# GITHUB_PERSONAL_ACCESS_TOKEN - For GitHub MCP server
|
|
#
|
|
# ==============================================================================
|
|
|
|
# ==============================================================================
|
|
# Hanzo Dev Configuration
|
|
# ==============================================================================
|
|
|
|
# Trusted Projects
|
|
[projects."/Users/z/work/lux"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/z/work/hanzo"]
|
|
trust_level = "trusted"
|
|
|
|
[projects."/Users/z/work/secretmenu/sfsecretmenu"]
|
|
trust_level = "trusted"
|
|
|
|
[notice]
|
|
hide_rate_limit_model_nudge = true
|
|
|
|
# ==============================================================================
|
|
# MCP Servers - Native Tool Providers
|
|
# ==============================================================================
|
|
|
|
# Hanzo Python MCP - Full tool suite (50+ tools)
|
|
[mcp_servers.hanzo]
|
|
command = "hanzo-mcp"
|
|
args = ["serve", "--enable-agent"]
|
|
startup_timeout_sec = 15
|
|
tool_timeout_sec = 60
|
|
env = { HANZO_MCP_LOG_LEVEL = "info" }
|
|
|
|
# Hanzo Node MCP - Alternative with UI tools
|
|
[mcp_servers.hanzo-node]
|
|
command = "npx"
|
|
args = ["-y", "@hanzo/mcp", "serve"]
|
|
startup_timeout_sec = 10
|
|
tool_timeout_sec = 30
|
|
|
|
# GitHub MCP - For repo/PR/issue operations
|
|
[mcp_servers.github]
|
|
command = "npx"
|
|
args = ["-y", "@modelcontextprotocol/server-github"]
|
|
env = { GITHUB_PERSONAL_ACCESS_TOKEN = "" } # Set via GH_TOKEN env
|
|
|
|
# Filesystem MCP - Sandboxed file access
|
|
[mcp_servers.filesystem]
|
|
command = "npx"
|
|
args = ["-y", "@modelcontextprotocol/server-filesystem", "/Users/z/work"]
|
|
|
|
# ==============================================================================
|
|
# Agent Backends - External AI CLIs
|
|
# ==============================================================================
|
|
|
|
# Claude Code - Primary agent
|
|
[[agents]]
|
|
name = "claude"
|
|
command = "claude"
|
|
enabled = true
|
|
read_only = false
|
|
description = "Claude AI - Strong reasoning, coding, and multi-file edits"
|
|
args = ["--dangerously-skip-permissions"]
|
|
|
|
[[agents]]
|
|
name = "claude-safe"
|
|
command = "claude"
|
|
enabled = true
|
|
read_only = true
|
|
description = "Claude AI in read-only mode"
|
|
args = []
|
|
|
|
# OpenAI Codex/GPT
|
|
[[agents]]
|
|
name = "codex"
|
|
command = "codex"
|
|
enabled = true
|
|
read_only = false
|
|
description = "OpenAI Codex - Fast coding agent"
|
|
args = ["-s", "workspace-write", "-a", "never"]
|
|
|
|
# Google Gemini
|
|
[[agents]]
|
|
name = "gemini"
|
|
command = "gemini"
|
|
enabled = true
|
|
read_only = false
|
|
description = "Google Gemini - Long context and multimodal"
|
|
args = ["-y"]
|
|
|
|
[[agents]]
|
|
name = "gemini-safe"
|
|
command = "gemini"
|
|
enabled = true
|
|
read_only = true
|
|
description = "Gemini in read-only mode"
|
|
args = []
|
|
|
|
# Alibaba Qwen
|
|
[[agents]]
|
|
name = "qwen"
|
|
command = "qwen"
|
|
enabled = true
|
|
read_only = false
|
|
description = "Qwen Coder - Strong at code generation"
|
|
args = ["-y"]
|
|
|
|
[[agents]]
|
|
name = "qwen-safe"
|
|
command = "qwen"
|
|
enabled = true
|
|
read_only = true
|
|
description = "Qwen in read-only mode"
|
|
args = []
|
|
|
|
# Mistral Vibe
|
|
[[agents]]
|
|
name = "vibe"
|
|
command = "vibe"
|
|
enabled = true
|
|
read_only = false
|
|
description = "Mistral Vibe - Fast coding assistance"
|
|
args = ["-y"]
|
|
|
|
[[agents]]
|
|
name = "vibe-safe"
|
|
command = "vibe"
|
|
enabled = true
|
|
read_only = true
|
|
description = "Vibe in read-only mode"
|
|
args = []
|
|
|
|
# GitHub Copilot
|
|
[[agents]]
|
|
name = "copilot"
|
|
command = "gh"
|
|
enabled = true
|
|
read_only = false
|
|
description = "GitHub Copilot - Authenticated via gh CLI"
|
|
args = ["copilot"]
|
|
|
|
[[agents]]
|
|
name = "copilot-safe"
|
|
command = "gh"
|
|
enabled = true
|
|
read_only = true
|
|
description = "Copilot in read-only mode"
|
|
args = ["copilot"]
|
|
|
|
# Ollama (local models)
|
|
[[agents]]
|
|
name = "ollama"
|
|
command = "ollama"
|
|
enabled = true
|
|
read_only = false
|
|
description = "Local LLM via Ollama"
|
|
args = ["run", "codellama"]
|
|
|
|
# ==============================================================================
|
|
# Language-Specific Agents
|
|
# ==============================================================================
|
|
|
|
[[agents]]
|
|
name = "python-expert"
|
|
command = "claude"
|
|
args = ["--model", "sonnet"]
|
|
description = "Python 3.12+ expert with modern tooling (uv, ruff, pydantic)"
|
|
enabled = true
|
|
instructions = "You are a Python expert. Use modern Python 3.12+ features, type hints, and tools like uv, ruff, and pydantic."
|
|
|
|
[[agents]]
|
|
name = "typescript-expert"
|
|
command = "claude"
|
|
args = ["--model", "sonnet"]
|
|
description = "TypeScript expert with strict types and modern patterns"
|
|
enabled = true
|
|
instructions = "You are a TypeScript expert. Use strict mode, advanced types, and modern ES2024 features."
|
|
|
|
[[agents]]
|
|
name = "rust-expert"
|
|
command = "claude"
|
|
args = ["--model", "sonnet"]
|
|
description = "Rust expert with async patterns and systems programming"
|
|
enabled = true
|
|
instructions = "You are a Rust expert. Follow Rust idioms, use Result/Option properly, and leverage the type system."
|
|
|
|
[[agents]]
|
|
name = "go-expert"
|
|
command = "claude"
|
|
args = ["--model", "sonnet"]
|
|
description = "Go expert with concurrency and clean architecture"
|
|
enabled = true
|
|
instructions = "You are a Go expert. Use idiomatic Go, proper error handling, and effective concurrency patterns."
|
|
|
|
# ==============================================================================
|
|
# Context Collector (long-context sweeps)
|
|
# ==============================================================================
|
|
|
|
[[agents]]
|
|
name = "context-collector"
|
|
command = "gemini"
|
|
enabled = true
|
|
read_only = true
|
|
description = "Gemini 2.5 long-context for repository analysis"
|
|
args = ["-y", "--model", "gemini-2.5-pro-exp"]
|
|
|
|
# ==============================================================================
|
|
# Subagent Commands - Multi-Agent Orchestration
|
|
# ==============================================================================
|
|
|
|
[subagents]
|
|
|
|
# /plan - Read-only planning with all agents
|
|
[[subagents.commands]]
|
|
name = "plan"
|
|
read_only = true
|
|
agents = ["claude", "gemini", "qwen", "copilot", "vibe"]
|
|
orchestrator_instructions = "Fan out to all agents for planning. Synthesize diverse perspectives into actionable plan."
|
|
agent_instructions = "Analyze the codebase and propose a detailed plan. Cite specific files and rationale."
|
|
|
|
# /solve - Read-only problem solving
|
|
[[subagents.commands]]
|
|
name = "solve"
|
|
read_only = true
|
|
agents = ["claude", "gemini", "qwen", "copilot", "vibe"]
|
|
orchestrator_instructions = "Have each agent propose solutions independently. Compare and select best approach."
|
|
agent_instructions = "Propose a concrete solution with implementation steps. Include validation approach."
|
|
|
|
# /code - Write-enabled implementation
|
|
[[subagents.commands]]
|
|
name = "code"
|
|
read_only = false
|
|
agents = ["claude", "codex", "gemini", "qwen", "vibe"]
|
|
orchestrator_instructions = "Coordinate implementation across agents. Each works in isolated worktree."
|
|
agent_instructions = "Implement the requested changes. Write minimal, focused code with tests."
|
|
|
|
# /review - Multi-agent code review
|
|
[[subagents.commands]]
|
|
name = "review"
|
|
read_only = true
|
|
agents = ["claude", "gemini", "qwen", "copilot", "vibe"]
|
|
orchestrator_instructions = "Each agent reviews independently. Reconcile feedback into actionable items."
|
|
agent_instructions = "Review for bugs, security issues, and improvements. Cite file:line precisely."
|
|
|
|
# /context - Repository context gathering
|
|
[[subagents.commands]]
|
|
name = "context"
|
|
read_only = true
|
|
agents = ["context-collector", "claude"]
|
|
orchestrator_instructions = "Sweep repository for relevant context before main task."
|
|
agent_instructions = "Summarize key files, architecture, and dependencies. Keep concise."
|
|
|
|
# Language-specific commands
|
|
[[subagents.commands]]
|
|
name = "python"
|
|
agents = ["python-expert", "claude", "codex"]
|
|
read_only = false
|
|
orchestrator_instructions = "Execute Python development tasks using language experts"
|
|
|
|
[[subagents.commands]]
|
|
name = "typescript"
|
|
agents = ["typescript-expert", "claude", "codex"]
|
|
read_only = false
|
|
orchestrator_instructions = "Execute TypeScript development tasks using language experts"
|
|
|
|
[[subagents.commands]]
|
|
name = "rust"
|
|
agents = ["rust-expert", "claude", "codex"]
|
|
read_only = false
|
|
orchestrator_instructions = "Execute Rust development tasks using language experts"
|
|
|
|
[[subagents.commands]]
|
|
name = "go"
|
|
agents = ["go-expert", "claude", "codex"]
|
|
read_only = false
|
|
orchestrator_instructions = "Execute Go development tasks using language experts"
|
|
|
|
# ==============================================================================
|
|
# Sandbox Configuration
|
|
# ==============================================================================
|
|
|
|
sandbox_mode = "workspace-write"
|
|
|
|
[sandbox_workspace_write]
|
|
writable_roots = ["."]
|
|
network_access = true
|
|
exclude_tmpdir_env_var = false
|
|
exclude_slash_tmp = false
|
|
|
|
# ==============================================================================
|
|
# Shell Environment
|
|
# ==============================================================================
|
|
|
|
[shell_environment_policy]
|
|
inherit = "all"
|
|
ignore_default_excludes = false
|
|
exclude = ["*SECRET*", "*PASSWORD*", "*CREDENTIAL*", "*PRIVATE*"]
|
|
set = { EDITOR = "vim", PAGER = "less" }
|
|
|
|
# ==============================================================================
|
|
# History & UI
|
|
# ==============================================================================
|
|
|
|
[history]
|
|
persistence = "save-all"
|
|
max_bytes = 10485760 # 10MB
|
|
|
|
file_opener = "cursor" # vscode, cursor, windsurf, none
|