Implement disabled commands functionality for projects, including config parsing, engine integration, and i18n support. Allows disabling specific commands per-project via config. generated by llmgit Co-Authored-By: Claude <noreply@anthropic.com>
658 lines
29 KiB
TOML
658 lines
29 KiB
TOML
# cc-connect configuration
|
||
# cc-connect 配置文件
|
||
#
|
||
# Copy this file to config.toml and fill in your credentials.
|
||
# 复制此文件为 config.toml,填入你的凭证信息。
|
||
#
|
||
# Each [[projects]] entry binds one code directory to its own agent + platforms.
|
||
# A single cc-connect process can manage multiple projects simultaneously.
|
||
# 每个 [[projects]] 将一个代码目录绑定到独立的 agent 和平台。
|
||
# 单个 cc-connect 进程可以同时管理多个项目。
|
||
|
||
# =============================================================================
|
||
# Global Settings / 全局设置
|
||
# =============================================================================
|
||
|
||
# Language for bot messages / 机器人消息语言
|
||
# - "en": English
|
||
# - "zh": 中文
|
||
# - "" (empty/not set): Auto-detect from user's first message / 留空自动检测
|
||
# language = "en"
|
||
|
||
# Session data storage directory (default: ~/.cc-connect)
|
||
# Stores conversation history and session state as JSON files.
|
||
# 会话数据存储目录(默认 ~/.cc-connect),以 JSON 文件保存对话历史和会话状态。
|
||
# data_dir = "/path/to/custom/dir"
|
||
|
||
# Default quiet mode (suppress thinking/tool progress messages) / 默认静默模式(隐藏思考和工具进度消息)
|
||
# Can be overridden per-project. Users can still toggle with /quiet command.
|
||
# 可被项目级配置覆盖。用户仍可通过 /quiet 命令切换。
|
||
# quiet = true
|
||
|
||
[log]
|
||
level = "info" # debug, info, warn, error
|
||
|
||
# =============================================================================
|
||
# Display Settings / 显示设置
|
||
# =============================================================================
|
||
# Controls how intermediate messages (thinking, tool use) are shown in chat.
|
||
# 控制中间消息(思考过程、工具调用)在聊天中的显示方式。
|
||
#
|
||
# Set to 0 to disable truncation (show full content).
|
||
# 设为 0 表示不截断(显示完整内容)。
|
||
|
||
# [display]
|
||
# thinking_max_len = 300 # Max chars for thinking messages (default: 300) / 思考消息最大字符数(默认 300)
|
||
# tool_max_len = 500 # Max chars for tool use messages (default: 500) / 工具调用消息最大字符数(默认 500)
|
||
|
||
# =============================================================================
|
||
# Speech-to-Text (Voice Messages) / 语音转文字(语音消息)
|
||
# =============================================================================
|
||
# Enable to transcribe voice messages to text before sending to agents.
|
||
# 启用后,语音消息会先转为文字再发送给 Agent。
|
||
#
|
||
# Requires ffmpeg for audio format conversion (AMR/OGG → MP3).
|
||
# 需要安装 ffmpeg 进行音频格式转换(AMR/OGG → MP3)。
|
||
|
||
# [speech]
|
||
# enabled = true
|
||
# provider = "openai" # "openai" or "groq" / "openai" 或 "groq"
|
||
# language = "" # e.g. "zh", "en"; empty = auto-detect / 如 "zh"、"en";留空自动检测
|
||
#
|
||
# [speech.openai]
|
||
# api_key = "sk-xxx" # OpenAI API key
|
||
# base_url = "" # optional: custom endpoint (OpenAI-compatible) / 可选:自定义端点(兼容 OpenAI 接口)
|
||
# model = "whisper-1" # default model / 默认模型
|
||
#
|
||
# # Alternative: Groq (faster, free tier available)
|
||
# # 备选:Groq(更快,有免费额度)
|
||
# [speech.groq]
|
||
# api_key = "gsk_xxx"
|
||
# model = "whisper-large-v3-turbo"
|
||
|
||
# =============================================================================
|
||
# Daemon Mode / 守护进程模式
|
||
# =============================================================================
|
||
# Run cc-connect as a background service (systemd user / launchd LaunchAgent).
|
||
# 将 cc-connect 作为后台服务运行(systemd 用户服务 / launchd LaunchAgent)。
|
||
#
|
||
# CLI: cc-connect daemon install|uninstall|start|stop|restart|status|logs
|
||
# Install: --log-file PATH, --log-max-size N (MB), --work-dir DIR, --force
|
||
# Logs: -f/--follow, -n N, --log-file PATH
|
||
# 配置均通过 CLI 参数,无需在此文件中设置。
|
||
|
||
# =============================================================================
|
||
# Custom Skills (Slash Commands) / 自定义命令
|
||
# =============================================================================
|
||
# Define reusable prompt templates as global slash commands (available in all projects).
|
||
# 定义可复用的 prompt 模板作为全局 slash 命令(所有项目通用)。
|
||
#
|
||
# Placeholders / 占位符:
|
||
# {{1}}, {{2}} — positional argument / 位置参数
|
||
# {{1:default}} — positional with default value / 带默认值的位置参数
|
||
# {{2*}} — argument N and everything after / 第 N 个及之后所有参数
|
||
# {{2*:default}} — same, with default / 同上,带默认值
|
||
# {{args}} — all arguments / 所有参数
|
||
# {{args:default}} — all arguments, with default if none / 所有参数,无参数时使用默认值
|
||
# (no placeholder — args appended to end / 无占位符则参数追加到末尾)
|
||
#
|
||
# Default values are used when the corresponding argument is not provided.
|
||
# 当对应参数未提供时,使用默认值替代。
|
||
#
|
||
# Usage: /finduser 张三 → expands prompt with "张三" and sends to agent
|
||
# 用法: /finduser 张三 → 展开模板并发送给 Agent
|
||
|
||
# [[commands]]
|
||
# name = "finduser"
|
||
# description = "Look up user info by name / 按姓名查找用户信息"
|
||
# prompt = "Search the database for user「{{1}}」and return details including registration time, last login, and permissions."
|
||
|
||
# [[commands]]
|
||
# name = "review"
|
||
# description = "Code review with focus area / 代码审查(可指定关注点)"
|
||
# prompt = "Please review {{1}} focusing on: {{2*:code quality and potential bugs}}"
|
||
|
||
# [[commands]]
|
||
# name = "translate"
|
||
# description = "Translate text to specified language / 翻译文本到指定语言"
|
||
# prompt = "Translate the following text to {{1:English}}:\n{{2*}}"
|
||
|
||
# [[commands]]
|
||
# name = "daily"
|
||
# description = "Generate daily progress report / 生成每日进度报告"
|
||
# prompt = "Summarize today's code changes and project progress. Generate a concise daily report."
|
||
#
|
||
# You can also add/remove commands at runtime via chat:
|
||
# 也可以在聊天中动态添加/删除命令:
|
||
# /commands add finduser Search the database for user「{{1}}」
|
||
# /commands del finduser
|
||
# /commands — list all custom commands
|
||
#
|
||
# In addition, cc-connect auto-discovers .md files from the agent's commands
|
||
# directory (e.g. .claude/commands/*.md, .gemini/commands/*.md).
|
||
# 此外,cc-connect 还会自动发现 Agent 的 commands 目录下的 .md 文件。
|
||
|
||
# =============================================================================
|
||
# Banned Words / 违禁词
|
||
# =============================================================================
|
||
#
|
||
# Messages containing any of these words will be blocked and NOT forwarded to
|
||
# the AI agent. Matching is case-insensitive.
|
||
# 消息中包含以下任一违禁词时,将被拦截,不会转发给 AI Agent。匹配不区分大小写。
|
||
|
||
# banned_words = ["违禁词1", "违禁词2", "secret_project"]
|
||
|
||
# =============================================================================
|
||
# Command Aliases / 命令别名
|
||
# =============================================================================
|
||
#
|
||
# Create aliases for commands — like Linux shell aliases.
|
||
# 为命令创建别名,类似 Linux shell 的 alias。
|
||
#
|
||
# When a user sends a message matching the alias trigger (exact match on first
|
||
# word), it is automatically replaced with the target command.
|
||
# 当用户发送的消息首词匹配别名触发词时,自动替换为目标命令。
|
||
#
|
||
# Example: typing "帮助" triggers "/help", typing "新建 测试" triggers "/new 测试".
|
||
# 示例:输入"帮助"触发 "/help",输入"新建 测试"触发 "/new 测试"。
|
||
|
||
# [[aliases]]
|
||
# name = "帮助"
|
||
# command = "/help"
|
||
|
||
# [[aliases]]
|
||
# name = "新建"
|
||
# command = "/new"
|
||
|
||
# [[aliases]]
|
||
# name = "列表"
|
||
# command = "/list"
|
||
|
||
#
|
||
# You can also add/remove aliases at runtime via chat:
|
||
# 也可以在聊天中动态添加/删除别名:
|
||
# /alias add 帮助 /help
|
||
# /alias del 帮助
|
||
# /alias — list all aliases
|
||
#
|
||
|
||
# =============================================================================
|
||
# Project 1 / 项目 1
|
||
# =============================================================================
|
||
|
||
[[projects]]
|
||
name = "my-backend"
|
||
# quiet = true # Override global quiet for this project / 覆盖全局静默模式
|
||
# disabled_commands = ["restart", "upgrade", "cron"] # Disable specific commands for this project
|
||
# # 禁用该项目的指定命令
|
||
|
||
[projects.agent]
|
||
type = "claudecode"
|
||
|
||
[projects.agent.options]
|
||
work_dir = "/path/to/backend"
|
||
mode = "default" # "default" | "acceptEdits" (edit) | "plan" | "bypassPermissions" (yolo)
|
||
|
||
# Mode options / 模式说明:
|
||
# - "default": Every tool call requires user approval. / 每次工具调用都需要用户确认。
|
||
# - "acceptEdits" (edit): File edit tools auto-approved; other tools still ask. / 文件编辑自动通过,其他仍需确认。
|
||
# - "plan": Claude only plans — no execution until you approve. / 只做规划不执行,审批后再执行。
|
||
# - "bypassPermissions" (yolo): All tool calls auto-approved. Use with caution. / 全部自动通过,请谨慎使用。
|
||
#
|
||
# When using IM platforms, you can reply "允许"/"allow" to grant permission.
|
||
# 在 IM 平台中,可回复"允许"或"allow"来授权操作。
|
||
|
||
# In default/acceptEdits mode, you can pre-approve specific tools:
|
||
# 在 default/acceptEdits 模式下,可预授权特定工具:
|
||
# allowed_tools = ["Read", "Grep", "Glob", "Bash", "Edit", "Write"]
|
||
|
||
# Optional: specify a model / 可选:指定模型
|
||
# model = "claude-sonnet-4-20250514"
|
||
|
||
# Claude Code Router Integration / Claude Code Router 集成
|
||
# Route Claude Code requests through Claude Code Router to use different model providers.
|
||
# 通过 Claude Code Router 路由 Claude Code 请求,使用不同的模型提供商。
|
||
# See: https://github.com/musistudio/claude-code-router
|
||
#
|
||
# router_url = "http://127.0.0.1:3456" # Claude Code Router URL (default: http://127.0.0.1:3456)
|
||
# router_api_key = "your-router-api-key" # Optional: API key if router requires authentication / 可选:如果 router 需要认证
|
||
#
|
||
# When router_url is set, cc-connect will automatically:
|
||
# 设置 router_url 后,cc-connect 会自动:
|
||
# - Set ANTHROPIC_BASE_URL to router_url
|
||
# - Set NO_PROXY=127.0.0.1 to prevent proxy interference
|
||
# - Disable telemetry and cost warnings for cleaner integration
|
||
#
|
||
# Note: When using router, provider settings below are ignored as the router handles model selection.
|
||
# 注意:使用 router 时,下方的 provider 设置将被忽略,因为 router 负责模型选择。
|
||
|
||
# Active provider (matches a name in [[projects.agent.providers]])
|
||
# 当前激活的 provider(对应下方 providers 中的 name)
|
||
# provider = "anthropic"
|
||
|
||
# API Providers — switch between them via /provider command in chat
|
||
# or via CLI: cc-connect provider add --project my-backend --name relay --api-key sk-xxx
|
||
# API Provider 管理 — 可通过聊天命令 /provider 或 CLI 命令切换
|
||
#
|
||
# [[projects.agent.providers]]
|
||
# name = "anthropic"
|
||
# api_key = "sk-ant-xxx"
|
||
#
|
||
# [[projects.agent.providers]]
|
||
# name = "relay"
|
||
# api_key = "sk-xxx"
|
||
# base_url = "https://api.relay-service.com"
|
||
# model = "claude-sonnet-4-20250514"
|
||
#
|
||
# # Third-party provider with thinking override / 第三方 Provider 并覆盖 thinking 参数
|
||
# # Some providers (e.g. SiliconFlow) don't support Claude's adaptive thinking.
|
||
# # Set thinking = "disabled" to auto-rewrite via a local proxy.
|
||
# # 部分第三方 Provider(如硅基流动)不支持 Claude 的 adaptive thinking,
|
||
# # 设置 thinking = "disabled" 后 cc-connect 会通过本地代理自动改写请求。
|
||
# [[projects.agent.providers]]
|
||
# name = "siliconflow"
|
||
# api_key = "sk-xxx"
|
||
# base_url = "https://api.siliconflow.cn"
|
||
# model = "deepseek-ai/DeepSeek-V3"
|
||
# thinking = "disabled"
|
||
#
|
||
# # For special setups (Bedrock, Vertex, etc.), use the env map:
|
||
# # 特殊环境(Bedrock、Vertex 等)使用 env 字段:
|
||
# [[projects.agent.providers]]
|
||
# name = "bedrock"
|
||
# env = { CLAUDE_CODE_USE_BEDROCK = "1", AWS_PROFILE = "bedrock" }
|
||
|
||
# Feishu / Lark / 飞书
|
||
# 1. Create an app at https://open.feishu.cn / 在 https://open.feishu.cn 创建应用
|
||
# 2. Enable Bot capability / 开启机器人能力
|
||
# 3. Add im.message.receive_v1 event, select WebSocket long-connection mode
|
||
# 添加 im.message.receive_v1 事件,选择 WebSocket 长连接模式
|
||
# 4. Fill in app_id and app_secret below / 填入下方 app_id 和 app_secret
|
||
# Note: No WebSocket URL needed — the SDK auto-negotiates the connection.
|
||
# 注意:无需配置 WebSocket URL,SDK 会自动通过凭证建立连接。
|
||
|
||
[[projects.platforms]]
|
||
type = "feishu"
|
||
|
||
[projects.platforms.options]
|
||
app_id = "your-feishu-app-id"
|
||
app_secret = "your-feishu-app-secret"
|
||
# allow_from = "*" # Allowed user open_ids, comma-separated; "*" = all (default) / 允许的用户 open_id,逗号分隔;"*" 表示所有(默认)
|
||
# reaction_emoji = "OnIt" # Emoji reaction on incoming messages (default: "OnIt"); set to "none" to disable
|
||
# # 收到消息时添加的表情回复(默认 "OnIt");设为 "none" 可禁用
|
||
# group_reply_all = false # If true, respond to ALL group messages without requiring @mention
|
||
# # 设为 true 时,群聊中无需 @机器人 也会响应所有消息(默认 false)
|
||
|
||
# DingTalk / 钉钉 (uncomment to enable / 取消注释以启用)
|
||
# 1. Create an app at https://open-dev.dingtalk.com / 在钉钉开放平台创建应用
|
||
# 2. Under "App Features > Bot", enable bot and select Stream mode
|
||
# 在"应用功能 > 机器人"中启用机器人并选择 Stream 模式
|
||
# 3. Fill in client_id (AppKey) and client_secret (AppSecret) below
|
||
# 填入下方 client_id (AppKey) 和 client_secret (AppSecret)
|
||
|
||
# [[projects.platforms]]
|
||
# type = "dingtalk"
|
||
#
|
||
# [projects.platforms.options]
|
||
# client_id = "your-dingtalk-client-id"
|
||
# client_secret = "your-dingtalk-client-secret"
|
||
# allow_from = "*" # Allowed staff IDs / 允许的员工 ID
|
||
|
||
# Telegram (uncomment to enable / 取消注释以启用)
|
||
# 1. Message @BotFather on Telegram, send /newbot to create a bot
|
||
# 在 Telegram 中找 @BotFather,发送 /newbot 创建机器人
|
||
# 2. Copy the bot token below / 复制 token 到下方
|
||
# Connection: Long polling (no public URL needed) / 长轮询(无需公网 IP)
|
||
|
||
# [[projects.platforms]]
|
||
# type = "telegram"
|
||
#
|
||
# [projects.platforms.options]
|
||
# token = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
|
||
# allow_from = "*" # Allowed Telegram user IDs, e.g. "123456789,987654321"; "*" = all
|
||
# # 允许的 Telegram 用户 ID,如 "123456789,987654321";"*" 表示所有
|
||
# group_reply_all = false # If true, respond to ALL group messages without @mention / 设为 true 群聊无需 @ 也响应
|
||
|
||
# Slack (uncomment to enable / 取消注释以启用)
|
||
# 1. Create an app at https://api.slack.com/apps / 创建应用
|
||
# 2. Enable Socket Mode (Settings > Socket Mode) / 开启 Socket Mode
|
||
# 3. Subscribe to bot events: message.channels, message.im
|
||
# 订阅事件:message.channels, message.im
|
||
# 4. Install app to workspace, copy Bot Token (xoxb-...) and App Token (xapp-...)
|
||
# 安装应用到工作区,复制 Bot Token 和 App Token
|
||
# Connection: Socket Mode WebSocket (no public URL needed) / 无需公网 IP
|
||
|
||
# [[projects.platforms]]
|
||
# type = "slack"
|
||
#
|
||
# [projects.platforms.options]
|
||
# bot_token = "xoxb-your-bot-token"
|
||
# app_token = "xapp-your-app-level-token"
|
||
# allow_from = "*" # Allowed Slack user IDs / 允许的 Slack 用户 ID
|
||
|
||
# Discord (uncomment to enable / 取消注释以启用)
|
||
# 1. Create an app at https://discord.com/developers/applications / 创建应用
|
||
# 2. Under "Bot", create a bot and copy the token / 创建 Bot 并复制 token
|
||
# 3. Enable "Message Content Intent" under Privileged Gateway Intents
|
||
# 在 Privileged Gateway Intents 中开启 Message Content Intent
|
||
# 4. Invite bot with OAuth2 URL Generator:
|
||
# 通过 OAuth2 URL 邀请 Bot 到服务器:
|
||
# Scopes: bot + applications.commands (BOTH required for slash command menu)
|
||
# Scopes 需要同时勾选: bot + applications.commands(缺少后者则 / 菜单不会出现)
|
||
# Bot Permissions: Send Messages, Use Slash Commands
|
||
# Bot 权限: Send Messages, Use Slash Commands
|
||
# Connection: Gateway WebSocket (no public URL needed) / 无需公网 IP
|
||
#
|
||
# NOTE: Global slash commands may take up to 1 hour to appear in Discord.
|
||
# Set guild_id for instant per-guild registration (recommended for testing).
|
||
# 注意:全局 slash 命令最多需 1 小时生效。设置 guild_id 可秒级生效(推荐测试时使用)。
|
||
# To find your guild ID: Discord Settings > Advanced > Developer Mode ON, then right-click server > Copy Server ID
|
||
# 获取 guild_id:Discord 设置 > 高级 > 开启开发者模式,然后右键服务器 > 复制服务器 ID
|
||
|
||
# [[projects.platforms]]
|
||
# type = "discord"
|
||
#
|
||
# [projects.platforms.options]
|
||
# token = "your-discord-bot-token"
|
||
# allow_from = "*" # Allowed Discord user IDs / 允许的 Discord 用户 ID
|
||
# guild_id = "" # Optional: set for instant slash command registration (per-guild)
|
||
# # 可选:设置后 slash 命令秒级生效(仅该服务器)
|
||
# group_reply_all = false # If true, respond to ALL guild messages without @mention / 设为 true 群聊无需 @ 也响应
|
||
|
||
# LINE (uncomment to enable / 取消注释以启用)
|
||
# 1. Create a channel at https://developers.line.biz/console/ (Messaging API)
|
||
# 在 LINE Developers 创建 Messaging API Channel
|
||
# 2. Copy Channel Secret and Channel Access Token (long-lived)
|
||
# 复制 Channel Secret 和 Channel Access Token
|
||
# 3. Set your webhook URL to: http(s)://<your-domain>:<port>/callback
|
||
# 设置 Webhook URL:http(s)://<你的域名>:<端口>/callback
|
||
# Connection: HTTP Webhook — you need a public URL (use ngrok, cloudflared, etc.)
|
||
# 连接方式:HTTP Webhook — 需要公网 URL(可用 ngrok、cloudflared 等)
|
||
|
||
# [[projects.platforms]]
|
||
# type = "line"
|
||
#
|
||
# [projects.platforms.options]
|
||
# channel_secret = "your-line-channel-secret"
|
||
# channel_token = "your-line-channel-access-token"
|
||
# port = "8080"
|
||
# callback_path = "/callback"
|
||
# allow_from = "*" # Allowed LINE user IDs / 允许的 LINE 用户 ID
|
||
|
||
# WeChat Work / 企业微信 (uncomment to enable / 取消注释以启用)
|
||
# 1. Log in to https://work.weixin.qq.com/wework_admin/frame
|
||
# 登录企业微信管理后台
|
||
# 2. App Management > Create a custom app > note AgentId + Secret
|
||
# 应用管理 > 创建自建应用 > 记录 AgentId 和 Secret
|
||
# 3. My Enterprise > note Corp ID / 我的企业 > 记录 Corp ID
|
||
# 4. App > Receive Messages > Set API Receive:
|
||
# 应用 > 接收消息 > 设置 API 接收:
|
||
# URL: http(s)://<your-domain>:<port>/wecom/callback
|
||
# Token: any random string / 任意随机字符串
|
||
# EncodingAESKey: click "Random Generate" (43 chars) / 点击"随机生成"(43位)
|
||
# (Start cc-connect FIRST, then save to pass verification)
|
||
# (先启动 cc-connect,再保存以通过验证)
|
||
# 5. App > Trusted IP > add your server's outbound IP
|
||
# 应用 > 企业可信 IP > 添加服务器出口 IP
|
||
# 6. (Optional) My Enterprise > WeChat Plugin > scan QR to link personal WeChat
|
||
# (可选)我的企业 > 微信插件 > 扫码关联个人微信
|
||
# Connection: HTTP Webhook — you need a public URL
|
||
# 连接方式:HTTP Webhook — 需要公网 URL
|
||
|
||
# [[projects.platforms]]
|
||
# type = "wecom"
|
||
#
|
||
# [projects.platforms.options]
|
||
# corp_id = "your-corp-id"
|
||
# corp_secret = "your-app-secret"
|
||
# agent_id = "1000002"
|
||
# callback_token = "your-callback-token"
|
||
# callback_aes_key = "your-43-char-encoding-aes-key"
|
||
# port = "8081"
|
||
# callback_path = "/wecom/callback"
|
||
# enable_markdown = false # set true to send Markdown (only renders in WeChat Work app, NOT personal WeChat)
|
||
# # 设为 true 发送 Markdown(仅企业微信应用内可渲染,个人微信显示"暂不支持")
|
||
# allow_from = "*" # Allowed WeChat Work user IDs / 允许的企业微信用户 ID
|
||
# proxy = "" # optional: forward proxy for API calls if your IP is dynamic
|
||
# # 可选:正向代理,用于 IP 不固定的场景
|
||
# # e.g. "http://your-vps-ip:8888" — the VPS IP goes into trusted IP list
|
||
# # 示例:"http://你的VPS-IP:8888" — 将 VPS IP 加入可信 IP 列表
|
||
# proxy_username = "" # optional: proxy authentication username / 代理认证用户名
|
||
# proxy_password = "" # optional: proxy authentication password / 代理认证密码
|
||
|
||
# =============================================================================
|
||
# Project 2: Using Cursor Agent / 项目 2:使用 Cursor Agent (uncomment to enable / 取消注释以启用)
|
||
# =============================================================================
|
||
# Requires: Cursor Agent CLI (`agent`) — install via Cursor IDE or `npm i -g @anthropic-ai/cursor-agent`
|
||
# 需要安装:Cursor Agent CLI (`agent`) — 通过 Cursor IDE 或 npm 安装
|
||
# Uses `agent --print --output-format stream-json` under the hood.
|
||
# 底层使用 `agent --print --output-format stream-json` 命令。
|
||
|
||
# [[projects]]
|
||
# name = "my-cursor-project"
|
||
#
|
||
# [projects.agent]
|
||
# type = "cursor"
|
||
#
|
||
# [projects.agent.options]
|
||
# work_dir = "/path/to/project"
|
||
# mode = "force" # "default" | "force" (yolo) | "plan" | "ask"
|
||
# cmd = "agent" # CLI binary name (default: "agent") / CLI 二进制名称(默认 "agent")
|
||
#
|
||
# Mode options / 模式说明:
|
||
# - "default": Trust workspace, ask before tool use / 信任工作区,工具调用前询问
|
||
# - "force": Auto-approve all tool calls (same as --force/--yolo) / 自动批准所有工具调用
|
||
# - "plan": Read-only analysis, no edits / 只读分析,不做修改
|
||
# - "ask": Q&A style, read-only / 问答风格,只读
|
||
#
|
||
# Optional: specify a model / 可选:指定模型
|
||
# model = "claude-sonnet-4-20250514"
|
||
#
|
||
# [[projects.platforms]]
|
||
# type = "feishu"
|
||
#
|
||
# [projects.platforms.options]
|
||
# app_id = "your-feishu-app-id"
|
||
# app_secret = "your-feishu-app-secret"
|
||
|
||
# =============================================================================
|
||
# Project 3: Using Gemini CLI / 项目 3:使用 Gemini CLI (uncomment to enable / 取消注释以启用)
|
||
# =============================================================================
|
||
# Requires: npm install -g @google/gemini-cli
|
||
# 需要安装:npm install -g @google/gemini-cli
|
||
# Gemini CLI uses `gemini -p --output-format stream-json` under the hood.
|
||
# Gemini CLI 底层使用 `gemini -p --output-format stream-json` 命令。
|
||
#
|
||
# Authentication / 认证方式:
|
||
# - Google Account login (free: 60 req/min, 1000 req/day) / Google 账号登录(免费额度)
|
||
# - GEMINI_API_KEY env var / 环境变量
|
||
# - Vertex AI (GOOGLE_API_KEY + GOOGLE_GENAI_USE_VERTEXAI=true)
|
||
|
||
# [[projects]]
|
||
# name = "my-gemini-project"
|
||
#
|
||
# [projects.agent]
|
||
# type = "gemini"
|
||
#
|
||
# [projects.agent.options]
|
||
# work_dir = "/path/to/project"
|
||
# mode = "yolo" # "default" | "auto_edit" | "yolo" | "plan"
|
||
# cmd = "gemini" # CLI binary name (default: "gemini") / CLI 二进制名称(默认 "gemini")
|
||
#
|
||
# Mode options / 模式说明:
|
||
# - "default": Prompt for approval on each tool use / 每次工具调用都需要确认
|
||
# - "auto_edit": Auto-approve edit tools, ask for others / 编辑工具自动通过,其他仍需确认
|
||
# - "yolo": Auto-approve all tool calls (-y flag) / 自动批准所有工具调用
|
||
# - "plan": Read-only plan mode, no execution / 只读规划模式,不做修改
|
||
#
|
||
# Optional: specify a model / 可选:指定模型
|
||
# model = "gemini-2.5-flash"
|
||
#
|
||
# # Provider with API key / 使用 API Key 的 Provider
|
||
# [[projects.agent.providers]]
|
||
# name = "google"
|
||
# api_key = "your-gemini-api-key" # GEMINI_API_KEY
|
||
#
|
||
# # Vertex AI provider / Vertex AI 提供商
|
||
# [[projects.agent.providers]]
|
||
# name = "vertex"
|
||
# env = { GOOGLE_API_KEY = "your-key", GOOGLE_GENAI_USE_VERTEXAI = "true" }
|
||
#
|
||
# [[projects.platforms]]
|
||
# type = "feishu"
|
||
#
|
||
# [projects.platforms.options]
|
||
# app_id = "your-feishu-app-id"
|
||
# app_secret = "your-feishu-app-secret"
|
||
|
||
# =============================================================================
|
||
# Project 4: Using Codex agent / 项目 4:使用 Codex agent (uncomment to enable / 取消注释以启用)
|
||
# =============================================================================
|
||
# Requires: npm install -g @openai/codex
|
||
# 需要安装:npm install -g @openai/codex
|
||
# Codex uses `codex exec --json` under the hood.
|
||
# Codex 底层使用 `codex exec --json` 命令。
|
||
|
||
# [[projects]]
|
||
# name = "my-codex-project"
|
||
#
|
||
# [projects.agent]
|
||
# type = "codex"
|
||
#
|
||
# [projects.agent.options]
|
||
# work_dir = "/path/to/project"
|
||
# mode = "suggest" # "suggest" | "auto-edit" | "full-auto" | "yolo"
|
||
#
|
||
# Mode options / 模式说明:
|
||
# - "suggest": ask permission for every tool call (default, safest) / 每次调用都需确认(默认,最安全)
|
||
# - "auto-edit": auto-approve file edits, ask for shell commands / 文件编辑自动通过,Shell 命令仍需确认
|
||
# - "full-auto": auto-approve everything with workspace sandbox / 全部自动通过,工作区沙箱保护
|
||
# - "yolo": bypass all approvals and sandbox (dangerous) / 跳过所有审批和沙箱(危险)
|
||
#
|
||
# Optional: specify a model / 可选:指定模型
|
||
# model = "o3"
|
||
#
|
||
# # Active provider / 当前激活的 provider
|
||
# # provider = "openai"
|
||
#
|
||
# [[projects.agent.providers]]
|
||
# name = "openai"
|
||
# api_key = "sk-xxx"
|
||
#
|
||
# [[projects.agent.providers]]
|
||
# name = "custom"
|
||
# api_key = "sk-xxx"
|
||
# base_url = "https://custom-api.com/v1"
|
||
# model = "gpt-4o"
|
||
#
|
||
# [[projects.platforms]]
|
||
# type = "telegram"
|
||
#
|
||
# [projects.platforms.options]
|
||
# token = "your-telegram-bot-token"
|
||
|
||
# QQ (via NapCat / OneBot v11) (uncomment to enable / 取消注释以启用)
|
||
# Requires a OneBot v11 implementation running alongside your QQ client:
|
||
# 需要一个 OneBot v11 实现配合 QQ 客户端运行:
|
||
# - NapCat (recommended / 推荐): https://github.com/NapNeko/NapCatQQ
|
||
# - Docker: docker run -d --name napcat -e ACCOUNT=<QQ号> -p 3001:3001 -p 6099:6099 mlikiowa/napcat-docker:latest
|
||
# - Enable Forward WebSocket in NapCat WebUI (http://localhost:6099), default port 3001
|
||
# 在 NapCat WebUI 中启用正向 WebSocket,默认端口 3001
|
||
# - LLOneBot: https://github.com/LLOneBot/LLOneBot (NTQQ plugin / NTQQ 插件)
|
||
#
|
||
# allow_from: comma-separated QQ user IDs that are allowed to interact, or "*" for all.
|
||
# 允许交互的 QQ 号列表(逗号分隔),设为 "*" 允许所有人。
|
||
# token: optional access_token for WebSocket authentication (must match NapCat config).
|
||
# 可选的 WebSocket 鉴权 token(需与 NapCat 配置一致)。
|
||
|
||
# [[projects.platforms]]
|
||
# type = "qq"
|
||
#
|
||
# [projects.platforms.options]
|
||
# ws_url = "ws://127.0.0.1:3001" # NapCat Forward WebSocket URL
|
||
# token = "" # optional: access_token / 可选鉴权 token
|
||
# allow_from = "*" # allowed QQ user IDs, e.g. "12345,67890" or "*" for all
|
||
# # 允许的 QQ 号,如 "12345,67890","*" 表示所有
|
||
|
||
# =============================================================================
|
||
# Project 5: Using Qoder CLI / 项目 5:使用 Qoder CLI (uncomment to enable / 取消注释以启用)
|
||
# =============================================================================
|
||
# Requires: curl -fsSL https://qoder.com/install | bash
|
||
# 需要安装:curl -fsSL https://qoder.com/install | bash
|
||
# Qoder CLI uses `qodercli -p <prompt> -f stream-json` under the hood.
|
||
# Qoder CLI 底层使用 `qodercli -p <prompt> -f stream-json` 命令。
|
||
|
||
# [[projects]]
|
||
# name = "my-qoder-project"
|
||
#
|
||
# [projects.agent]
|
||
# type = "qoder"
|
||
#
|
||
# [projects.agent.options]
|
||
# work_dir = "/path/to/project"
|
||
# mode = "default" # "default" | "yolo"
|
||
#
|
||
# Mode options / 模式说明:
|
||
# - "default": Standard permissions / 标准权限模式
|
||
# - "yolo": Skip all permission checks (--dangerously-skip-permissions) / 跳过所有权限检查
|
||
#
|
||
# Optional: specify a model tier / 可选:指定模型级别
|
||
# model = "auto" # "auto" | "ultimate" | "performance" | "efficient" | "lite"
|
||
#
|
||
# [[projects.platforms]]
|
||
# type = "telegram"
|
||
#
|
||
# [projects.platforms.options]
|
||
# token = "your-telegram-bot-token"
|
||
|
||
# =============================================================================
|
||
# Project 6: Using OpenCode / 项目 6:使用 OpenCode (uncomment to enable / 取消注释以启用)
|
||
# =============================================================================
|
||
# Requires: OpenCode CLI — https://github.com/opencode-ai/opencode
|
||
# 需要安装:OpenCode CLI
|
||
# Uses `opencode run --format json` under the hood.
|
||
# 底层使用 `opencode run --format json` 命令。
|
||
|
||
# [[projects]]
|
||
# name = "my-opencode-project"
|
||
#
|
||
# [projects.agent]
|
||
# type = "opencode"
|
||
#
|
||
# [projects.agent.options]
|
||
# work_dir = "/path/to/project"
|
||
# mode = "default" # "default" | "yolo"
|
||
#
|
||
# Mode options / 模式说明:
|
||
# - "default": Standard mode / 标准模式
|
||
# - "yolo": Auto-approve all tool calls / 自动批准所有工具调用
|
||
#
|
||
# Optional: specify a model (provider/model format) / 可选:指定模型
|
||
# model = "anthropic/claude-sonnet-4-20250514"
|
||
#
|
||
# [[projects.platforms]]
|
||
# type = "telegram"
|
||
#
|
||
# [projects.platforms.options]
|
||
# token = "your-telegram-bot-token"
|
||
|
||
# =============================================================================
|
||
# Project 7: Another example / 项目 7:更多示例 (uncomment to enable / 取消注释以启用)
|
||
# =============================================================================
|
||
|
||
# [[projects]]
|
||
# name = "my-frontend"
|
||
#
|
||
# [projects.agent]
|
||
# type = "claudecode"
|
||
#
|
||
# [projects.agent.options]
|
||
# work_dir = "/path/to/frontend"
|
||
# mode = "bypassPermissions"
|
||
#
|
||
# [[projects.platforms]]
|
||
# type = "discord"
|
||
#
|
||
# [projects.platforms.options]
|
||
# token = "your-discord-bot-token"
|