我用 AI 写代码,但终端管理反而成了累赘于是我做了 codux - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
349865361

我用 AI 写代码,但终端管理反而成了累赘于是我做了 codux

  •  
  •   349865361 9 天前 868 次点击

    AI CLI 工具正在改变开发方式

    这两年,Claude Code 、Codex 、Gemini CLI 这类 AI CLI 工具越来越成熟。你在终端里描述需求,AI 自动读代码、写代码、跑测试、提交开发流程正在从"人写代码"变成"人指挥、AI 干活"。

    但随之而来的问题是:终端变成了主战场,而现有工具都没为这个场景做好准备。

    项目一多就乱、布局每次都要重摆、AI 跑完了不知道、Token 烧了多少完全不可见……

    于是做了 codux一个专门管理"用 AI CLI 工具开发多个项目"这个工作流的原生 macOS 终端工作区。


    codux 是什么

    codux 是一个专为 AI CLI 工具时代设计的原生 macOS 终端工作区。用 SwiftUI + AppKit 从零构建,没有 Electron ,没有 WebKit ,启动即用,空闲时内存占用 80150 MB 。

    GitHubhttps://github.com/duxweb/codux
    官网dmux.dux.cn


    核心功能

    多项目工作区,随时切换

    左侧项目侧栏,每个项目独立管理自己的终端会话、分屏布局和 Git 状态。切换项目一次点击,布局自动恢复。AI 任务在跑时,侧栏图标实时动态提示,哪个项目在工作一眼就看出来。

    灵活分屏,布局持久化

    水平分屏、底部标签页、拖拽调整比例,所有布局按项目持久化存储。下次打开还是原来的样子,不需要每次重新摆。

    内置 Git 面板

    右侧呼出 Git 面板:分支切换、暂存文件、查看 diff 、写提交说明、一键推送拉取。提交说明想不出来? AI 帮你生成。日常 Git 操作不需要再开 Fork 或 Tower 。

    AI 用量实时统计

    codux 实时监听终端里运行的 AI 工具,统计每个会话的 Token 消耗、使用的模型、调用的工具,以图表形式展示今日用量、近期热力图和工具排行。

    目前支持:Claude CodeCodex ( OpenAI )Gemini CLI,更多工具持续接入。

    任务完成自动通知

    AI 任务跑起来就可以去做别的事。codux 持续监听运行状态,任务完成或出错时系统通知立刻推送,不需要守着终端盯结果。

    每日等级系统

    根据当天 AI Token 使用量实时升段:

    黑铁 → 青铜 → 白银 → 黄金 → 白金 → 钻石 → 大师 → 宗师

    用量越高,等级越高。不只是个数字,更是今天工作强度的直观感受。

    颜值不将就

    玻璃模糊背景、精心调校的深浅色模式、多套终端主题和应用配色方案可选。每天要盯几个小时的工具,好看也是生产力。


    和同类工具的对比

    iTerm2 / Warp / Alacritty 等终端工具

    这类工具终端体验本身做得很好,渲染性能、字体渲染、快捷键定制都是业界标杆,iTerm2 用了十几年依然是 macOS 上最成熟的终端之一。

    但它们的定位是通用终端模拟器,没有项目管理的概念所有 session 是平的,需要用户自己用 tmux 或者手动组织。Git 操作、AI 任务监听、Token 统计这些都不在它们的设计范围内。

    Warp 虽然引入了 AI 功能,但那是 Warp 自己的 AI 助手,和 Claude Code / Codex / Gemini CLI 这类独立 CLI 工具是两个生态,无法监听它们的运行状态和用量。

    适合谁:不需要多项目管理、只是想要一个好用的终端的用户,iTerm2 / Warp 仍然是很好的选择。codux 更适合同时跑多个 AI 项目的场景。


    Codex Desktop / OpenCode 等 AI 工具桌面端

    Codex Desktop ( OpenAI 官方桌面客户端)和 OpenCode 这类工具,目标是把 AI CLI 工具的交互做得更直观对话界面、任务管理、多会话切换都比纯终端友好不少,这方面它们做得相当完整。

    和 codux 的差距主要体现在两点:

    第一,Electron 的内存代价。 这类桌面端大多基于 Electron 构建,打开一个空窗口就要 300500 MB 内存起步。AI 任务本身已经很耗资源,再压一层 Chromium ,机器稍微跑满就开始卡。

    第二,会话记录一长就卡顿。 AI 对话内容通常包含大量代码块、长文本、diff 输出,Electron 渲染层处理这些并不擅长。跑了几十轮对话之后,滚动卡、渲染慢,这是 Web 渲染技术栈的结构性问题,很难靠优化彻底解决。

    codux 使用原生 SwiftTerm 渲染终端内容,不走 Web 层,几千行输出滚起来和空终端一样顺滑,内存占用也稳定在 80150 MB 。

    适合谁:如果你主要关注的是 AI 对话交互体验,Codex Desktop 类工具更聚焦。如果你更在意性能、长会话流畅度,以及跨项目的终端布局管理,codux 是更好的选择。


    VSCode (内置终端)

    VSCode 是优秀的代码编辑器,内置终端也基本够用,配合 Copilot 或 Continue 插件,AI 辅助编码的体验相当完整。

    但 VSCode 的终端是编辑器的附属功能,设计上是"打开一个项目、用一个终端"。多项目场景需要开多个 VSCode 窗,每个窗口的终端互相独立,没有统一的项目切换视图,布局不持久化,AI CLI 工具的运行状态和 Token 用量在 VSCode 里完全不可见。

    此外 VSCode 基于 Electron ,空闲状态下内存占用也在 300 MB 以上,多开几个窗口压力不小。

    适合谁:以代码编辑为主、偶尔用终端跑 AI 任务的用户,VSCode 完全够用。如果终端和 AI 任务管理是你的主要工作,codux 会更合适,两者也可以并行使用。


    一张表说清楚

    codux iTerm2 Warp Codex Desktop / OpenCode VSCode
    定位 AI CLI 终端工作区 通用终端 智能终端 AI 工具客户端 代码编辑器
    多项目独立管理
    分屏布局持久化 有限
    AI CLI 工具监听
    Token 用量统计
    任务完成通知
    内置 Git 面板 插件
    原生渲染(无 Electron )
    长会话渲染流畅 一般 一般
    代码编辑 / 补全 部分
    空闲内存占用 ~100 MB ~80 MB ~200 MB ~400 MB+ ~300 MB

    技术实现

    组件 技术
    UI 框架 SwiftUI + AppKit ,原生渲染,无任何 Web 层
    终端引擎 SwiftTerm ,完整支持 ANSI 、鼠标、文字选择
    Git 集成 直接调用本地 git CLI ,无额外依赖
    数据存储 JSON 本地持久化,无账号,无云端上传

    下载试试

    首次打开如果提示"无法验证开发者",在终端执行:

    sudo xattr -rd com.apple.quarantine /Applications/codux.app 

    或前往「系统设置 → 隐私与安全性」点击「仍要打开」。


    如果你也在用 AI CLI 工具做开发,欢迎试用,有问题直接在 GitHub 提 Issue 。

    asuraa
        1
    asuraa  
       9 天前
    一股 ai 味的文档,你这个文档肯定是用 codex 生成的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2731 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 06:08 PVG 14:08 LAX 23:08 JFK 02:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86