# @thezzisu/canvas 中文文档

规范地址：https://npmcn.com/package/%40thezzisu/canvas/

版本：0\.1\.4
npm 元数据更新时间：2026-11-02T15:29:34.330Z
中文译文更新时间：2026-11-02T16:45:45.992Z
软件包许可：Apache-2\.0

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40thezzisu/canvas
原文对照：https://npmcn.com/package/%40thezzisu/canvas/?lang=original
项目主页：https://github.com/thezzisu/canvas#readme
源码仓库：https://github.com/thezzisu/canvas

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：56 MB，83 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=24
- 运行依赖：7 个
- 首次发布：2026-10-31T08:29:36.379Z
- 最新版本发布：2026-11-02T15:29:33.932Z
- 已发布版本数：5（近 12 个月 5 个）

## 中文简介

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

## 安装

```sh
npm install @thezzisu/canvas
```

也可以使用：`pnpm add @thezzisu/canvas`、`yarn add @thezzisu/canvas`、`bun add @thezzisu/canvas`

## README

# 帆布

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

## 安装并运行

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

```sh
npm install --global @thezzisu/canvas
canvas serve
```

`canvas` 不带参数也会启动服务器。开放 [http://127.0.0.1:3010](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选项卡 活动:

```sh
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_HOST` | `127.0.0.1` | 监听地址或逗号分隔的地址 |
| `CANVAS_PORT` | `3010` | 听港口 |
| `CANVAS_ALLOWED_ORIGINS` | 同源 | 允许的前端起源 |
| `CANVAS_INIT_USERNAME` | `canvas` | 第一次用户名 |
| `CANVAS_INIT_PASSWORD` | 随机 | 首次启动密码，至少8个字符 |
| `CANVAS_PUBLIC_SSH_HOST` | 监听地址或主机名 | 本地源的VS Code SSH主机 |
| `CANVAS_PUBLIC_SSH_PORT` | `22` | 本地源代码的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）或图像来填充服务器和 用户名，然后输入密码登录。扫描保持当前前端 并保留列表中已存在的实例的显示名称。

## 开发

```sh
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](https://npmcn.com/package/%40thezzisu/canvas/LICENSE).

## 常见问题

### @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 和提交记录判断。

