Skip to content

多空间、远程连接与 SSH ​

Kiki 跑在哪儿由你决定,它能触达的东西也由你决定。这一页讲四个触达面:空间,也就是你打开的那些个 Kiki;远端连接,把一个 Kiki 按方向指向另一个,两边各自审批;thread bridge,让一个 Kiki 往另一个发消息,但不给它浏览权;还有 Web 访问,把这个 Kiki 开到浏览器里。最后是会话内 SSH——唯一一个只是会话自己资源的触达面。

这里没有任何一条要经过别人的服务器中转。会话存在服务端所在机器的 Kiki home 下;远端连接和网页链接都是你自己开的门,带着一份你能撤销的凭据。

多空间与工作模式 ​

空间就是你在用的某一个 Kiki。主空间管着这张列表,各个空间才是你真正打开的。每一个都可以有自己的快捷方式、自己的窗口行为和自己的凭据范围,所以工作的 Kiki 和个人的 Kiki 可以并排放着,而不必共享能登录的东西。

凭据是每个子空间自己做的决定。与主空间共享表示它复用主空间的凭据;本空间独立表示它用自己的,在一个子空间登录个人账号不会影响另一个。空间设置详情还会逐项标出这个空间是跟随还是固定,让你看得出某个值是继承来的还是钉死的。SSH 配置可以在空间之间复制,而不用手动搬。

在设置 → 空间里,于子空间自己的卡片上改凭据范围。这一页其余设置见设置页导览,这些凭据能触达什么见模型连接、提示词与权限。

工作模式是空间里的工作入口,不是另一层数据隔离。模式菜单默认提供 Kiki 和 Work;显式设置 KIKI_EXPERIMENTAL_WORK_PRESETS=false 或 [experimental] work_presets = false 仍可关闭。每个空间分别保存自己的 Work 设置、名称和首选任务。Work 提供 Office、写作、提取与表格检查入口;启用面板显示实际已安装的包,并在安装缺失包或 OfficeCLI 前征求同意。部分安装失败时保留已成功的包,可以重试其余部分。切换模式不改变已有会话的模型、profile 或权限;移除模式也保留文档、会话和共享插件。

桌面上的在新窗口打开会在同一空间里打开另一个模式。模式和浏览位置属于各自窗口,空间的服务则共用;关闭一个窗口不会停止后台工作。显式重启或升级会先说明对该空间其他窗口和未完成工作的影响,确认后才取消工作并正常排空。不是由桌面版管理的守护进程,仍需通过它自己的管理入口停止。

空间列表:主空间旁边两个已登记的空间,一个共享账号,一个独立。

单个空间自己的设置面板:每一行都标出它是跟随主空间还是在这里单独设置,每行带一个「更改」。

选择空间的凭据范围:沿用主空间的账号和密钥,还是让这个空间自己单独一份。

跨机远端连接 ​

远端连接是从这个 Kiki 的 home 指向另一台机器上另一个 Kiki home 的单向链路。它不是共用登录:目标有它自己的身份,而且必须先批准来源,才有东西能流过去。

接收默认关闭。在目标上打开这个开关本身不批准任何人——你还要生成一个邀请,交给来源,来源再据此注册一条连接。每条连接是列表里的一行,带着自己的状态、最近一次的测量值,以及只影响这一条链路的动作:启用、停用、重试、移除。inbound revoke <grantId> 停掉某一个来源的读取和流,不影响其他已批准的来源;inbound disable 关闭全部对等访问,但保留允许列表。移除一条连接会释放本地凭据和它自己建立的隧道,但不会停掉目标守护进程,也不会撤销它已经启动的活。目标离线时保留的是最近一次的测量值和它的时间戳,而不是报一个编出来的零。

命令这一侧先规划后执行。kiki connections ... ssh plan 只做查询;ssh execute PLAN_ID 才会挂接;只有显式的 --ensure 才可能启动远端守护进程,而且它会一直跑到你停掉为止。两者都不会顺带打开入站访问。GUI 挂接已运行的目标时也会重新查询,但不会启动它,也不多问一次确认。两端需要兼容的连接协议,以及能用的 SSH 认证和 known-host 校验;Kiki 的版本字符串不必完全相同。Kiki 不会替你往远端装东西。

如果目标暂时关闭入站访问,等所有者重新打开后,再尝试你的操作即可。某一个操作被拒绝,不会把整条连接判成未登录,Kiki 也不会自动重发被拒绝的写入。令牌失效或授权被撤销仍会拒绝访问;请先更新连接的凭据或授权,再尝试。

见 kiki connections。

远端连接列表:每个对端 Kiki 一行,各带自己的状态和最后一次读数的时间。

这个 Kiki 的身份串,以及决定哪些 Kiki 可以连进来的开关——默认关闭,每个被允许的都列出来并可撤销。

单向 Thread bridge ​

Thread bridge 是两个 home 之间传线程消息的单向通道。它比远端连接窄得多,这是有意的:目标 home 批准的正是确切的来源与目标范围、确切的操作——read、send、wait,以及你明确要求的 wake——和一个过期时间,桥只带这些,别的一概不带。没有 wake,发送就保持挂起,不会真的在对面启动一轮模型。

桥永远不授予 GUI 浏览权限,GUI 令牌和 SSH 登录也不授予桥权限。回执区分来源挂起、目标已接受、提示已送达和被拒绝——送达指的是提示到了,不是模型回话了。挂起的发送重试时保留原来的键和顺序,retry 检查的是持久队列,而不是新建一条消息。撤销桥不会删除任何会话。

见 kiki bridges。

浏览器 Web 访问 ​

Web 访问把这个 Kiki 开给另一台设备上的浏览器。拿到链接的人可以完整使用它,权限和你一样——这不是只读分享,临时入口临时的也只是它开着的时间。

在设置 → 空间 → Web 访问里打开,或者在命令行用 kiki web --temporary(开八小时然后自己关掉)、kiki web --persistent(一直开着到你关掉)。每次运行会打印一条一次性链接,把一个浏览器签进来;Kiki 把它兑换成浏览器自己持有的会话 cookie,服务端只留摘要,链接只显示一次——丢了就换一条新的,而不是去查。每台新设备都要新链接。kiki web --revoke [session-id] 登出一个或全部浏览器。关掉 Web 访问会撤销所有链接和所有浏览器会话,但不会停掉守护进程、桌面应用或 TUI,也不会取消已经启动的活。

明文局域网 HTTP(--insecure-no-tls)不加密:同一网络里的任何人能读到发出去的内容。在你信任的网络之外使用,请在前面放一个终止 TLS 的反向代理,并传入 --public-url <https://…>。

Web 访问和远端连接是两个不同的对象。远端 Kiki 是另一个 Kiki,有它自己的身份和一份由你逐个批准的来源授权;网页链接是对这一个的访问权,归这台机器的所有者。打开 Web 访问不会引入任何一个 Kiki。

见在浏览器里使用 Kiki。

已为这个 Kiki 开启 Web 访问,下面列着已经登录的浏览器。

会话内 SSH ​

会话可以持有 SSH 主机。用输入框的 + 菜单加入,输入框上方的SSH控件会列出已加入的主机,点 X 移出,也可以从这一行重新打开同一个列表增减。已加入的主机是会话的资源,不会随每条消息重复携带——所以时间线不会堆满主机气泡,移除主机也只影响这个会话,不动你机器上的东西。

这个控件只在会话已经持有主机时出现。一个还没加入任何主机的会话,输入框上方不会有 SSH 这一行,+ 菜单仍然是加入第一台主机的入口。主机还在,控件就一直留着,轮次之间也在——因为「已加入」是会话自己的状态,跟此刻有没有请求在跑无关。

加入主机是把它放进会话上下文,并不会立即连接。新会话里,在**+** 菜单选中主机后,第一条消息发出前就会显示同一个SSH控件;你选的主机会在那条消息发出前加入创建好的会话。

Agent 也可以在工具调用里直接指定已配置的主机,不必先手动加入。主 Agent 和 subagent 都走同一连接批准流程;隐藏主机、拒绝请求、主机密钥校验和文件权限规则仍然生效。从上下文移出主机,不等于撤销已经批准的连接。

文件路径属于选中的主机。在 Windows SSH 主机上,使用 E:/work/result.log 这样的绝对路径;Read、Write 和 Edit 通过 SFTP(SSH 文件传输)操作,不依赖是否安装 Git Bash。Bash 则需要在那台远端 Windows 主机上安装 Git Bash。

输入框上方的 SSH 面板:列出已加入这个会话的主机,以及还可以添加的主机。

见界面导览。

下一步 ​