Bohrium Dev Node Management
/install bohrium-node
SKILL: Bohrium Dev Node Management
Overview
Manage dev nodes (container/VM instances) on the Bohrium platform. Prefer bohr CLI; fall back to the API for unsupported operations.
Dev nodes are used for data preparation, compilation, debugging, and post-processing. They support Web Shell and SSH connections.
Authentication
"bohrium-node": {
"enabled": true,
"apiKey": "YOUR_ACCESS_KEY",
"env": { "ACCESS_KEY": "YOUR_ACCESS_KEY" }
}
Prerequisites: Install bohr CLI
# macOS
/bin/bash -c "$(curl -fsSL https://dp-public.oss-cn-beijing.aliyuncs.com/bohrctl/1.0.0/install_bohr_mac_curl.sh)"
# Linux
/bin/bash -c "$(curl -fsSL https://dp-public.oss-cn-beijing.aliyuncs.com/bohrctl/1.0.0/install_bohr_linux_curl.sh)"
source ~/.bashrc && export PATH="$HOME/.bohrium:$PATH"
List Nodes
bohr node list # All nodes (table)
bohr node list --json # JSON
bohr node list -s # Running only
bohr node list -p # Paused only
bohr node list -d # Pending only
bohr node list -w # Waiting only
bohr node list -q # ID and name only
JSON fields: nodeId, nodeName, status (Started/Paused/Pending/Waiting), cpu/memory/gpu, ip, imageName, cost
Create Node
bohr node create # Interactive: Project -> Image -> Machine -> Name -> Disk
bohr node createis interactive. For automation, use the API (see below).
Recommended images:
| Scenario | Image |
|---|---|
| CPU basic | registry.dp.tech/dptech/ubuntu:20.04-py3.10 |
| CPU + Intel MPI | registry.dp.tech/dptech/ubuntu:20.04-py3.10-intel2022 |
| GPU basic | registry.dp.tech/dptech/ubuntu:20.04-py3.10-cuda11.6 |
| GPU + Intel MPI | registry.dp.tech/dptech/ubuntu:20.04-py3.10-intel2022-cuda11.6 |
Connect to Node
bohr node connect 1431145 # Passwordless SSH via nodeId
Alternative: Web Shell via the Bohrium web UI (auto-login as root), or manual SSH using credentials from the API.
Stop / Delete
bohr node stop 1431145 # Stop (pause billing, data preserved)
bohr node delete 1431145 # Delete (irreversible)
Important: Nodes are billed continuously while running. Stop or delete when not in use.
Storage & Networking
| Item | Details |
|---|---|
| System disk | Selected at creation (max 100GB); stores OS packages |
| Personal disk /personal | 500GB per user per project; persists after node release |
| Shared disk /share | 1TB per project; read/write for all members |
| Public ports | 50001-50005 open by default |
| GPU driver | v525 default; cannot upgrade |
| Docker | Not supported inside container nodes (security) |
Dataset Mounting
Mount datasets when creating a container node; access via path (e.g. /bohr/my-dataset/v1).
- Adds 2-4s boot delay (regardless of dataset count)
- Use
df -a | grep bohrto view mount points
Boot Time & Image Cache
| Scenario | Boot time |
|---|---|
| Cached CPU machine | ~20s |
| Cached GPU machine | ~40s |
| GPU under resource pressure | 1-5 min |
| No cache (new/expired image) | 10-30 min (image pull) |
Cache rules:
- Public images have persistent cache
- Custom images: cache builds in 10-30 min after creation; wait before using
- Custom images unused for 30 days: cache expires, re-pull required
- Billing starts from resource allocation, even during image pull
API Supplement (CLI Unsupported)
import os, requests
AK = os.environ.get("ACCESS_KEY", "")
BASE = "https://open.bohrium.com/openapi/v1/node"
HEADERS = {"accessKey": AK}
HEADERS_JSON = {**HEADERS, "Content-Type": "application/json"}
# Programmatic node creation (non-interactive)
r = requests.post(f"{BASE}/add", headers=HEADERS_JSON, json={
"projectId": 154, "name": "my-node", "imageId": 2168,
"machineConfig": {"type": 0, "value": 388, "label": "c2_m4_cpu"},
"diskSize": 20,
})
# Returns: {"code": 0, "data": {"machineId": 1427300}}
# Available resources
r = requests.get(f"{BASE}/resources", headers=HEADERS)
# Returns: {disks, cpuList, gpuList} — value = skuId
# Resource pricing
r = requests.get(f"{BASE}/resources/price", headers=HEADERS,
params={"skuId": 388, "projectId": 154})
# Returns: {"data": {"price": "0.4"}} (CNY/hour)
# Node details (includes SSH password)
r = requests.get(f"{BASE}/{machine_id}", headers=HEADERS)
# Returns: {nodeId, nodeName, status, ip, nodeUser, nodePwd, domainName, ...}
# Restart (must stop first)
requests.post(f"{BASE}/restart/{machine_id}", headers=HEADERS)
# Rename
requests.post(f"{BASE}/modify/{machine_id}", headers=HEADERS_JSON,
json={"name": "new-name"})
# View/bind datasets
r = requests.get(f"{BASE}/ds", headers=HEADERS, params={"nodeId": node_id})
requests.post(f"{BASE}/ds/bind", headers=HEADERS_JSON,
json={"nodeId": node_id, "datasetId": dataset_id})
Status Codes
| status | Meaning | CLI Display |
|---|---|---|
| 2 | Running | Started |
| -1 | Stopped/Released | Paused |
Quotas
| Resource | Limit |
|---|---|
| Nodes | 4 per user per project |
| System disk | Max 100GB |
| Personal disk | 500GB per user per project |
| Shared disk | 1TB per project |
SSH vs Web Shell Environment
| Method | Env var source |
|---|---|
| Web Shell | System env + /root/.bashrc |
| SSH | /root/.bashrc only (overwrites globals) |
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
No resource for selected machine |
Out of stock | Try another spec or retry later |
record not found |
Invalid machineId | Verify with bohr node list --json |
| Restart fails | Node not stopped | bohr node stop first, wait for Paused |
nodeId vs machineId |
Two different IDs | CLI uses nodeId; API uses machineId; dataset API uses nodeId |
| SSH fails | Image lacks SSH | DockerHub images need manual sshd install |
| Domain not resolving | Stopped >7 days | Restart; wait 10-30 min for DNS; use Web Shell meanwhile |
| Slow terminal | VPN/network or browser memory | Disable VPN; refresh page |
| Cannot run Docker | Container security | Use VM image LBG_Common_v2 |
| Image pulling | Cache not ready or expired | Wait 10-30 min after build |
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install bohrium-node - 安装完成后,直接呼叫该 Skill 的名称或使用
/bohrium-node触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Bohrium Dev Node Management 是什么?
Manage Bohrium dev nodes (containers/VMs) via bohr CLI or open.bohrium.com API. Use when: user asks about creating/starting/stopping/deleting dev machines on... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 51 次。
如何安装 Bohrium Dev Node Management?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install bohrium-node」即可一键安装,无需额外配置。
Bohrium Dev Node Management 是免费的吗?
是的,Bohrium Dev Node Management 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Bohrium Dev Node Management 支持哪些平台?
Bohrium Dev Node Management 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Bohrium Dev Node Management?
由 Sorrymaker0624(@sorrymaker0624)开发并维护,当前版本 v1.0.0。