Skip to content

Mashiro2000/We0Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

we0 logo

样图

TUI

we0-main.png

ACP

we0-acp.png

首次运行

本项目的 CLI 入口是 we0。在开发环境中可以这样启动:

python -m venv .venv
source .venv/bin/activate
pip install -e .
we0

也可以直接用模块方式启动:

python -m we0_agent

第一次启动时,We0 会初始化用户目录:

  • ~/.we0/settings.json:用户级全局配置。不存在时会从 resources/example.settings.json 完整创建。
  • ~/.we0/profiles/main/:默认 companion profile 数据目录。
  • ~/.we0/skills/~/.we0/commands/~/.we0/agents/~/.we0/plugins/:全局扩展目录。

如果已有 ~/.we0/settings.json,启动时会保留当前配置;当 common.mcp_servers 为空时,会从默认模板补齐内置工具配置,避免首次或旧配置没有工具可用。

快速配置入口

进入 TUI 后,可以直接用 slash command 打开配置面板,不必手写 JSON:

  • /provider:打开模型供应商面板,用于启用/禁用 provider、填写 API key / API base、维护 provider 下的模型列表。
  • /model:打开模型选择器,用于快速切换当前会话/工作区默认聊天模型。
  • /config:打开通用配置面板,用于调整语言、模型档位、reasoning、运行时、ACP、权限等常用配置。

这几个入口最终会写入相同的 settings 分层:供应商和模型基础设施落在用户级或项目级配置;当前工作区的默认模型、运行时选项等可由项目级 .we0/settings.json 覆盖。

/provider

we0-provider.png

/model

we0-model.png

/config

we0-config.png

配置文件

主要配置文件是 JSON,分为用户级、项目级和 profile 级:

  • 用户级:~/.we0/settings.json
  • 项目级:<project>/.we0/settings.json
  • Profile 级:~/.we0/profiles/<profile>/settings.json

配置结构分三块:

  • common.*:通用配置,包括模型、供应商、权限、MCP 工具、LSP、插件和共享服务。
  • code.*:TUI / ACP / coding agent 相关配置,包括工作目录、运行时、代码记忆、默认 agent 和 ACP 行为。
  • we0.*:IM / companion 相关配置,包括语音、embedding、记忆、频道路由、heartbeat 和 IM skills。

运行时合并规则:

  • TUI / ACP 读取 user + project
  • IM / companion 读取 user + profile
  • common.providerscommon.servicescommon.mcp_serverscommon.lsp_serverscommon.plugins 属于基础设施配置,只放在用户级或项目级,不进入 profile override。

工具配置必须写在 common.mcp_serverscode.mcp_serverswe0.mcp_servers 不是有效配置字段。

模型供应商与模型配置

模型供应商配置在 common.providers。默认模板包含:

  • anthropic:默认启用。模板模型包括 claude-sonnet-4-6claude-haiku-4-5
  • openai:默认关闭。模板模型包括 gpt-5.4gpt-5.4-minigpt-5.4-nanotts-1-hdtext-embedding-3-small
  • gemini:默认关闭。模板模型包括 gemini-2.5-progemini-2.5-flashgemini-3-pro-preview 等。

示例:

{
  "common": {
    "chat": {
      "default": {
        "provider": "anthropic",
        "model": "claude-sonnet-4-6"
      },
      "tiers": {
        "fast": {
          "provider": "anthropic",
          "model": "claude-haiku-4-5"
        },
        "pro": {
          "provider": "anthropic",
          "model": "claude-sonnet-4-6"
        },
        "max": {
          "provider": "anthropic",
          "model": "claude-sonnet-4-6"
        }
      },
      "reasoning": {
        "enabled": true
      },
      "on_missing": "error"
    },
    "providers": {
      "anthropic": {
        "apiKey": "",
        "enabled": true,
        "models": [
          "claude-haiku-4-5",
          {
            "id": "claude-sonnet-4-6",
            "features": ["defer_loading"]
          }
        ]
      }
    }
  }
}

常用字段:

  • common.chat.default:默认聊天模型。
  • common.chat.tiers.fast/pro/max:模型档位,可被内部任务选择使用。
  • common.chat.on_missing:默认是 error,配置的模型不可用时直接报错;也可设为 fallback
  • common.chat.reasoning.enabled:是否启用 reasoning 配置。
  • common.providers.<id>.apiKey:供应商 API key。
  • common.providers.<id>.apiBase:自定义 API base,可为空。
  • common.providers.<id>.enabled:是否启用该供应商。
  • common.providers.<id>.models:该供应商下可选模型。模型可以是字符串,也可以是带 idmodefeaturesreasoning_effortverbosity 等字段的对象。

工具列表

工具通过 common.mcp_servers 配置。默认内置工具包括:

Server 模型可见工具 说明
builtin-read Read 读取文件
builtin-write Write 写入文件
builtin-edit Edit 精确替换编辑文件
builtin-glob Glob 按文件名模式查找
builtin-grep Grep 按文本内容搜索
builtin-bash Bash 执行 shell 命令
builtin-lsp LSP LSP 查询,默认过滤内部诊断/hover 工具
builtin-skills SKILL 调用 skills
builtin-agent Agent 启动子 agent
builtin-todo TodoWrite, TodoRead IM / ACP todo 工具
builtin-tasks TaskCreate, TaskGet, TaskUpdate, TaskList TUI task 工具
builtin-task-stop TaskStop 停止长任务
builtin-task-output TaskOutput 查看任务输出
builtin-question AskUserQuestion 向用户提问
builtin-web-fetch WebFetch 抓取网页并分析,需要 common.services.jina.api_key
builtin-web-search WebSearch 搜索网页,需要 common.services.jina.api_key
builtin-plan EnterPlanMode, ExitPlanMode 进入/退出计划模式
builtin-worktree EnterWorktree, ExitWorktree 工作树切换
builtin-send-message SendMessage 团队/同伴消息
builtin-team TeamCreate, TeamDelete, SendMessage 团队协作工具
builtin-cron CronCreate, CronDelete, CronList 定时任务
builtin-tool-search ToolSearch 延迟工具发现
builtin-memory Recall, OperateMemory IM 记忆工具

默认模板还包含一个外部 MCP 示例:

{
  "common": {
    "mcp_servers": {
      "context7": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "@upstash/context7-mcp"],
        "enabled": false,
        "lazy": true
      }
    }
  }
}

enabled 控制 server 是否加载;lazy 控制工具是否延迟加载。支持 defer_loading 的模型会先拿到 ToolSearch 和必要工具,再按需激活其它 lazy 工具。

常用配置项

{
  "common": {
    "permission": {
      "*": "allow",
      "Read": "ask",
      "Glob": "ask",
      "Grep": "ask",
      "Bash": "ask",
      "Write": "ask",
      "Edit": "ask"
    },
    "services": {
      "jina": {
        "api_key": ""
      }
    },
    "tool_model": {
      "model": null
    }
  },
  "code": {
    "paths": {
      "workdir": null
    },
    "agent": {
      "default_agent": "build"
    },
    "runtime": {
      "snapshot": true,
      "prompt_suggestions": true,
      "mouse_tracking": true
    },
    "acp": {
      "permission_mode": "ask",
      "reasoning_visibility": "show",
      "usage_updates": "on"
    }
  },
  "we0": {
    "memory": {
      "enabled": false,
      "auto_retrieve": true
    },
    "heartbeat": {
      "enabled": false,
      "interval_minutes": 30
    }
  }
}

说明:

  • common.permission 控制工具权限,支持 askallowdeny
  • common.services.jina.api_key 用于 WebFetch / WebSearch
  • code.paths.workdir 为空时默认使用当前项目;项目级配置可覆盖。
  • code.acp.permission_mode 可选 askallow_oncebypassreject
  • we0.memory.enabled 控制 IM 语义记忆。
  • we0.heartbeat.enabled 控制 companion heartbeat。

About

We0Code is a code agent TUI.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors