@fnndsc/chell

中文文档
5.20.12发布于 2026/11/15MITTypeScriptES Module近 30 天下载 7483

ChELL 执行分层逻辑 - 交互式 ChRIS REPL Shell

中文使用文档
文档目录24 节
  1. 安装
  2. 概念
  3. 虚拟文件系统
  4. 连结关系( E) .chrislink 文档)
  5. 运行插件
  6. 案例1——从数据目录开始新的分析
  7. 案例2——继续进行现有分析
  8. 命名种子和实例
  9. 检查已版本的插件
  10. 监测
  11. 安装新插件
  12. 从插件索引中填入 CUBE
  13. 运行管道
  14. 监测工作: /proc/jobs/
  15. 密钥命令
  16. 文件系统
  17. 资源
  18. 存储
  19. 系统
  20. 开始
  21. 脚本
  22. 建筑
  23. 进一步阅读
  24. 许可证

ChELL: ChELL 执行分层逻辑

ChRIS 互动壳

ChELL是一个命令行外壳,将一个Chris分布式计算平台作为熟悉的Unix文件系统来呈现. 如果你知道的话 bash 或者说 zsh,你已经知道大部分ChELL.

安装

npm install -g @fnndsc/chell

要求节点.js 20.12. 此安装 chell 命令 - 见 开始 连接到 CUBE.

概念

ChRIS将数据,分析工具和结果存储在一个REST API背后. ChELL 将所有这些映射到路径上:

  • 您的数据生活在 /home/<user>/
  • 每个注册插件和管道都是虚拟可执行文件 /bin
  • 系统配置可读于 /etc
  • PACS 查询结果表面 /net/pacs/queries/

您的导航 cd,检查与 ls,将文件读取到 cat,并引用插件名称来进行分析——与任何Unix系统中使用的肌肉内存相同.

PACS检索还可以直接确定新分析的投入:

pacs query AccessionNumber:12345678
pacs pull /net/pacs/queries/.../Study_... --new-feed "Brain MRI"

--new-feed 等待完整选中的系列集, 创建一个 feed start 时间 pl-dircopy,并打印种子ID,根任务ID,并打印种子路径. 没有 旗帜, pacs pull 只获取 CUBE 存储中的数据.

跑过被拉到的地方是它自己的一行: gather process <plugin|pipeline> 一次跑遍整个组, 从它的根。 见 PACS 查询/ 检索/ 解析。 。 。 .


虚拟文件系统

ChELL文件系统有两种路径:

  • CFS( 立方体FS) ——真实的Chris存储:您上传的文件,种子输出,同义链接文件. 可读可写可写可坚持.
  • VFS( 虚拟) ——从API资源上合成了苍蝇:插件,配置,PACS结果. 只读视图, 不存储字节 .
路径类型你看见的
/home/<user>/爱幼学校您上传的文件和目录
/home/<user>/feeds/爱幼学校您的分析信息及其输出树
/PIPELINES/爱幼学校共享管道产出数据
/PUBLIC/爱幼学校公开查阅的文件
/SERVICES/爱幼学校服务级数据
/SHARED/爱幼学校用户共享数据
*.chrislink爱幼学校与其他 ChRIS 路径的符号链接
/binVFS 飞行器在此 CUBE 中注册的每个插件和管道
/usr/binVFS 飞行器内建 shell 命令 (id, (中文(简体) ), whoami, (中文(简体) ), whereami, (...) (中文(简体) )
/etc/VFS 飞行器配置: 计算环境、 组、 用户、 CUBE 信息
/net/pacs/queries/VFS 飞行器PACS 查询结果集
/proc/jobs/VFS 飞行器任务监测——所有插件实例的活状态
cd /etc
cat compute.yaml          # inspect available compute environments
cat group                 # list groups and their current CUBE users

cd /bin
ls pl-mri*                # browse MRI-related plugins

cd /home/chris/feeds
ls -l                     # see your analysis feeds

CRIS 用途 .chrislink 文件作为符号链接. ls -l 让他们成为 l 条目; cd 财务报告和审定财务报表 cat 以透明的方式跟随他们。 链接目标通过VFS调度器解决——它可以指向虚拟树的任何地方.


运行插件

因为插件住在里面 /bin 作为虚拟可执行文件,您引用 直接按名称 就像运行一个本地二进制。 CHELL 使用您的 当前工作目录 自动确定上下文,所以你不需要提供 --previous_id 手边.

案例1——从数据目录开始新的分析

cd /home/chris/uploads/SAG-anon
pl-fshack-v1.2.0 --inputFile brain.mgz --outputFile brain.nii

ChELL检测到您是 在种子之外它:

  1. 自动运行 pl-dircopy 在当前目录上将数据设置为新种子
  2. 将您的插件附在目录实例上作为下一步

为你创造了新的饲料——没有锅炉板.

案例2——继续进行现有分析

cd /home/chris/feeds/feed_123/pl-fshack_456/data
pl-segmentation-v1.0.0 --threshold 0.5

ChELL检测到您是 在种子中它从路径中提取插件实例 ID(456)并用作 previous_id 自动。 新插件节点被接入已存在的计算 DAG.

命名种子和实例

使用 -- 从种子级别上下文中分离插件参数:

pl-fshack-v1.2.0 --inputFile brain.mgz -- feed_title="Brain MRI Study" instance_title="FreeSurfer recon"

之前的一切,都一样 -- 转到插件; 设置 Chris 元数据后的一切.

检查已版本的插件

可执行文件本身会显示帮助、参数和寄存文件:

pl-fshack-v1.2.0 --help
pl-fshack-v1.2.0 --parameters
pl-fshack-v1.2.0 --readme
pl-fshack-v1.2.0 --readme --raw > pl-fshack-README.md

标记下 README 是终端显示的样式, 而 reStructured Text 是 保留为书面. --raw 只返回原始的 README 内容,制作 它安全地用于管道和定向。 这些表格在当地和 远程会话.

监测

job inspect <instance_id>
jobs list --feed <feed_id>

安装新插件

# Search the public peer store
store search simplefs

# Install (auto-discovers compute resources)
store install pl-simplefsapp

# Install pinned to specific compute
store install pl-simplefsapp --compute ares,argentum

store install (和 plugin add执行一个分三个阶段的决议:

  1. CUBE 报告已经登记
  2. 在对等端商店中找到( E)store set 选择它; 立方体. chrisproject.org 默认) → 通过admin API导入
  3. 未找到 – Docker 提取和注册

plugin add 也可以在另一个 CUBE 中取一个插件 URL,由 CUBE 自行获取,并且 --json <file>一个描述文件.

从插件索引中填入 CUBE

plugin sync --plan        # what FNNDSC/chris-plugins would add, skip and report here
sudo plugin sync          # the plan, one question, then the adds
plugin validate ./plugins # check descriptors without a CUBE

plugin sync 绝不删除或更改已经在那里的插件;见 文件/插件.adoc。 。 。 .

当登记需要升级时,ChELL报告原始故障和 建议明确的重试, 例如 sudo store install pl-simplefsapp。 。 。 . sudo 使用隐藏密码的管理员证书提示 产生的 CUBE 身份只用于嵌入命令。 远程会议 这些提示和引导 停留在原客户表面.


运行管道

A 类 管道 是一个已注册的模板——一个命名的、可重复使用的插件图,其参数默认连接在一起。 管道是静态的定义;它们不是自行运行.

A 类 工作流程 是一个管道的活性即时化, 连接在一个特定的饲料节点。 创建工作流程是"运行"一个管道的行为:ChrIS按顺序安排每个插件步骤,将一个输出输入下一个输入.

# Browse registered pipeline templates
pipeline list
pipeline info <name|id>

# Inspect or draw a registered template
pipeline manifest <name|id|slug>
pipeline diagram <name|id>

# Run by invoking its /bin name in the current context
brain-segmentation
brain-segmentation --segmentation.threshold 0.5
brain-segmentation --paramFile ~/experiments/run-1.yaml

# Equivalent explicit form
pipeline run brain-segmentation --previous <instance_id>

# Monitor all the jobs it spawns
jobs list --feed <feed_id>

<pipeline> --manifest 是完整注册的直接别名 引用 YAML, 包括管道标识、 存储值、 计算位置、 资源 控制 和地形学. cat /bin/<pipeline> 故意继续立即: 它只打印显示命令的缓存可执行摘要.

<pipeline> --diagram 直接绘图别名; 添加 --withargs 用于存储 默认或 --signalflow 信号花YAML。 管道参数和执行 控制使用情况 --<node>.<field> <value>时 --paramFile <cfs-file> 读取一个 耐用CFS的重叠很少 ChELL 自动解决当前上下文; --previous <instance_id> 选择一个明确的附件点.


监测工作: /proc/jobs/

因为每个插件在Chris同步运行, /proc/jobs/ 是你们回来看看发生了什么 它以可导航的 DAG 显示您所有可见的种子及其插件实例 —— 与计算实际运行的树结构相同 .

/proc/jobs/
└── feed_123/
    ├── status                        ← aggregate feed status
    ├── title                         ← feed name
    └── pl-dircopy_456/               ← root node (j = job type in ls -l)
        ├── status                    ← finishedSuccessfully
        ├── params
        ├── log
        └── pl-fshack_789/
            ├── status                ← started
            └── pl-segmentation_1011/
                └── status            ← scheduled
ls -l /proc/jobs/feed_123            # see all nodes with colour-coded status
cat /proc/jobs/feed_123/pl-fshack_789/status   # terminal cached; active refreshed
cat /proc/jobs/feed_123/pl-fshack_789/log      # stdout/stderr
cat /proc/jobs/feed_123/pl-fshack_789/params   # what it ran with

# The whole feed as one DAG view
feed tree 123                         # collapsed, status-coloured tree (⋈ marks joins)
feed tree 123 --focus 789             # scope to one node's subtree
feed diagram --signalflow 123 | signalflow -   # emit the DAG; render with your own tools
pipeline diagram brain-segmentation  # shallow registered-pipeline template
brain-segmentation --diagram --withargs  # /bin alias with stored defaults
brain-segmentation --signalflow | signalflow - # direct SignalFlow alias

# Search across all jobs
tree /proc/jobs | grep 789           # find instance 789 and see its full lineage

# Cancel a running job
rm /proc/jobs/feed_123/pl-fshack_789

# Cancel all jobs in a feed (requires -r)
rm -r /proc/jobs/feed_123

状态颜色在 ls -l绿色= finishedSuccessfully黄色= started编号 :running灰色 = scheduled编号 :cancelled红色 = finishedWithError。 。 。 .

连接起动索引可见的种子列表,并温暖工作地形 背景情况。 一个守护进程首先恢复了 其识别范围的地方检查站, 验证其饲料是否仍然可见,并为可用地貌学服务 和CUBE调和 终端状态可以恢复; 活动 状态和日志仍然有效。 检查新鲜度和饲料范围 proc stat数字 :

proc stat                 # feed scope, loaded jobs, sweep and checkpoint state
proc stat feed_123        # cached detail for one feed
proc retry                # resume a failed topology sweep at its failed page
proc refresh              # rebuild all and start one replacement topology sweep
proc refresh feed_123     # scope to one feed

如果启动预补被禁用,则首先访问会建立索引懒散. 运行一个 满 proc refresh 在从另一个客户端或网络图形界面开展活动之后; CUBE 是 总是权威的.

自兹 /proc 路径编码实例ID,您也可以 继续从任何节点进行分析 只是通过 cd- 进入其中:

cd /proc/jobs/feed_123/pl-dircopy_456
pl-fshack-v1.2.0 --inputFile brain.mgz   # attaches here, no --previous_id needed

密钥命令

文件系统

ls [-l] [-h] [-a]       # list directory
cd <path>               # change directory (follows .chrislinks)
cat <file>              # print file content
edit <file>             # open in $EDITOR, save back to ChRIS
cp / mv / rm            # copy, move, delete
mkdir / touch           # create directory or empty file
upload <local> <remote> # upload local file or directory tree
download <remote> <local>
tree                    # recursive listing
du                      # disk usage

资源

plugin list / search / inspect / run
plugins list [--search <term>] [--all]
<plugin>-v<version> --help / --parameters / --readme [--raw]
feed list / inspect
feeds list [--user <name>] [--all]
feed note <id>          # read feed note
feed note edit <id>     # edit feed note in $EDITOR
feed comments <id>      # list comments
pipeline list / info / manifest / run / source / diagram
workflow list / create
job inspect <id>
compute list            # list compute environments

存储

store list              # browse peer store
store search <query>
store install <plugin>  # install with admin escalation if needed
store inspect           # show current peer store URL
store set <url>         # override peer store

系统

id                      # CUBE UID, projected primary GID, and memberships
whoami                  # current CUBE user
whereami                # current CUBE URL (use pwd for working directory)
prompt list             # list prompt themes
prompt default          # compact single-line prompt
prompt p10k             # vivid two-line powerline prompt
connect --user <u> --password <p> <url>
logout
proc stat               # show /proc feed scope, freshness, and checkpoint
proc retry              # resume failed /proc reconciliation without starting over
proc refresh            # rebuild /proc job cache and restart topology warm-up
proc refresh feed_123   # scope rebuild to one feed

两个提示主题都显示为 ~这样 /home/chris/uploads 显示为 ~/uploads编辑 default 财务报告和审定财务报表 p10k 主题 共享一个生动真实的彩色调色板; p10k 添加背景填充的电线 区域、高相通字体、优美图标和可选状态信息. 图标和分隔符需要内德字体. 使用 prompt --show 预览 即时行动.

P10k 提示命令 PACS, CUBE URL, 用户, 路径, 以及 /proc 从左到左 对;可选物理模式指示和命令遥测随附 核心序列 。 可见 /proc 区分冷索引、 缓存 刷新并刷新失败; 一旦 CUBE 授权索引消失 是当前.


开始

# Start the shell, then connect interactively
chell
> connect --user chris --password chris1234 http://localhost:8000/api/v1/

# Connect via flags
chell -u chris -p chris1234 http://localhost:8000/api/v1/

# Compact user@host form (password prompted if omitted)
chell chris@localhost:8000/api/v1/
chell -p chris1234 chris@localhost:8000/api/v1/

脚本

# Non-interactive: single command via -c
chell -c "ls -l /home/user/study" > study_contents.txt
chell -c "store install pl-dircopy"

# Run a script file
chell -f my_workflow.chell

建筑

ChELL是"桑德威克模型"的演示层:

  1. 铃声 ——REPL,内建,制表完成,即时
  2. 吉利尔 ——键入命令,视图,CLI控制器
  3. 萨尔萨 ——业务逻辑,VFS调度器,意向层
  4. 库明 ——连接,上下文持续,状态
  5. @fnndsc/chrisapi - 原始 Chris REST 客户端

进一步阅读

文档专题
文件/vfs.adocVFS架构——提供者,发送,路径分辨率
文件/插件:adoc运行插件 — 新 feed vs 继续 feed, 等待, 命名运行
文件/商店.adoc储存安装——三相分解,管理升级
文件/插件.adoc注册插件 - plugin add从索引中填入 CUBE(plugin sync, (中文(简体) ), plugin validate, (中文(简体) ), plugin index
文件/日志.adoc连接和认证选项
文件/执行.adoc如何援引果壳:REPL, -c、脚本、旗帜
././docs/ manifest.adoc脚本和明显语言: @param变量, expect, (中文(简体) ), play
文件/命令.adoc完整命令参考
文件/文件目录PACS 查询和检索
文件/物理模型.adoc物理对逻辑文件系统模式
文件/目录.adoc已知的边缘案例和工作
文件/建筑图书.adoc完整的建筑深潜
内 容 提 要域名词汇表-ChrIS概念,权限模型,资源合同

许可证

部分 Chris项目。 。 。 .


ChELL是ChRIS项目的一部分.


- 30岁

版本与发布记录

@fnndsc/chell 共发布 107 个版本,首次发布于 2026/06/20;过去 12 个月发布了 107 个版本。

版本发布日期距今
5.20.12latest2026/11/15今天
5.20.112026/11/15今天
5.20.102026/11/151 天前
5.20.92026/11/141 天前
5.20.82026/11/141 天前
5.20.72026/11/124 天前

关于 @fnndsc/chell 的常见问题

@fnndsc/chell 是什么?

ChELL 执行分层逻辑 - 交互式 ChRIS REPL Shell

如何安装 @fnndsc/chell?

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

@fnndsc/chell 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fnndsc/chell 支持 ESM 还是 CommonJS?

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

@fnndsc/chell 可以商用吗?

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

@fnndsc/chell 的下载量有多少?

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

@fnndsc/chell 还在维护吗?

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