布约特
运行的代码——控制您的移动设备中的AI编码代理.
开源. 暗号任何地方.
安装
npm install -g @boujot/happy-coder
升级到0.14.99
0.14.99 机器在开始任何会话之前改变运行方式。 在升级前读一下这个.
- 一台没有隔离服务的机器(例如Mac),直到其开始会话
用户选择在机器上. 运行
boujot machine-settings run-sessions-here on在一个 终端和类型yes(命令读取终端的答案). 会话随后作为 那个用户 不是孤立的 关闭它停止了守护进程开始的会话. - 一个孤立的Linux机需要服务所需的文件/处理能力. 当前 释放需要0.4.2项保护;项目业务还需要审查过的网络 0.5.0提供的政策和现场证据。 CLI 0.17.0 将锁定的Rust源和安装器装入. npm 不安装根服务 。 排水聊天并停止守护进程和根服务 升级; 保存现有配置。 跟着 服务发放程序。 。 。 .
- Shell 和文件以及 SSH 默认是独立的开关
(单位:千美元)
boujot machine-settings shell-and-files|ssh on|off) (中文(简体) ). 当 shell 和文件关闭时 :- 远程启动可能只设定设置
src/daemon/remoteStartSettings.ts清单; 程序路径,PATH, (中文(简体) ),CODEX_HOME拒绝代理、证书或姓名不明; - 一个模型网关地址需要它自己的提供商在同一请求中的密钥; 此机器的 登录、配置和tmux从未用于网关启动;
${NAME}请求只用一个无秘密的小型集合填充;- 准备状态和模型列表回答“未检查”一个网关;
- a Claude 会话在代理 Plane 会话文件夹中只装入用户的设置和
服务器在启动时选中; 文件夹的
CLAUDE.md在系统提示中通过.
- 远程启动可能只设定设置
- 降级: 0.14.96及更年长者不读
run-sessions-here并给这机器的 登录到网关。 在降级前停止守护进程并保持它停止(同样在Linux上) 禁用其服务单位),直到您选择了更老的行为.
已知限制 : 运行中的 Claude 进程将它装入的东西保存到下次启动时; a switch
请求结束守护进程启动会话的转弯,而不是切换到本地模式
开关不会从已经作为机器用户运行的代码中分离出任何东西.
回复中的信息
代理 Plane 可以发送文本和图像到当前 Claude 或 Codex 响应, 包括 克劳德正在做背景工作 输入保持原转弯的模型, 权限和权限。 在本地投递之前下载和检查图像参考; 下载失败报告为未发送。 呼叫者承认的RPC身份防止 丢失的收据或重复审理的两次发出同一信息的请求.
Claude 使用带有 UUID 接收和结果关联的流式用户输入( 符合 克洛德代码2.1.318. 较早的结果无法在后期输入被排队时关闭进程 . 更新Boujot对新开始的运行时间的儿童生效;排出现有儿童之前 通过支持的无子停止/启动程序重启守护进程 .
Agent Plane的背景工作
克劳德的反应可以在背景工作之前完成。 Boujot继续让Plane探员转身 打开,同时这些工作及其完成回复正在运行,因此其输出和后期工具 权限到达同一对话框。 停止,转弯的最后期限仍然适用. 只有在消耗了尚未取得的成果并结束了克劳德进程之后,回合才能结束.
使用 Claude Code 的本地背景任务事件和完成 run_id 编号 : origin.runId
关联,与克洛德代码2.1.318核实. 本地分娩收据也确认
已吸收到当前响应的完成; 前景命令不添加背景
续行. 这些收件不会产生重复的所有者信件 。 报告未完成的旧版本
它运行的ID以更新消息失败, 而不是默默地放弃续作 .
重新连接 Agent Plane 重放记录输出; 它不会启动任务的另一个副本 .
使用量
克劳德( 默认)
boujot
这将:
- 启动 Claude 代码会话
- 显示要从移动设备连接的 QR 代码
- 允许在 Claude 代码和您的移动应用程序之间实时共享会话
双子座
boujot gemini
启动具有远程控制能力的双子座CLI会话.
第一次设置 : 登录此机上的双子座CLI本身(gemini),或设置 GEMINI_API_KEY。 。 。 .
Boujot 不在其服务器上存储提供者登录 .
架构依赖( D)
Boujot有五个核心部分:
happy-app(移动应用程序)- 地铁( 只在开发时)
happy-app(中文(简体) ) @boujot/happy-coder(单位:千美元)boujot命令)boujot daemon(CLI的背景模式)- Boujot 服务器 (
HAPPY_SERVER_URL(中文(简体) )
他们如何互相依赖:
- 服务器是账户、会话和机器的真理的共同来源.
boujot daemon是将您的计算机注册为在线机器并运行到本地代理进程的流程.boujot互动会话(Claude/Codex/Gemini)也通过服务器同步,这也是它们在app中出现的原因.- 应用程序对服务器说话,选择一台机器,并发送由守护进程在那个机器上处理的动作.
- Metro仅用于应用开发/热再装入;它不是生产运行时间的一部分,也不用于CLI/守护运行.
最小端到端要求( 应用控制您的机器 ):
- 可到达服务器
- 认证的CLI(
boujot auth login(中文(简体) ) - 守护进程正在运行 (M)
boujot daemon start(中文(简体) ) - 同一账户认证的应用程序
- 在应用程序中选择的机器
图标
主要命令
boujot- 启动 Claude 代码会话( 默认)boujot gemini- 启动双子座CLI会话boujot codex- 启动代码模式
工具命令
boujot auth- 管理认证boujot notify- 向设备发送推车通知boujot daemon- 管理背景服务boujot doctor- 系统诊断和故障排除
双子命令
boujot gemini # Start Gemini session
boujot gemini model set <model> # Set default model
boujot gemini model get # Show current model
boujot gemini project set <id> # Set Google Cloud Project ID (for Workspace accounts)
boujot gemini project get # Show current Google Cloud Project ID
可用的模型 : gemini-2.5-pro, (中文(简体) ), gemini-2.5-flash, (中文(简体) ), gemini-2.5-flash-lite
选项
克劳德选项
-m, --model <model>- 要使用的克洛德模型( 默认: sonnet)-p, --permission-mode <mode>- 权限模式:自动、默认或计划--claude-env KEY=VALUE- 设置克劳德代码的环境变量--claude-arg ARG- 向克洛德·克洛德提出更多论点
全球选项
-h, --help- 显示帮助-v, --version- 显示版本
环境变量
CLI 配置
HAPPY_SERVER_URL- 说吧 需求 用于每个命令,但--version。 服务器 URL; 没有默认值 .HAPPY_WEBAPP_URL- 说吧 需求 以浏览器登录( n)auth login,网页浏览器). 网络应用程序地址,https仅限(http对本地主机),没有默认值.HAPPY_HOME_DIR- 登录密钥、设置、守护进程状态和日志的文件夹(默认为 ~/.boujot)HAPPY_FLAVOR- 准备boujot对于从检出中运行时的 Boujot 命名( 安装从路径检测)HAPPY_DISABLE_CAFFEINATE- 禁用macOS睡眠预防(设置为:true, (中文(简体) ),1,或yes(中文(简体) )HAPPY_EXPERIMENTAL- 启用实验特性(设置为true, (中文(简体) ),1,或yes(中文(简体) )
双子座配置
GEMINI_MODEL- 推翻默认双子座模型GOOGLE_CLOUD_PROJECT- Google Cloud项目ID(工作空间账户需要)
双子认证
个人 Google 账户
在此机上登录双子座 CLI, 然后开始一个会话 :
gemini
boujot gemini
谷歌工作空间账户
Google工作空间(组织)账户需要Google Cloud项目:
- 在 谷歌云控台
- 启用双子座 API
- 设定工程编号 :
boujot gemini project set your-project-id
或使用环境变量:
GOOGLE_CLOUD_PROJECT=your-project-id boujot gemini
指南 : https://goo.gle/gemini-cli-auth-docs#workspace-gca 互联网档案馆的存檔,存档日期2013-12-21
捐款
有兴趣捐款吗? 见 捐款额 (c) 发展结构和准则.
Dev 测试
运行 yarn build,然后以两种方式之一测试你的构造:
- 安装的 CLI 旁边 :
npm run dev:daemon:start财务报告和审定财务报表npm run dev:variant <command>运行此 使用自己的数据文件夹、 登录和守护进程退出 。 安装boujot继续工作. - 替换已安装的CLI:
yarn dev:deploy复制此组件到已安装的@boujot/happy-coder。然后重新启动其守护进程 :boujot daemon stop && boujot daemon start。 。 。 .
详情见 捐款额运行整个堆栈(后端、守护进程、移动应用程序、, 大都会在 文献/编印。 。 。 .
Boujot叉:分支和发行
master 是一条开发线 已经标出 @boujot/happy-coder。工作发生
时间短 feat/* 或者说 fix/* 分支合并为 master。每个版本是一个版本
打开 master 带着标签, boujot-cli-v<version>。 。 。 . master 只向前走,所以永远不要推
强迫.
从最新消息中释放 master数字 :
npm run release:boujot -- 0.14.86
git push sn1994 master boujot-cli-v0.14.86
# Drone builds and tests the tag once, then publishes 0.14.86 under latest.
注释:
- 帮手只拒绝干净的东西
master。 。 。 . - CLI 01.7. 包同位素0.5.0源,货物锁文件,安装器和探测器. 无人机建造和测试 在 npm 发布前 Linux 源码并检查实际的软件包列表。 原地部署 单独的 无子安装步骤没有特权 npm 钩跑.
- 它运行
yarn rebrand作为检查 :master它不能改变任何事情。 如果是这样,释放 在实施或标记前停止. - 它会撞倒版本,运行构建(除非跳过),承诺和标记. 没有测试,从来没有 推动和从来没有出版.
- 无人机测试和出版(
.drone.yml) (中文(简体) ). 标记的构建 运行测试一次并发布 版本在latest并点出分数beta(没有β释放:所有者,2026年10月28日) 没有名称package.json'版本被拒绝. 释放 承诺自己的主构建跳过测试(这是测试前的承诺加一个版本).npm-latest在 npm 移动的版本上latest回到它(没有新建筑,没有新出版).npm-check除出版外,别无他法;npm-token仅询问 npm 属于谁 。 使用软件传送工具的代理商drone_build_promote时repo_write赠款允许. - NPM的标志是无人机的秘密
npm_publish_token,由软件发送证书保存 (证书)boujot:它显示过期,在14天前发出警告,并在其中替换指使符 立即跳伞和无人机 开发者机器上没有标记 . - 最多为0.14.71的释放被削减为:
boujot-cli-release/<version>树枝,那些留在原地.
采用上游变化
上游为 happy-coder,在 packages/happy-cli 文件夹
斜坡/快乐。旧的 slopus/happy-cli 存储器存档.
别把上游合并成这个叉子 相反:
- 检视您想要的上游变化.
- 应用到一个
feat/*分支从master通过手或与代理人. - 运行
yarn rebrand它将上游名称(包、命令、数据文件夹)转换为 Boujot; 承诺 它会改变什么. - 构建、测试和合并到
master和往常一样.
所需资源
- 节点.js >= 20.0.0
克劳德
- Claude CLI 已安装和登录(
claude命令可用于 PATH)
双子座
- 安装双子座CLI(
npm install -g @google/gemini-cli(中文(简体) ) - 双子座CLI通过你的Google账户登入这台机器,或者
GEMINI_API_KEY设定
许可证
麻省理工学院