@thezzisu/canvas

中文文档
0.1.4发布于 2026/11/02Apache-2.0ES Module构建来源已验证

用于本地和ssh连接的牧人窗口的浏览器工作区

中文使用文档
文档目录6 节
  1. 安装并运行
  2. 连接和画布
  3. 打开文件和链接
  4. 配置
  5. 开发
  6. 许可证

帆布

用于本地和ssh连接的牧人窗口的浏览器工作区。使用概述 或者在可缩放的画布上安排终端、笔记和文件。

安装并运行

Canvas在POSIX主机上需要Node.js 24+。Linux经过测试;本机Windows是 在此发布之外。连接的机器需要一个现有的herdr会话和 Python 3.8 +。SSH 连接还需要OpenSSH与unix套接字转发和验证主机 钥匙。生产npm依赖只对javascript有效;该套餐包括 前端和字体。

npm install --global @thezzisu/canvas
canvas serve

canvas 不带参数也会启动服务器。开放 http://127.0.0.1:3010. 在第一次启动时,Canvas创建一个名为 canvas 和一个随机密码。 终端打印帐号文件路径和检查命令;这个 密码是 initialPassword 字段。密码不是 在启动日志中打印。打开侧边栏中的用户名以更改帐户 登录后凭据;这将删除存储的初始密码。

对于无人值守的首次启动,设置 CANVAS_INIT_USERNAME 和 CANVAS_INIT_PASSWORD 通过您的流程主管的秘密配置。 它们仅适用于不存在帐户的情况。所提供的密码仅存储为 散列。 canvas version 打印已安装的版本; canvas --help 命令列表。

连接和画布

从侧边栏添加本地或SSH连接。本地路径指的是Canvas 服务器的机器。SSH接受别名, user@host,或者 ssh://user@host:port 和 使用密钥认证。选择现有的herdr会话;绝对API套接字 路径可以覆盖发现。Canvas直接连接到herdr套接字。

概述按连接和空间对窗口进行分组。代理状态过滤器,原生的 或者状态排序、小地图和可选的单窗口导航帮助 找一份积极的工作。自定义画布包含可拖动的终端引用、注释 和文件。布局,笔记内容,壁纸和全局字体设置同步 浏览器之间。

对一个本机窗口的引用共享其大小。最大化临时调整大小 那个窗口;其他视图暂停,直到它被恢复。取下卡片可以保留 本机窗口运行。关闭本机窗口将结束其进程。

在移动设备上,卡片在进入全屏之前保持只读状态。辅助 键盘提供修改器,导航,剪贴板和文件上传。桌面 卡片仍然具有直接的互动性。设置包括语言、内容字体、 保持清醒并显示裁剪偏好。

在一个连接的herdr窗格中运行这些命令,同时它接收Canvas选项卡 活动:

canvas open ./report.pdf
canvas open ./project
canvas open http://localhost:5173/

Canvas在 ~/.local/bin/canvas 只有当目的地 没有 canvas 命令。将该目录保存在PATH中。现有命令和文件 都没有动过。当helper找到它的CLI时,它会转发到这个npm包 后来的PATH;否则它会提供 open 单独使用Python。安装npm 到同一个前缀中,就可以生成npm EEXIST 错误。 选择单独的前缀或显式地删除您自己的已验证的帮助器 安装;Canvas从不强制替换另一个可执行文件。

文件被复制到Canvas存储中。概述预览支持的文件; 自定义画布保留可下载的文件卡。Markdown支持渲染/源 视图和包装;每个卡片都在本地记住它的读取位置。临时 概述文件在一小时后或服务器重启后过期。

粘贴或拖放文件和图像到终端上传到那台机器 ~/.local/share/canvas/inbox. Canvas插入不带Enter的带引号的路径。目录 打开提供vscode远程SSH。环回url指的是终端的机器; 转发的应用程序必须支持所提供的子路径。

配置

变量默认的目的
CANVAS_DATA_DIR~/.local/share/canvas帐户、数据库和文件
CANVAS_HOST127.0.0.1监听地址或逗号分隔的地址
CANVAS_PORT3010听港口
CANVAS_ALLOWED_ORIGINS同源允许的前端起源
CANVAS_INIT_USERNAMEcanvas第一次用户名
CANVAS_INIT_PASSWORD随机首次启动密码,至少8个字符
CANVAS_PUBLIC_SSH_HOST监听地址或主机名本地源的VS Code SSH主机
CANVAS_PUBLIC_SSH_PORT22本地源代码的VS Code SSH端口

对于远程访问,使用支持WebSocket和无缓冲上传/SSE的TLS。 子路径代理必须剥离其前缀并发送 X-Forwarded-Prefix. 身份验证 使用不记名令牌;帐户访问授予终端访问连接的机器。 备份完整的数据目录,包括SQLite和 files/. 终端的收件箱 文件保留在它们的源计算机上。

前端可以独立运行并连接到命名的Canvas实例。构建 它与 VITE_CANVAS_BUILTIN_SERVER=false npm run build:web 要求一个明确的 服务器的URL。默认包发现它的同源服务器。HTTPS支持 PWA安装;更新等待显式重新加载。应用程序外壳和图标 precached;使用时缓存公共字体。

从帐户对话框的QR按钮共享实例。在连接上扫描它 屏幕或在添加实例中添加相机(HTTPS)或图像来填充服务器和 用户名,然后输入密码登录。扫描保持当前前端 并保留列表中已存在的实例的显示名称。

开发

npm ci
npm run build
npm start

对于实时开发,请运行 npm run server:dev 和 npm run dev 分开。 提交之前,运行 npm run typecheck, npm test 和 npm run build. 测试使用隔离装置; CANVAS_TEST_HERDR_SERVER_BINARY 选择官员 本机集成测试的Herdr可执行文件。

许可证

Apache License 2.0.

版本与发布记录

@thezzisu/canvas 共发布 5 个版本,首次发布于 2026/10/31;过去 12 个月发布了 5 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.4latest2026/11/02今天
0.1.32026/10/312 天前
0.1.22026/10/313 天前
0.1.02026/10/313 天前
0.0.0-stage2026/10/313 天前

关于 @thezzisu/canvas 的常见问题

@thezzisu/canvas 是什么?

用于本地和ssh连接的牧人窗口的浏览器工作区

如何安装 @thezzisu/canvas?

在项目目录运行 npm install @thezzisu/canvas,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 canvas,可以用 npx canvas 直接运行。

@thezzisu/canvas 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/thezzisu__canvas 是否存在。

@thezzisu/canvas 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@thezzisu/canvas 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@thezzisu/canvas 可以商用吗?

@thezzisu/canvas 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@thezzisu/canvas 还在维护吗?

最新版本 0.1.4 发布于 2026/11/02(今天);至今共发布 5 个版本,其中过去 12 个月发布了 5 个;首次发布于 2026/10/31。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。