project-router 是 Safa 推出的终端优先型项目管理与上下文切换控制中枢,采用 CLI 与 MCP 服务器双模式架构,旨在解决多项目并行开发中的环境切换与任务追踪痛点。
核心用法围绕 .project/ 本地目录展开,该目录作为项目上下文核心,包含 project.json 结构化清单、PROJECT.md 动态简报、targets.json 构建目标定义及历史记录。用户可通过 project detect 自动识别项目,project context 加载上下文,或使用 project target run <name> 执行标准化构建、测试、部署流程。项目管理(PM)模块提供基于 SQLite 的本地 canonical 存储,支持任务增删改查与状态流转(Inbox/Next/Doing/Blocked/Waiting/Done),并通过 project pm switch/focus 实现快速上下文切换,自动加载关联文档与代码索引。此外,系统提供 Trello 双向同步适配器,将本地任务状态映射至看板卡片,实现终端与可视化界面的无缝协作。
显著优点在于其本地优先(Local-first)架构:零外部 npm 依赖,仅使用 Node.js 内置模块,彻底规避供应链攻击风险;采用 plan/apply 安全模式进行项目变更,确保操作可审计、可回滚;上下文切换功能(switch/focus)能根据项目或任务 ID 精准加载相关文档、代码与产物,大幅提升多项目并行效率;Trello 集成采用幂等性设计(upsert by task_id),重复同步不会重复创建卡片;MCP 服务器支持使 AI Agent 可直接调用项目检测、上下文读取与目标执行能力。
潜在局限包括:上游来源为个人开发者(T3),长期维护稳定性需观察;命令执行依赖用户手动配置的 targets.json,缺乏二次确认机制,若配置不当存在命令注入风险;Trello 同步需额外配置 API 密钥与看板权限,初期设置成本较高;对于非技术用户,终端优先的交互模式存在学习曲线;大文件(>2MB)会被索引跳过,可能影响特定场景下的产物管理。
适合人群主要为多项目并发的软件开发者、追求终端工作流(Terminal-first)的工程师、需要标准化构建与部署流程的 DevOps 团队,以及希望将本地开发状态与 Trello 看板同步的项目管理者。
使用风险方面,虽然代码本身无动态执行与远程加载,但 project_target_run 会执行用户配置文件中的 shell 命令,若从不信任来源获取的项目中直接运行,可能执行恶意命令(如 rm -rf 伪装成构建命令)。建议在使用前审查 .project/targets.json 内容。此外,SQLite 数据库与 .project 目录的本地存储需定期备份,防止数据丢失。Trello 同步功能涉及网络请求,需确保 API 密钥妥善保管,避免泄露。