@edryslabs/edrys-dev

中文文档
0.4.4发布于 2026/11/12MITES Module构建来源已验证近 30 天下载 2535

本地开发 edrys- Lite 实验室: 为 edrys- Lite 服务, 在自己的端口上同步, 每当实验室文件更改时, 更改类

中文使用文档
文档目录13 节
  1. 快开始
  2. 在实验室工作
  3. 实验室完工后
  4. 写入自己的模块
  5. 有人工智能探员
  6. 设置
  7. 跟班上的经纪人说话
  8. 探员能做的
  9. 你的学生家教
  10. 选项
  11. 解决问题
  12. 发展
  13. 许可证

编辑- dev

构建并尝试一个 红外线 在你和学生分享之前 用自己的电脑做实验室.

你把你的实验室写成文件lab.yml, (中文(简体) ), edrys-dev 在浏览器中打开它作为类,每次保存文件时,所有打开的标签中都会更新类. 你工作时不需要账户和部署.

快开始

惠璶 节点.js 二十个或更新.

  1. 为实验室创建文件夹并创建文件 lab.yml 其中:

    name: My first lab
    meta:
      description: Trying out edrys-dev.
    modules:
      - url: https://edrys-labs.github.io/module-markdown-it/index.html
        config:
          content: |
            # Welcome
    
            Edit lab.yml, save it, and watch this text change.
        width: full
        height: tall
    
  2. 在文件夹中启动 edrys- dev :

    npx @edryslabs/edrys-dev lab.yml --open
    

    您的浏览器打开课程 。 在终端中,你会看到两个地址:

    edrys-dev: /home/you/my-lab/lab.yml
      http://localhost:3210/?dev
    class open, share link:
      http://localhost:3210/?/classroom/…
    students join at:
      https://edrys-labs.github.io/?/classroom/…
    
  3. 换个东西进去 lab.yml 并拯救我们。 班级自行更新.

如果您经常使用 edrys-dev, 请安装一次 npm install -g @edryslabs/edrys-dev 然后从刚刚开始 edrys-dev lab.yml --open。 。 。 .

别闹了 Ctrl+C。 。 。 .

在实验室工作

  • 这个 /?dev 选项卡是您的. 这是老师对班级的看法. 保持打开:是标签将您的更改取回到 lab.yml。 。 。 .

  • 尝试实验室作为一个学生或站. 在 a 中打开共享链接 不同 浏览器或私人窗口。 在同一浏览器里,你会再次成为老师.

  • 让学生从自己的电脑上进来. 之后再给他们联系 students join at:它打开同一个课 https://edrys-labs.github.io 互联网档案馆的存檔,存档日期2013-12-22所以学生只需要浏览器,而你 /?dev 选项卡留在您的计算机上,并不断跟踪 lab.yml。在学生加入时继续打开标签:他们从打开该标签的浏览器那里获得课程。 与代理或辅导员,代理聊天在您的 /?dev 选项卡在顶部显示此链接,并带有复制按钮。 类的设置( Members, Communications)给出了相同的链接,下面是您的标签的地址,它只在您的计算机上工作. 三事须知:

    • 双方必须以同样的方式连接。 无 --local 没错 与 --local 班级在您的计算机上通过 edrys-dev , 其它计算机无法到达, 因此 edrys-dev 打印没有学生的链接 .
    • 如果您在类设置中选中了 WebSocket 服务器, 链接会携带它(#comm=…不要切断这部分.
    • 模块从 http://localhost:… (见下文)不装入学生的电脑。 edrys -dev警告你他们.

    --student-url 将链接指向另一个edrys-Lite站点,例如您自己的副本;它必须使用与edrys-Lite内部edrys-dev相同的连接设置.

  • 文件获胜. 类设置对话框中任何您更改的内容在下次保存时被替换 lab.yml。在文件中修改.

  • 重新开始是安全的. 一样 lab.yml 重新打开同一类, 因此在继续工作前共享您打开的链接 .

  • 误取相报. 如果该类无法使用您的实验室( 例如 YAML type), 终端打印 lab error: …。修复文件并再次保存.

  • 离线? 开始 --local。该类随后通过 edrys-dev 本身而不是互联网连接.

现有哪些模块以及如何配置这些模块,将在 edrys- Lite 文档 编辑 编辑技能。 。 。 .

实验室完工后

发布 lab.yml 例如,在GitHub 存储器中,您通常会如何部署链接到 https://edrys-labs.github.io 互联网档案馆的存檔,存档日期2013-12-22. Edrys -dev 中没有任何内容最终会出现在文件中.

写入自己的模块

如果你还在写一个模块,就把它放进 modules/ 实验室旁边的文件夹, 每个模块一个子文件夹 :

my-lab/
├── lab.yml
└── modules/
    └── my-module/
        └── index.html

edrys-dev在下一个端口服务此文件夹(默认情况下为3211). 使用该地址在 lab.yml数字 :

modules:
  - url: http://localhost:3211/my-module/index.html

当您保存一个文件到 modules/my-module/,只有那个模块在课堂上重新装入。 收集您模块页面出错后, 一个 AI 代理可以看见( 见下文) .

这些地址只在你的电脑上工作 发布模块(例如在 GitHub Pages 上)并将其真实地址输入 lab.yml 在你分享实验室之前.

有人工智能探员

edrys-dev可以与Claude Code或GitHub Copilot等AI编码代理合作. 代理编辑 lab.yml 对于您,请查看该课是否接受,并可以查看该课:房间,用户,模块及其消息.

设置

快速的方式, 对于一个新的实验室:

npx @edryslabs/edrys-dev init my-lab

这使得文件夹 my-lab 带有启动器 lab.yml,克劳德代码的代理配置(.mcp.jsonVS代码副驾驶(.vscode/mcp.json),对代理人的指示(AGENTS.md, (中文(简体) ), CLAUDE.md),允许代理服务器使用 edrys-dev 并编辑的 Claude 代码设置 lab.yml 财务报告和审定财务报表 modules/ 不每次询问( e).claude/settings.json页:1 .gitignore。在一个文件夹中,它保存着其中一些文件。 如果尚未安装 Edries 技能(下面第2步),它会提供为您安装这些技能;如果是,它会在更新版本出炉时更新这些技能. 然后打开您代理的文件夹并写出"启动" .

让你的学生 辅导员 还:

npx @edryslabs/edrys-dev init my-lab --tutor

然后,代理开始 edrys-dev 与导师。 家教在你的电脑上需要Claude代码 如果你和副驾驶合作的话 添加 --tutor-agent codex 由Codex回答而不是Claude代码。 在已有代理配置的文件夹中, 添加 "--tutor" 页:1 args 内 .mcp.json (和 .vscode/mcp.json)你自己,然后重新启动代理.

手执:

  1. 创建文件 .mcp.json 在您的实验室文件夹中 :

    {
      "mcpServers": {
        "edrys": { "command": "npx", "args": ["-y", "@edryslabs/edrys-dev", "--mcp", "lab.yml"] }
      }
    }
    

    如果你在全球安装了干燥剂, "command": "edrys-dev", "args": ["--mcp", "lab.yml"] 开始更快.

  2. 安装 edrys 技能, 因此代理商知道实验室和模块的写法:

    npx skills add edrys-labs/skills
    
  3. 开始你的经纪人 在实验室文件夹. 代理商自己开始干燥不要用手开始 如果文件夹没有 lab.yml 然而, Edrys -dev 在那里建立了一个启动实验室。 如果浏览器不打开, 向代理商询问类地址 .

跟班上的经纪人说话

类标签在其上行有代理聊天按钮(sparkles 图标),在类聊天按钮旁边. 它打开课上右侧的聊天,就像课上聊天一样;拖取其左边缘使其更宽或更窄. 在电话里它充斥着屏幕。 你写的东西直接交给探员 只有你看到这种聊天,不是课堂聊天。 代理可以使用文本回答,也可以使用按钮或复选框来取用.

当班级无法取取你的实验室文件时,比如在打字出错后,聊天中的一通红字便以平话表示,在"Details"下有edrys-Lite的留言. 一旦文件再次装入,它就会消失.

在你的留言下,你看到"等待代理..." 直到代理捡起,然后"想..."。 如果30秒内无事发生,代理人可能不会听. 你的信息一旦得到保存和回答.

有些特工在闲暇时不会自己注意到新消息. 这样的话,开始 chat 提示一次 edrys 服务器( 在 VS 代码副驾驶中: 类型) /edrys.chat,或 /mcp.edrys.chat 在旧版本中),并且代理正在等待您的消息.

聊天被保存在 .edrys-dev/chats/ 在实验室旁边,所以一个重启的代理可以捡起你离开的地方. 聊天顶端的菜单开始新的聊天或重新打开旧的聊天. 添加 .edrys-dev/ 给您的 .gitignore。 。 。 .

为了安全起见,聊天只接受您自己计算机上类页面的信息. 在您的网络上的其他网站或人不能写给您的代理, 只要你保留 --host 默认时.

探员能做的

工具
get_state实验室文件、课堂地址、共享链接(也用于学生)、房间、用户和模块
goto将您的课程标签移至房间, 或打开学生或站台标签
chat, (中文(简体) ), read_chat在代理聊天中写信给你,读取您的留言
read_messages模块之间的信件,以及您自己的模块中的错误
read_module_state模块在一个房间里共享什么
read_student_chats学生们问辅导员什么,辅导员回答什么 --tutor(中文(简体) )
run_in_module在您自己的模块中运行 JavaScript, 只当您要求时
wait_for_event等下一场课上发生的事

你的学生家教

启动 edrys- dev 与 --tutor,而您的学生在课堂上方的栏目中得到了一个导师按钮(robot图标). 他们要求的是由你电脑上的AI回答: 克劳德代码 必须安装和签名于(claude 在终端。 与 --tutor-agent codex, (中文(简体) ), 代码 答案改为( e)codex login (第一编) 学生除了班级联系什么都不需要.

  • 它知道实验室. 老师说 lab.yml 每一个问题,所以它总是知道 班级展示的版本。 它提供了提示和解释,而不是整个解决方案.

  • 仅为导师注. 放一个文件 tutor.md 旁边 lab.yml例如,"任务2是关于Ohm的法律,不要给出数字". 学生不接受这个文件. 努力学习的学生可能仍然让辅导员重复,所以要保守秘密.

  • 它看到学生的房间. 每个问题都有学生房间的模块 比如编辑部的代码 /?dev 选项卡。 它不能改变它或运行它。 它没有看到终端输出或屏幕,所以它要求学生贴上这些.

  • 它只能回答. 单独运行 claude 没有工具、 MCP 服务器或您的设置。 学生无法到达您的文件、您的外壳或编辑实验室的代理 。 Codex没有"没有工具"的开关,因此edrys-dev关闭了它的每一个工具和你的配置,运行它只读,并放下它仍然使用工具的任何答案. 这是用Codex 0.165检查过的. 如果一个更新的版本不再知道其中的其中一个设置,导师不会给出答案,终端会说原因.

  •  /?dev 选项卡传送信件. 保持开放。 按钮只显示在它存在的时候, 并且只显示在足够新到有它的地方, 在你的电脑和学生的网站上.

  • 你在代理聊天时看和切换它. 您顶上栏的代理聊天按钮( sparkles 图标) /?dev 选项卡有一个 Students 视图: 每一个问题和答案, 以及一个开关, 它可以关闭和关闭导师而不再重新启动。 关机的时候,学生们看不到他们的按钮.

  • 每个学生都有自己的对话,接下来是下一个问题。 聊天被保存在 .edrys-dev/tutor/,而代理保存着自己每次谈话的副本(Claude Code和Codex在通常会话文件夹中). 你的经纪人可以读出来 read_student_chats 告诉你学生被困在哪里.

  • 限制. 最多两个答案一次写出;30秒内找不到自由转会的问题得到"导师很忙". 每个学生每小时可以有一个公开的问题,最多20个问题,每个问题最多有2000个字符. 整个班级每个小时最多有200个问题, 而不计那些被拒之门外的人--tutor-per-hour 因此,学生不能用新名字越过限制并使用您的账户。 当班级到达时,终点站和"学生观"都这么说.

  • 费用. 每个问题都使用账户 claude 或者说 codex 已签入。 用个人计划(Claude Pro/Max,ChatGPT)回答学生,可能会打破其条款,这不会让你的账户提供给其他人. 对于一个班级,使用API密钥:用它开始edrys-dev,只有导师使用,而不是你自己的代理.

    ANTHROPIC_API_KEY=sk-ant-... npx edrys-dev lab.yml --tutor
    CODEX_API_KEY=sk-...         npx edrys-dev lab.yml --tutor --tutor-agent codex
    

    终端说当 edrys-dev 启动时, 支付什么, 例如. tutor: on (claude, answers paid with API key from ANTHROPIC_API_KEY)。用密钥, Claude 以最小模式运行(--bare)),它只取出密钥,从不登录. 代码读取 CODEX_API_KEY没有 OPENAI_API_KEY。 。 。 . --tutor-model 选择更便宜的模型,例如:. --tutor-model haiku。 。 。 .

  • 隐私. 学生们被告知,在你的计算机答案上有一个AI,你可以读取聊天. 问答在学生浏览器和你的分页之间加密,在每个连接上. 其它班级成员无法读取,转发班级的WebSocket服务器也无法读取.

选项

edrys-dev [lab.yml] [options]
选项默认
[lab.yml], (中文(简体) ), -i, --input <file>./lab.yml实验室文件, YAML 或 JSON
-o, --open关打开浏览器中的类
-p, --port <port>3210如果选中, 则使用下一个自由端口
--local关通过 edrys-dev 而不是互联网连接班级; 工作离线
-m, --modules <dir>./modules,如果它存在带有您自己的模块的文件夹
--student-url <url>https://edrys-labs.github.io/学生链接中的 edrys-Lite 网站
--tutor关学生的辅导聊天,由计算机上的AI代理回答
--tutor-agent <claude|codex>claude回答的代理人: Claude 代码或代码x
--tutor-model <model>代理默认值家教使用的模型
--tutor-per-hour <n>200整个班的辅导员每小时回答问题
--host <host>127.0.0.10.0.0.0 让您的网络上的其他人打开课程(以及 --mcp,写信给你的经纪人)
--mcp关用于 AI 代理; 设置为 .mcp.json,见上文
-h, --help显示帮助

解决问题

  • no lab file at …: edrys-dev 寻找 lab.yml 在当前文件夹中。 在实验室文件夹中启动, 或者给出路径 : edrys-dev path/to/lab.yml。 。 。 .
  • 分享链接打开我作为老师. 在另一个浏览器或私人窗口中打开.
  • 我对设置的更改都不见了. 改为: lab.yml 在每一个拯救。 把它们放进档案里.
  • 班级不连接/没有互联网. 尝试 --local。 。 。 .
  • 学生见一空课. 留着吧 /?dev 选项卡在他们加入时打开。 请检查access-date=中的日期值 (帮助) #comm=… 最后,你没有开始 --local设置的站点 --student-url 必须使用与 edrys-dev 的 edrys-Lite 相同的连接设置.
  • 与3210不同的港口. 另一个程序使用;edrys-dev取下个免费的. 终端显示地址.
  • 经纪人在聊天时不回答. 请检查access-date=中的日期值 (帮助) .mcp.json,如果它不醒来 自己,启动 chat 快捷键(见上文).

发展

努力研究Edrys-dev本身:

npm install
npm run build    # tsc → dist/
npm test         # builds, then runs test/*.test.js

零件如何互相交谈:

flowchart LR
  lab[lab.yml] -- watch --> srv
  mods[modules/] -- watch --> msrv["module server :3211<br/>(module pages + error script)"]
  subgraph srv ["edrys-dev :3210"]
    direction TB
    static["edrys-Lite dist + reload.js"]
    api["/edrys-dev/lab · events · reload · bridge · module-error<br/>chat · tutor · link"]
  end
  srv -- "reload-lab, reload-module, tutor answers (SSE events)" --> tab["class tab /?dev"]
  tab -- "GET lab, republish signed, tutor answers" --> room((class))
  tab -- "state, messages, replies, tutor questions (POST bridge)" --> srv
  msrv -- module frames --> tab
  msrv -. "errors (POST module-error)" .-> srv
  srv -- "reload (SSE)" --> peers
  room -- "default transport, or --local on :3210" --> peers[student / station tabs]
  peers -- "tutor questions" --> room
  room -- "tutor questions" --> tab
  agent[AI agent] <-- "MCP over stdio (--mcp)" --> srv
  srv <-- "question in, answer out (--tutor)" --> tutor["tutor: claude or codex<br/>without tools"]
  • index.ts 读取选项并启动服务器,然后 --mcp mCP 服务器 (mcp.ts) (中文(简体) ).
  • server.ts 服务 Edrys-Lite, 看着实验室(watch.ts)和对课表的交谈: 赛事在SSE上展开, 课表的报告会回来 POST /edrys-dev/bridge。 。 。 .
  • 在课堂上, edrys -Lite自己的 DevBridge (单位:千美元)src/ts/DevBridge.ts 在 edrys-Lite 中,活动与 ?dev)加载并重置实验室并报告班级. GET /edrys-dev/lab 并告诉它那里代理聊天的哪些观点(chat: {agent, students}); Edrys-Lite 然后显示其 AgentChat.vue 抽屉,它说话到 chat.ts (代理视图, /edrys-dev/chat和 tutor.ts (学生视野, /edrys-dev/tutor)在服务器上,然后 /edrys-dev/link/events 为学生的链接.
  • edrys-dev 添加 views/reload.js 到页面:当本地模块改变时,学生和站点标签再次加载.
  • tutor.ts 回答学生 --tutor课表会把他们的问题传到桥上, tutor.ts 运行 claude 或者说 codex 每一个都不用工具,答案作为事件回到分页,通过班级发送给学生.
  • modules.ts 为下一个端口的本地模块服务,并将错误报告器添加到其页面上.
  • sync.ts yjs 同步为 --local在edrys-dev自己的港口上.

edrys- Lite 来源于 npm 为 @edryslabs/edrys-lite,被固定在一个版本上: dist/ edrys-dev是服务。 尝试修改 edrys-Lite, 构建它(npm run build 并链接到退出 npm install ../edrys-Lite; 之后再次将已出版的版本收起. 也一样 @edryslabs/websocket-server,可选择的依赖性,仅 --local 用户.

出版人: .github/workflows/publish.yml数字 : npm version <version> 财务报告和审定财务报表 git push --follow-tags 打开 main。标记匹配的工作流程检查 package.json,运行测试,发布到npm(如: 0.5.0-dev.0 下划线 next 标记, 任何其它 latest)并创建了 GitHub 发布.

问题和牵引请求: https://github.com/edrys-labs/edrys-devserver 互联网档案馆的存檔,存档日期2013-12-22

许可证

麻省理工学院。MCP服务器和代理聊天跟踪 Lia 脚本开发服务器 (麻省理工学院).

版本与发布记录

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

版本发布日期距今
0.4.4latest2026/11/121 天前
0.4.32026/11/103 天前
0.4.22026/11/094 天前
0.4.12026/11/067 天前
0.4.02026/11/058 天前
0.3.42026/10/2915 天前

关于 @edryslabs/edrys-dev 的常见问题

@edryslabs/edrys-dev 是什么?

本地开发 edrys- Lite 实验室: 为 edrys- Lite 服务, 在自己的端口上同步, 每当实验室文件更改时, 更改类

如何安装 @edryslabs/edrys-dev?

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

@edryslabs/edrys-dev 支持 TypeScript 吗?

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

@edryslabs/edrys-dev 支持 ESM 还是 CommonJS?

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

@edryslabs/edrys-dev 需要什么版本的 Node.js?

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

@edryslabs/edrys-dev 可以商用吗?

@edryslabs/edrys-dev 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@edryslabs/edrys-dev 的下载量有多少?

根据 npm 官方下载统计,@edryslabs/edrys-dev 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,535 次,日均约 85 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@edryslabs/edrys-dev 还在维护吗?

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