7. 启动 omicOS:cli 模式(终端)

omicos cli 把守护进程和聊天界面合到一起,在终端里开一个全屏聊天窗口,完全不需要浏览器。这是 SSH / HPC 环境的首选。

7.1 一条命令搞定

cd ~/my-analysis
omicos cli

预期输出:终端切换到全屏聊天界面(不再有普通滚动输出)。顶部显示当前进程和会话,底部是输入框。按 Ctrl+C 退出后,终端恢复原样。

它做三件事:起本机守护进程 → 注册成带 (cli) 后缀的进程 → 进入聊天界面。omicos cli 等价于 omicos cli chat,chat 是默认子命令。

7.2 聊天界面键位

按键 作用
Enter 发送消息(输入法选字时按 Enter 选字不会误触发送)
Shift + Enter / Alt + Enter / Ctrl + J 换行(写多行消息)
↑ / ↓ 输入框为空时滚动历史;有内容时翻阅之前发过的消息
PageUp / PageDown、Ctrl+U / Ctrl+D 滚动对话记录
Esc 关闭当前弹出的面板(斜杠命令列表、@ 提及选择器等)
Ctrl + C 有任务在跑时=中断当前这一轮;空闲时=退出

7.3 已经有 serve 在跑时会自动接管

工作区里已有一个 omicos serve 在运行时,omicos cli 不报错,也不另起守护进程,而是直接连上那一个,再开聊天界面。此时终端里的会话历史和网页端是同一份,因为用的是同一个进程。

这个行为解决的是什么问题

如果每次 omicos cli 都新起一个守护进程,你会得到两个互不相识的 kernel:网页端载入的 adata 在终端里不存在,两边各写各的会话历史,最后还要抢同一个端口。

自动接管让"同一个工作区只有一个大脑"成为默认。判断依据是工作区目录,不是端口——所以在另一个目录敲 omicos cli,仍然会起一个新的。

只有工作区里没有守护进程时,omicos cli 才自己起一个。那时它才是 7.4 说的独立 (cli) 身份。

想连到不在当前工作区、但你知道地址的 omicos,用 --attach:

omicos cli --attach http://127.0.0.1:5055

预期输出:直接进入聊天界面。若那个 omicos 的工作区和你当前目录不一致,进界面前会先在终端提示一行:

[omicos] attaching explicitly to Core workspace /Users/you/other-project; CLI started in /Users/you/my-analysis

7.4 cli 自起守护进程时与 serve 的差异

omicos cli 自己起守护进程时,参数和 omicos serve 基本一致,但默认值不同:

维度 omicos serve omicos cli
默认 --data-dir .omicos .omicos/cli
默认 --upstream-base-url 无 https://auth.omicos.cn(两者都可用 OMICOS_UPSTREAM_BASE_URL 覆盖)
进程标识 local-<workspace_id> local-<workspace_id>-cli
进程显示名 原名 原名 + (cli)
日志 --debug true / --log-filter / RUST_LOG 界面占用屏幕,只能用 RUST_LOG

因为 data-dir 不同,cli 自起的守护进程与 serve 的会话历史互相隔离。 网页端进程选择器里,带 (cli) 后缀和不带后缀的是两个独立命名空间。cli 里聊的内容在网页端「看不到历史」,多半是选错了进程。

7.5 cli 专属参数

参数 作用
--attach <URL> 连到一个已经在跑的 omicos(见 7.3),而不是自己起一个。
--process <id> 断言本机这个 omicos 的进程 id 必须是它,对不上就报错退出。用于脚本里防止连错实例。
--session <id> 恢复指定会话(默认恢复最近活跃的那个)。
--new 强制开一个新会话。

--process 常被误解成「连到远端的某个云端进程」,它不是。它只校验本机 omicos 的身份,对不上直接报错:

omicos cli --process local-deadbeef

预期输出:

Error: --process local-deadbeef does not identify the running local Core (local-9f2c4d7a1b8e4f5c8d3a6b0e2f7c1a94); use the web app for another process or omit --process

想操作另一台机器上的 omicOS,走网页端,或者按远程部署配方做端口转发后在那台机器上开 omicos cli。

7.6 登录 / 登出

cli 模式下的设备码登录和登出:

omicos cli login
omicos cli logout

输出见第 5 章。

7.7 调日志

聊天界面占满屏幕时,--debug / --log-filter 用不了。要看日志只能用环境变量:

RUST_LOG=omicos_core=debug omicos cli

预期输出:聊天界面照常打开,调试日志写到 stderr。想留存的话把 stderr 重定向到文件:

RUST_LOG=omicos_core=debug omicos cli 2> omicos-cli.log

预期输出:聊天界面照常打开,日志进 omicos-cli.log;退出后 tail omicos-cli.log 可看。

下一步

results matching ""

    No results matching ""