当前位置: 首页 > news >正文

【PhoneCoder】随时随地——掏出手机就能完成开发部署

dockerBot · phoneCoder · clientCoder — 架构与使用指南(中文版)

本文介绍了一个具备全自动开发和一键部署能力的 AI 智能体系统,其三个子项目:NestJS 后端dockerBot)、Expo / React Native 客户端phoneCoder)、Vite / React 网页 IDEclientCoder)。
只需提供 Git 仓库与访问令牌,即可由系统为你完成全栈开发与部署,并且支持移动端编程,实现随时随地——掏出手机就能完成开发。

英文版原文:dockerBot-phoneCoder-clientCoder-stack.md

一键启动并体验项目:https://github.com/jsCanvas/webCursor

上游源码仓库(GitHub)

项目仓库地址
dockerBotgithub.com/jsCanvas/dockerBot
phoneCodergithub.com/jsCanvas/phoneCoder
clientCodergithub.com/jsCanvas/clientCoder

1. 总体关系

子项目GitHub介绍主要职责
dockerBotjsCanvas/dockerBot具备全自动开发与一键部署能力的 AI 智能体系统。只需提供 Git 仓库与访问令牌,即可由系统为你完成全栈开发与部署。权威后端:工程与 Git、文件、加密模型配置、面向多轮会话的SSE聊天、沙箱容器内执行 Agent、MCP / Skills、通过宿主docker.sock编排 Docker 运行时、配合 Traefik 的预览域名等。
phoneCoderjsCanvas/phoneCoder随时随地——掏出手机就能完成开发。官方移动/多端UI(Expo):六个 Tab 与 dockerBot 路由一一对应;同时托管与 clientCoder 共享的 TypeScript 模块(api/hooks/chat/types/等)。
clientCoderjsCanvas/clientCoder支持一键全栈部署的网页智能 IDE。网页 IDE(类 VS Code 外壳):Monaco、文件树、输出/终端/端口等面板、侧栏聊天并支持@//提及;通过路径别名@phoneCoder/*复用 phoneCoder 逻辑。

2. dockerBot(后端)

2.1 是什么

dockerBot 是NestJS应用,通过 Docker Compose 与以下组件一同部署:

数据持久化采用 SQLite,存放在配置的数据目录下(phoneCoder_DATA_DIR,默认./data)。模型凭证等敏感字段使用phoneCoder_ENCRYPTION_KEY(64 位十六进制,即 32 字节)配合AES-256-GCM加密落盘。

2.2 前置条件

2.3 初次配置与启动

dockerBot/目录下:

cp.env.example .env# 若 phoneCoder_ENCRYPTION_KEY 仍为占位符,可先交给 start.sh 自动生成,否则请手动填入 32 字节十六进制。./scripts/start.sh# 前台:构建镜像并附着到 Compose 日志# ./scripts/start.sh -d # 后台 / detached./scripts/start.sh down# 停止并移除本仓库 Compose 启动的容器

API 一览、cURL 示例、安全说明及 npm 脚本(如npm run start:dev、测试、lint),详见dockerBot/design.md

2.4 客户端必填配置项

各客户端仅需配置一项以/api结尾API Base URL,例如:


3. phoneCoder(Expo 多端客户端)

3.1 是什么

phoneCoder 为Expo(React Native)应用,目标平台包括iOS、Android 与 Webnpm run web)。它仍是共享 TypeScript 模块的源头:clientCoder 所依赖的PhoneBotApiClient、SSE 流式钩子useAgentSession、聊天负载与提及、SettingsStorage形状、DTO 类型等均定义于此。

3.2 安装与运行

cdphoneCodernpminstallnpmrun web# 在笔记本浏览器中最快验证npmstart# 打开 Expo CLI,可选真机 / 模拟器

3.3 指向后端地址

设置 → dockerBot connection

配置以 JSON 写入 AsyncStorage,键名phoneCoder.client.settings(与 Web 端clientCoder逻辑等价,参见 §4)。

3.4 自检

npmrun typechecknpmtest

Tab 与接口对应关系见phoneCoder/design.md

3.5 phoneCoder 界面截图

设置项目聊天文件
预览Docker 运行时Git

4. clientCoder(网页 IDE)

4.1 是什么

clientCoder 是一套Vite + React 18的单页应用,交互布局模仿 IDE:

不复制一层网络/SDK:tsconfigvite.config.ts@phoneCoder/*解析到../phoneCoder/src/*;并为构建提供@react-native-async-storage/async-storage的极简shim

截图 — clientCoder 网页 IDE

示意:左侧工程树与运行时入口、居中代码编辑、底部端口及预览链路、右侧由 SSE 驱动的助手及docker-runtime/fullstack-scaffold等上下文技能。

4.2 安装与运行

cdclientCodernpminstallnpmrun dev# 默认 http://localhost:5173(见 vite 配置)npmrun buildnpmrun preview

4.3 工作台设置(交互)

应用内提供Workspace settings(工作台设置)对话框:

浏览器侧持久化经由WebPersistence写入localStorage,键名同样为phoneCoder.client.settings(结构上与 AsyncStorage 方案对齐)。

4.4 Vite 代理(推荐本地联动)

clientCoder/vite.config.ts proxy: { '/api' → http://127.0.0.1:8080 }

开发时可将连接地址设为http://127.0.0.1:5173/api:浏览器只请求 Vite 开发服务器,由 Vite 将/api/*转发到dockerBot 的8080端口。部分沙箱或对localhost解析有特殊限制的环境,优先考虑127.0.0.1

4.5 国际化

默认界面语言为英文,可选用简体中文(zh-CN);所选语言会持久保存(参见clientCoder/src/i18n/)。

4.6 共享模块心智图

phoneCoder/src/区域clientCoder 中典型用途
api/phoneCoderApi.tsHTTP 与 multipart
hooks/useAgentSession.tsSSE 聊天流
chat/负载拼装、@//补全来源
screens/screenActions.tsscreens/fileTree.ts工程切换、会话、文件树合并等
types/api.tsDTO 类型

5. 典型端到端流程

5.1 仅本机:后端 + 网页 IDE

  1. 启动 dockerBot(./scripts/start.sh./scripts/start.sh -d)。
  2. 在 clientCoder「连接」中填写http://127.0.0.1:8080/api,若走 Vite 代理则用http://127.0.0.1:5173/api
  3. 创建/选择工程→ 绑定模型配置→ 新建会话→ 在聊天里下达任务;资源管理器中文件列表由 dockerBot 文件接口驱动。

5.2 仅本机:后端 + 手机

  1. 启动 dockerBot,保证:8080可被局域网访问(监听0.0.0.0或配合端口映射)。
  2. phoneCoder:设置 → dockerBot API Base URLhttp://<局域网IP>:8080/api

5.3 停止各层进程

目标命令 / 操作
关掉承载 API + 沙箱 + Traefik 的 Compose 栈cd dockerBot && ./scripts/start.sh down
重启栈./scripts/start.sh restart
查日志(透传给docker compose./scripts/start.sh logs -f api(详见脚本头部说明)
退出 Expo / Vite在对应终端Ctrl+C

6.延伸阅读

主题位置
dockerBot 特性、cURL、npm 脚本dockerBot/design.md
phoneCoder Tab ↔ API、流式协议说明phoneCoder/design.md
内置技能(Docker runtime 约定等)dockerBot/src/skills/builtin/*.md

7.全栈项目开发部署示列

7.1 获取项目【Git Access Token】

进入github链接,点击 头像 --> settings --> Developer Settings --> Fine-grained personal access tokens.
创建 Access Token ,添加Contents读写(Read and write)权限【重点】

获取到Git Access Token后进入projects页面 创建项目。

7.2 多轮对话进行项目开发

prompt示列:

/skill prompt2repo-engineering-rules 根据技能规则,创建目录label-2026043014,在项目label-2026043014文件目录下按照规范完成开发,以下是我的prompt 帮我生成一个前后端分离的web项目。 生成卖花管理系系统, 有个类似于购物车的功能,类似还有某个页面最好有个信息表,比如选课信息表实现增删改查功能。 首页支持响应式布局,着重关注页面UI样式,注意页面不要出现样式异常,使用UI组件库的弹窗和提示显示,界面优美,具有设计感。 严格按照UI设计稿还原页面:Implement this design from Figma. @https://www.figma.com/design/XXXXXXX?node-id=418-56098&m=dev (如果有填写,没有可以去掉) 前端的技术栈是 vue3+vite+Element Plus,前端用axios发请求,遵循restfulAPI,docker映射端口和启动端口必须是3000。 后端使用java + Spring Boot,docker映射端口和启动端口必须是8000。 然后帮我生成数据库的代码或者你直接帮我操作数据库,数据库采用mysql,docker映射端口为3306。

提示词结构:

  1. 全栈开发技能 /skill prompt2repo-engineering-rules;
  2. 规定项目创建目录;
  3. 描述需求;
  4. UI规范,如果有figma设计稿,可以使用figma mcp直接导入设计稿;
  5. 前端技术栈要求,前端docker映射端口;
  6. 后端技术栈要求,后端docker映射端口;
  7. 数据库技术栈要求,数据库docker映射端口;

执行结果如下:

codingreadmefilespreview

7.3 查看文件并启动项目

进入Files页面,点击项目目录的 docker 图标启动项目;
启动后点击预览,可以查看项目页面;

7.4 AI自动化测试项目

/skill prompt2repo-final-checklist 按照checklist,测试全栈项目label-2026043014

提示词结构:

  1. 全栈测试技能 /skill prompt2repo-final-checklist;
  2. 规定测试项目目录;

7.5 进入git页面提交代码

http://www.jsqmd.com/news/752977/

相关文章:

  • Claude Code终极配置同步指南:三分钟实现跨设备开发环境一致性
  • AI模型聚合平台mergoo:统一接口、智能路由与多模态处理实践
  • 通过用量看板观测不同模型调用的token消耗与成本分布
  • 基于交错式思考的智能体开发框架Mini Agent:从原理到实践
  • X-TRACK开源GPS自行车码表终极指南:5步打造你的专属骑行数据可视化系统
  • Molmo2双流模型:视频与图像处理的创新架构解析
  • PaDT框架:视觉参考令牌如何提升多模态模型精准度
  • Lottie动画Tokenizer优化实战:性能提升47%的解决方案
  • 微软MCP:基于Git与Markdown的开源文档协作平台深度解析
  • OpenClaw安全审计实战:从零构建确定性安全基线
  • Masked Depth Modeling:智能修复RGB-D相机深度缺失的算法突破
  • DevEco Studio:上传文件到模拟器中
  • 码蹄杯练题纯享版
  • 3步搭建个人漫画图书馆:哔咔漫画下载器完整使用指南
  • m4s-converter技术解析:5秒实现B站缓存视频无损转换的终极方案
  • 保姆级教程:Win10家庭版/专业版开启网络发现,轻松找到隔壁同事的共享文件
  • 基于安卓平台的增强现实
  • 开源CRM系统技术解析:基于NestJS与React的现代化客户关系管理方案
  • 长视频理解优化:SlowFast与Molmo2实战技巧
  • 2025届学术党必备的降重复率助手解析与推荐
  • roop-unleashed:零训练AI人脸替换技术的架构解析与实践指南
  • TVA与CNN的历史性对决(9)
  • 打破消费壁垒,购在数网重构三网话费消费新生态 - 博客湾
  • GDSDecomp:深入解析Godot游戏逆向工程的核心技术与实践
  • 什么是类
  • 桂林参军摘镜必看!提前半年摘镜,备战2027上半年军检 - 博客湾
  • 终极Zotero SciPDF插件:5分钟快速配置,自动下载学术文献PDF的完整指南
  • 使用 Python 快速编写第一个调用 Taotoken 大模型的脚本
  • Rime小狼毫隐藏玩法:除了打汉字,还能这样优雅地输入汉语拼音
  • javaweb课程结束案例