Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TRAE 隔离环境管理器

便捷管理 TRAE IDE 的隔离环境,支持插件版本隔离和用户配置自动同步。

功能特性

  • 便捷启动:命令行或双击 .command 文件启动隔离环境
  • HOME 隔离:通过临时 HOME 目录实现完整环境隔离
  • 配置同步:用户设置通过软链接自动保持一致
  • 插件隔离:支持部分插件独立(不同版本),部分插件共享
  • 自动检测:启动时自动检测并登记版本差异的插件
  • 智能同步:同步时保护已独立的插件版本
  • SQLite 状态:环境与插件状态用 SQLite 管理,支持并发读写
  • 平滑迁移:提供 migrate 命令从旧 JSON 格式迁移

快速开始

安装

cd trae-env
./install.sh            # 创建 .venv 并以 editable 模式安装
source ~/.zshrc         # 使 PATH 生效

安装脚本会在项目内创建 .venv(规避系统 Python 的 PEP 668 限制),并把 ~/.local/bin/trae-env 软链接到 .venv/bin/trae-env

基本使用

trae-env create test-env     # 创建环境
trae-env start  test-env     # 启动环境
trae-env sync   test-env     # 同步插件
trae-env status test-env     # 查看状态
trae-env list                # 列出所有环境
trae-env remove test-env     # 删除环境

命令说明

命令 说明
create <name> [-f] 创建隔离环境;-f 强制覆盖
start <name> 启动环境(自动检测插件差异、创建隔离 HOME、启动 TRAE)
sync <name> 同步共享插件,跳过已独立插件
status <name> 显示环境路径/运行状态/时间/独立插件
reset <name> [-y] 重置环境(清空插件,恢复共享模式)
remove <name> [-y] 删除环境
list 列出所有环境
migrate 从旧 JSON 格式迁移到 SQLite(旧文件备份为 .bak
version / --help 版本 / 帮助

resetremove 默认需交互确认,加 -y 跳过。

工作原理

HOME 隔离机制

启动时构造临时 HOME(<env>/.temp-home/),软链接 .trae、shell 配置 (.zshrc 等)、.gitconfig.sshLibrary/Keychains 等,再用 open --env HOME=... 启动 TRAE,使其使用临时 HOME。每个环境的数据、扩展完全 独立,而用户设置通过 User/ 软链接共享。

插件的共享 vs 独立

  • 共享插件:软链接到主环境 ~/.trae/extensions,跟随主环境更新。
  • 独立插件:复制成实际目录副本,版本可与主环境不同(如老项目需要旧版插件)。
  • 自动检测:启动时检测环境内已是独立副本(非软链接)的插件并登记到数据库。

状态存储

环境与插件状态存储在 envs/trae_env.db(SQLite,启用 WAL 支持并发读写)。

项目目录定位

Config 按以下优先级定位项目根目录(从而找到 envs/):

  1. 环境变量 TRAE_ENV_PROJECT_DIR(双击 .command 启动器会自动导出)
  2. config.py 文件上两级(editable 安装时有效)

如以非 editable 方式安装或从其他目录调用,请显式设置 TRAE_ENV_PROJECT_DIR

双击启动

双击 start-isolated-env.command 启动默认环境。修改文件中的 DEFAULT_ENV 可切换默认环境;为不同环境复制多个启动器即可快速切换。

从旧版本迁移

若存在旧版数据(envs/config.json + 各环境 .env-manifest.json):

trae-env migrate

迁移会把环境列表与独立插件写入 SQLite,并把旧文件重命名为 .bak。 独立插件的版本信息会从实际副本的 package.json 自动补全。

项目结构

trae-env/
├── trae_env/                    # Python 包
│   ├── cli.py                   # argparse 入口与命令分发
│   ├── config.py                # 路径与全局配置
│   ├── database.py              # SQLite 数据层
│   ├── models.py                # 数据模型
│   ├── environment.py           # 环境增删改查
│   ├── isolation.py             # HOME 隔离与 TRAE 启动
│   ├── plugins.py               # 插件版本检测/独立化/同步
│   ├── manifest.py              # 旧 JSON 只读(迁移用)
│   ├── migrate.py               # 迁移逻辑
│   ├── ui.py                    # 彩色输出
│   └── utils.py                 # 通用工具
├── tests/                       # pytest 测试
├── setup.py / pyproject.toml    # 打包配置
├── start-isolated-env.command   # 双击启动器
├── install.sh                   # 安装脚本
└── envs/                        # 环境数据(git 忽略)
    └── trae_env.db              # SQLite 状态库

依赖项

  • Python 3.9+
  • macOS(使用 open 与 AppleScript)
  • TRAE IDE

许可证

MIT

About

TRAE 隔离环境管理器

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages