LinkChat
CLI 文档
LINKCHAT / TERMINAL CLIENT

在终端加入 LinkChatCLI Client

本地渲染,即时聊天。
保留熟悉的终端界面,通过 HTTPS 直接连接服务。

INSTALLnpm install -g linkchat-cli

本地运行的 TypeScript 终端聊天客户端,直接通过 HTTPS / WebSocket 连接 LinkChat。采用统一无框消息布局、分钟时间、底部输入区及独立频道、成员和历史页面。

安装与启动

需要 Node.js 24(含 npm)。支持 macOS、Linux 和 Windows 的交互式终端。

安装已发布的客户端:

npm install -g linkchat-cli --registry=https://registry.npmjs.org/
linkchat

当前正式版 0.6.2下载安装包

npm install -g https://docs.linkchat.online/downloads/linkchat-cli-0.6.2.tgz
linkchat

安装仍需联网获取依赖,普通用户无需注册或登录 npm。

尚未安装 Node.js 的用户可从 Node.js 官网 安装 24.x,之后重新打开终端。

首次进入选择登录或注册,成功后在本机保存会话令牌,不保存密码。再次启动自动恢复上次账号、服务器和频道。正常退出保留登录,/logout 注销并清除该账号缓存。令牌过期后重新登录;网络暂时不可用时可以只读浏览缓存。注册是否需要邀请码由服务器决定。

更新

linkchat --version
linkchat update --check
linkchat update

启动后异步查询 npm 最新稳定版本,超时 3 秒,检查结果缓存 24 小时,不影响登录。检查只发送公开包名,不发送账号、密码或聊天内容。使用 --no-update-check 或环境变量 LINKCHAT_NO_UPDATE_CHECK=1 禁用自动检查。

linkchat update 仅升级当前 npm 全局安装,安装已验证的精确版本,不自动提权。权限错误请修复自己的 npm 全局目录权限后重试。npx 用户重新运行 npx linkchat-cli@latest;项目内安装在项目目录执行 npm install linkchat-cli@latest。更新命令会显示新版的 Node.js 要求。

卸载

npm uninstall -g linkchat-cli

使用 linkchat cache info 查看聊天缓存位置、数据量和同步时间;linkchat cache clear 清理聊天缓存,保留登录信息。删除 update.json 可单独重置更新检查记录。

本地数据与自动同步

  • macOS:令牌和配置位于 ~/Library/Application Support/linkchat-cli/,聊天缓存和更新记录位于 ~/Library/Caches/linkchat-cli/
  • Windows:令牌和配置位于 %LOCALAPPDATA%\linkchat-cli\,缓存位于其中的 cache\
  • Linux:配置位于 ${XDG_CONFIG_HOME:-~/.config}/linkchat-cli/,缓存位于 ${XDG_CACHE_HOME:-~/.cache}/linkchat-cli/
  • auth.json 保存明文会话令牌,config.json 保存上次服务器与频道;令牌不进入聊天数据库、日志或发布包。
  • SQLite 按消息 ID 保存正文和话题摘要,历史、回复选择、话题阅读共用消息;已经加载的连续区间可跨重启重新分页,不受原请求游标或 256 页数量限制。
  • 每页显示 10 条。打开频道、话题列表或某个话题后,后台补齐最近 50 条消息、50 个话题摘要或 50 条回复;翻页时预读同方向相邻一页。仅在登录验证通过且联网时预读,不自动下载所有话题正文、全部历史或附件原文件,不保存输入草稿。
  • 有完整缓存时先显示再后台核对;缺失或被淘汰的区间需要联网补齐,离线不会误报为“没有更多消息”。后台刷新保留选中项及阅读位置。过期游标会提示返回后重新打开。
  • 缓存按服务器和账号隔离,30 天未访问淘汰,所有账号合计共享 50 MiB 逻辑数据预算(含实体及分页索引)。SQLite 数据库文件及 WAL 有额外开销;cache infobytes 是预算占用,databaseByteswalBytes 是实际文件大小,messagestopics 是实体数量。
  • 升级首次访问账号时自动迁移有效的旧分页缓存,保留登录信息。升级程序不修改服务器消息;服务端删除或权限变化由后续同步校正。
  • SSH 入口使用相同的分页逻辑和预读策略,但缓存仅保留在各自会话内存,断开后不持久化。
  • 列表和话题自动同步,保持搜索和选中目标。Ctrl+R 强制重新获取;离线不能发送或排队重发。服务端明确拒绝身份或频道权限时,清理相应缓存。
  • 如果离线执行 /logout,本地凭证仍会删除,但服务端会话只能等待过期或在联网时另行注销。
  • 会话凭证文件与缓存均位于用户目录,升级或重新安装 npm 包不会覆盖它们。

排错

运行 linkchat --help 查看参数。聊天必须在交互式终端运行;网络断开会自动重连,发送状态不确定的消息不会自动重发。客户端要求校验 TLS 证书,不支持 NODE_TLS_REJECT_UNAUTHORIZED=0

包中只有本地客户端及运行依赖;SSH 服务端独立保留。安装客户端不会启动 SSH 服务。

已知问题

多行输入首行挤压(0.6.2 已修复):已发布的 npm 0.6.1 版本中,输入框左侧的 占用了首行空间,后续行可能与首行文字不对齐。此问题仅影响显示,不会把提示符或排版缩进加入实际消息正文,也不会改变用户输入的空格和换行。

本机客户端已修复,npm 安装包尚未包含此修复。

更新方向

设计原则:保持轻量化,优先完善可靠性和现有交互。新功能应减少操作,不增加默认界面的复杂度。以下是功能取舍记录,不代表已实现或发布时间承诺。

功能 取舍 范围
发送状态、失败提示 优先完善 区分发送中、已送达与失败;结果不明时不自动重发
构建/补丁标识 优先完善 --version 显示本机构建信息,不增加底栏内容
草稿恢复 做简版 按频道自动保存和清理,减少意外退出造成的内容丢失
未读定位 分阶段 先保存本机已读位置,暂不追求跨设备同步
消息搜索 /search 关键词搜索已上线 输入 /search 进入菜单后输入关键词搜索;成员、日期筛选留待后续
提及通知、话题订阅 提及与回复提醒已上线 /inbox 统一查看,底栏显示未读数;话题订阅后续接入同一机制
编辑与撤回 延后 需要同时处理权限、缓存、引用和后端一致性
消息操作菜单 克制扩展 复用现有选择器,只补必要操作
连接诊断 按需提供 考虑 --diagnose,不增加常驻界面或后台任务
多账号、附件预览、快捷键自定义 暂缓 有明确需求后再考虑配置和适配成本
Agent 执行卡片 暂不纳入核心 先用普通消息和话题承载,避免扩展成任务管理系统

近期优先检查菜单进入与退出的一致性、重复请求合并、过时响应保护和本机补丁标识。菜单收起后的终端滚动限制保持现状,不采用强制贴底或清除滚动历史的方式修补。