qubicl-cli 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,62 +1,147 @@
1
- # Qubicl CLI
1
+ <div align="center">
2
2
 
3
- Qubicl is a local computer layer for AI agents. It gives a compatible MCP or OpenAPI client a private Docker computer with durable files, bounded terminal/process tools, keyless web research, optional Chromium/desktop workflows, and explicit human takeover. The model stays outside Qubicl.
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/EldanRing/qubicl/main/assets/brand/qubicl-mark-dark.svg">
5
+ <img alt="Qubicl" src="https://raw.githubusercontent.com/EldanRing/qubicl/main/assets/brand/qubicl-mark.svg" width="180">
6
+ </picture>
4
7
 
5
- Qubicl `0.1.x` is the initial pre-1.0 release series. Interfaces and state
6
- formats may evolve; back up important homes before upgrades.
8
+ <h1>Qubicl</h1>
7
9
 
8
- Install and start onboarding with:
10
+ ### Give any AI agent a real, private computer on your machine.
11
+
12
+ Durable files. Terminal access. Web research. A persistent browser and desktop.
13
+ Human takeover whenever you want it. No Qubicl account, cloud control plane, or
14
+ model lock-in.
15
+
16
+ [![npm](https://img.shields.io/npm/v/qubicl-cli?color=cb3837&label=npm)](https://www.npmjs.com/package/qubicl-cli)
17
+ [![License](https://img.shields.io/badge/license-Apache--2.0-6f42c1)](https://github.com/EldanRing/qubicl/blob/main/LICENSE)
18
+ [![Node](https://img.shields.io/badge/node-22%20%7C%2024-339933)](https://github.com/EldanRing/qubicl/blob/main/package.json)
19
+ [![Docker](https://img.shields.io/badge/runtime-Docker-2496ED)](https://www.docker.com/)
20
+
21
+ </div>
22
+
23
+ ---
9
24
 
10
25
  ```sh
11
26
  npm install -g qubicl-cli
12
27
  qubicl setup
13
28
  ```
14
29
 
15
- The setup wizard uses ordinary numbered/text prompts. Type `back` to revisit the previous step or `cancel` to leave before confirmation without obtaining images or changing Qubicl state.
30
+ Qubicl turns local Docker into observable computers for external AI agents.
31
+ The agent stays in Codex, Claude, Open WebUI, Cursor, VS Code, or another MCP or
32
+ OpenAPI client. Qubicl supplies the machine it works on.
33
+
34
+ ```text
35
+ your model or agent
36
+
37
+ │ MCP / OpenAPI / Open Terminal
38
+
39
+ localhost-only Qubicl gateway
40
+
41
+ ├── terminal + managed processes
42
+ ├── durable, host-visible files
43
+ ├── keyless web search + local extraction
44
+ ├── persistent Chromium + desktop
45
+ ├── packaged, operator-controlled skills
46
+ └── live viewer + human takeover
47
+ ```
48
+
49
+ ## Why Qubicl
50
+
51
+ | | |
52
+ | --- | --- |
53
+ | **Bring your own model** | One computer works with any compatible client. Switch models without rebuilding the workspace. |
54
+ | **See the work** | Watch the live desktop, take control, finish a task yourself, and hand the same session back. |
55
+ | **Keep the files** | The computer's `/home` is visible on the host and survives restarts, upgrades, and runtime recreation. |
56
+ | **Do more than code** | Terminal, Git, web research, browser automation, desktop apps, office workflows, previews, backups, and SSH. |
57
+ | **Control every computer** | Choose its resources, network policy, exposed tools, active skills, credentials, and lifecycle. |
58
+ | **Stay local** | No Qubicl account, telemetry backend, database, hosted daemon, or Docker socket inside the computer. |
59
+
60
+ ## Quick start
61
+
62
+ Requirements: Node.js 22 or 24, Docker Engine 24.0 or Docker Desktop 4.29+, and
63
+ Docker Compose 2.24+. Qubicl supports Linux, Apple Silicon macOS with Docker
64
+ Desktop, and Windows 11 x64 through Ubuntu 24.04 on WSL 2 with Docker Desktop.
65
+
66
+ ```sh
67
+ qubicl setup
68
+ qubicl create computer-name --preset computer
69
+ qubicl connect computer-name --client codex
70
+ ```
71
+
72
+ The setup wizard checks Docker, compares four progressive computer presets,
73
+ previews resource and image effects, obtains only the selected image plus the
74
+ gateway, and can create the first computer. Run Qubicl as your normal user,
75
+ never with `sudo`.
16
76
 
17
- Setup compares four progressive presets: lean headless `file-system` (1 CPU/512m), Openbox/Chromium `browser` with OCR and document inspection (2 CPU/2g), minimal-XFCE `computer` with document helpers and managed SSH (2 CPU/3g), and broad development/office `workstation` (2 CPU/4g). It validates a local Docker daemon, previews the exact image and resource effects, obtains only the selected image plus gateway, and optionally creates the first computer. Every image carries native keyless `web_search`, local `web_extract`, and the full compatible skill catalog. New computers activate `plan` on `file-system`; `plan`, `pdf`, and `ocr-and-documents` on `browser`; and all six core skills on `computer` and `workstation`.
77
+ ## Computer presets
18
78
 
19
- Connect without placing a bearer token in client configuration:
79
+ | Preset | Includes | Viewer | Suggested limit |
80
+ | --- | --- | :---: | ---: |
81
+ | `file-system` | Shell, processes, Git, durable files, web research | — | 1 CPU / 512m |
82
+ | `browser` | Everything above plus persistent Chromium, OCR, PDF inspection | ✓ | 2 CPU / 2g |
83
+ | `computer` | Browser plus a lightweight XFCE desktop, editors, document tools, SSH | ✓ | 2 CPU / 3g |
84
+ | `workstation` | Full development and office environment with LibreOffice | ✓ | 2 CPU / 4g |
85
+
86
+ Every preset includes native keyless `web_search`, local `web_extract`, and
87
+ verified Qubicl-native skill baselines with durable, agent-editable working
88
+ copies. Operators choose the tools and skills each computer exposes:
89
+
90
+ ```sh
91
+ qubicl tools computer-name
92
+ qubicl skills computer-name
93
+ ```
94
+
95
+ Disabled tools disappear from MCP, OpenAPI, and Open Terminal, and cached calls
96
+ fail closed.
97
+
98
+ ## Connect any agent
20
99
 
21
100
  ```sh
22
101
  qubicl connect computer-name --client codex
102
+ qubicl connect computer-name --client claude-code
103
+ qubicl connect computer-name --client cursor
23
104
  qubicl connect computer-name --client opencode
24
105
  qubicl connect computer-name --client openclaw
25
106
  qubicl connect computer-name --client hermes-agent
107
+ qubicl connect computer-name --client open-webui
26
108
  ```
27
109
 
28
- Adapters are available for Codex, Claude Code, Claude Desktop, Cursor, VS Code, OpenCode, OpenClaw, Hermes Agent, Open WebUI, generic stdio, HTTP MCP, and OpenAPI. `connect` only prints setup instructions and never edits client files. HTTP/OpenAPI snippets point to the explicit `qubicl token show computer-name` command; they cannot print a raw token themselves.
110
+ Adapters cover Codex, Claude Code, Claude Desktop, Cursor, VS Code, OpenCode,
111
+ OpenClaw, Hermes Agent, Open WebUI, generic stdio and HTTP MCP, and direct
112
+ OpenAPI. `connect` prints configuration; it never edits client files or prints
113
+ a bearer token.
29
114
 
30
- For a client on the same Linux/macOS host, Codex prints `codex mcp add qubicl-computer-name -- qubicl mcp computer-name`; Qubicl does not run it. When the client runs on Windows and Qubicl runs inside WSL 2, add `--client-host windows` to any stdio adapter. Qubicl then emits that client's normal configuration with a pinned `wsl.exe`, distribution, Node executable, and Qubicl entrypoint. For other clients, copy the printed configuration into the client yourself. The stdio bridge owns its fenced lease, so lease proofs are absent from model-visible tools. Optional `--profile files|browser-semantic|browser-visual|desktop` arguments select smaller static catalogs; `--result-mode structured|compatible` is available for clients that require a non-default MCP result representation.
115
+ For Open WebUI, copy the generated configuration into **Admin Panel Settings
116
+ → Integrations → Open Terminal**. Qubicl supplies native durable-file browsing,
117
+ chat uploads, screenshots, browser tools, and explicitly published local
118
+ previews without joining Open WebUI's Docker network.
31
119
 
32
- For a same-host Open WebUI, run `qubicl connect computer-name --client open-webui` and copy the printed fields into **Admin Panel → Settings → Integrations → Open Terminal**. The generated Docker Desktop URL uses `host.docker.internal`; replace it with `127.0.0.1` only when Open WebUI runs directly on the host. Retrieve the token separately and treat it as a password. The compatibility connection supplies native durable-file browsing and search, filesystem-backed chat uploads, lease-safe Qubicl/browser tools, native PNG screenshots, and explicitly published loopback port previews, but not an interactive PTY.
120
+ ## Watch and take over
33
121
 
34
- Every computer has an immutable ID, independent credentials, lease fencing, one explicit resource-bounded container, and a host-mounted `/home`. **Only `/home` is durable.** Files and packages elsewhere may disappear on recreation; use a compatible custom image for permanent system packages.
122
+ ```sh
123
+ qubicl view computer-name
124
+ ```
35
125
 
36
- The gateway listens only on localhost. Computers receive no Docker socket, privileged mode, host namespaces, devices, added capabilities, or arbitrary host mounts. Browser-capable computers keep Chromium's Linux namespace and renderer seccomp-BPF sandboxes enabled through a constrained seccomp profile—without `--no-sandbox`, `SYS_ADMIN`, or an unconfined container. Controller and workload processes share the computer container, so takeover is a cooperative managed-process fence rather than a hostile-code boundary. Qubicl is not a VM-grade hostile-code sandbox.
126
+ Observation is passive. **Take control** fences agent tools and terminates its
127
+ ordinary managed commands before handing you the keyboard and mouse. Persistent
128
+ browser and managed desktop applications remain visible so you can continue the
129
+ same task. Qubicl's green pointer shows the agent's latest desktop or browser
130
+ position in the viewer.
37
131
 
38
- Requirements are Node.js `^22.14.0 || ^24.0.0`, Docker Engine 24.0 or
39
- Docker Desktop 4.29 or newer, and Docker Compose 2.24 or newer. Linux x64,
40
- Apple Silicon macOS with Docker Desktop, and Windows 11 x64 through Ubuntu
41
- 24.04 on WSL 2 with Docker Desktop are directly exercised for the first
42
- release. Linux ARM64, Intel macOS, Windows on ARM, and other WSL distributions
43
- are best-effort. Native Windows execution and WSL 1 are not supported, and
44
- Qubicl computers remain Linux containers on every host.
132
+ ## Security boundary
45
133
 
46
- Useful commands:
134
+ Computers run without privileged mode, a Docker socket, host namespaces,
135
+ arbitrary mounts, or passwordless elevation. The gateway listens only on
136
+ `127.0.0.1`. Qubicl is a Docker-based computer for trusted or
137
+ operator-supervised workloads, not a VM boundary against hostile code.
47
138
 
48
- ```sh
49
- qubicl help
50
- qubicl doctor --json
51
- qubicl list --json
52
- qubicl create computer-name --json
53
- qubicl upgrade computer-name --offline
54
- qubicl skills computer-name
55
- qubicl tools computer-name
56
- qubicl control release computer-name
57
- qubicl network show computer-name
58
- qubicl backup create computer-name --quiesce
59
- qubicl --version
60
- ```
139
+ Read the complete [security model](https://github.com/EldanRing/qubicl/blob/main/docs/security-model.md)
140
+ before relying on the boundary.
141
+
142
+ Qubicl `0.1.x` is the initial public series. Interfaces and state formats may
143
+ evolve before 1.0; back up important computer homes before upgrades.
61
144
 
62
- The source, security model, documentation, and Apache-2.0 license are in the [Qubicl repository](https://github.com/EldanRing/qubicl).
145
+ Explore the [source and full documentation](https://github.com/EldanRing/qubicl).
146
+ Source code and documentation are Apache-2.0. Designated Qubicl brand artwork
147
+ is CC BY 4.0.
@@ -2,22 +2,22 @@
2
2
  "spdxVersion": "SPDX-2.3",
3
3
  "dataLicense": "CC0-1.0",
4
4
  "SPDXID": "SPDXRef-DOCUMENT",
5
- "name": "qubicl-cli-0.1.0-npm-application",
6
- "documentNamespace": "https://github.com/EldanRing/qubicl/spdx/qubicl-cli/0.1.0/960bfafcc5e114f8c518e4a931b5172b7277292c/npm-application",
5
+ "name": "qubicl-cli-0.1.1-npm-application",
6
+ "documentNamespace": "https://github.com/EldanRing/qubicl/spdx/qubicl-cli/0.1.1/dac0e16a11b8cbc0ed7f8b0e9eb9e16a3aa2f45d/npm-application",
7
7
  "creationInfo": {
8
- "created": "2026-08-27T03:44:45Z",
8
+ "created": "2026-08-27T13:23:55Z",
9
9
  "creators": [
10
10
  "Tool: qubicl-metafile-sbom-1"
11
11
  ]
12
12
  },
13
13
  "documentDescribes": [
14
- "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330"
14
+ "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329"
15
15
  ],
16
16
  "packages": [
17
17
  {
18
18
  "name": "qubicl-cli",
19
- "SPDXID": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
20
- "versionInfo": "0.1.0",
19
+ "SPDXID": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
20
+ "versionInfo": "0.1.1",
21
21
  "downloadLocation": "NOASSERTION",
22
22
  "filesAnalyzed": false,
23
23
  "licenseConcluded": "Apache-2.0",
@@ -27,7 +27,7 @@
27
27
  {
28
28
  "referenceCategory": "PACKAGE-MANAGER",
29
29
  "referenceType": "purl",
30
- "referenceLocator": "pkg:npm/qubicl-cli@0.1.0"
30
+ "referenceLocator": "pkg:npm/qubicl-cli@0.1.1"
31
31
  }
32
32
  ],
33
33
  "comment": "Qubicl npm-application application assembled from the recorded esbuild metafiles."
@@ -124,8 +124,8 @@
124
124
  },
125
125
  {
126
126
  "name": "qubicl-core-skill-adaptations",
127
- "SPDXID": "SPDXRef-Package-qubicl-core-skill-adaptations-0.1.0-a8cccccd5bcc",
128
- "versionInfo": "0.1.0",
127
+ "SPDXID": "SPDXRef-Package-qubicl-core-skill-adaptations-0.1.1-7a87144aafe4",
128
+ "versionInfo": "0.1.1",
129
129
  "downloadLocation": "https://github.com/EldanRing/qubicl",
130
130
  "filesAnalyzed": false,
131
131
  "licenseConcluded": "MIT",
@@ -135,7 +135,7 @@
135
135
  {
136
136
  "referenceCategory": "PACKAGE-MANAGER",
137
137
  "referenceType": "purl",
138
- "referenceLocator": "pkg:github/EldanRing/qubicl@960bfafcc5e114f8c518e4a931b5172b7277292c"
138
+ "referenceLocator": "pkg:github/EldanRing/qubicl@dac0e16a11b8cbc0ed7f8b0e9eb9e16a3aa2f45d"
139
139
  }
140
140
  ],
141
141
  "comment": "Six Qubicl-native core skills, with selected MIT-licensed helpers adapted from hermes-agent@7d6db4efb885856078e4d19f804035226df81e0d; Hermes Agent is not installed."
@@ -179,42 +179,42 @@
179
179
  ],
180
180
  "relationships": [
181
181
  {
182
- "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
182
+ "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
183
183
  "relationshipType": "DEPENDS_ON",
184
184
  "relatedSpdxElement": "SPDXRef-Package-hono-node-server-1.19.17-1838a11ef509"
185
185
  },
186
186
  {
187
- "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
187
+ "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
188
188
  "relationshipType": "DEPENDS_ON",
189
189
  "relatedSpdxElement": "SPDXRef-Package-modelcontextprotocol-core-2.0.0-546354de5e47"
190
190
  },
191
191
  {
192
- "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
192
+ "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
193
193
  "relationshipType": "DEPENDS_ON",
194
194
  "relatedSpdxElement": "SPDXRef-Package-modelcontextprotocol-node-2.0.0-cc861036891c"
195
195
  },
196
196
  {
197
- "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
197
+ "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
198
198
  "relationshipType": "DEPENDS_ON",
199
199
  "relatedSpdxElement": "SPDXRef-Package-modelcontextprotocol-server-2.0.0-39f69d3701b8"
200
200
  },
201
201
  {
202
- "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
202
+ "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
203
203
  "relationshipType": "DEPENDS_ON",
204
204
  "relatedSpdxElement": "SPDXRef-Package-playwright-core-1.62.1-6e887f47565b"
205
205
  },
206
206
  {
207
- "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
207
+ "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
208
208
  "relationshipType": "DEPENDS_ON",
209
- "relatedSpdxElement": "SPDXRef-Package-qubicl-core-skill-adaptations-0.1.0-a8cccccd5bcc"
209
+ "relatedSpdxElement": "SPDXRef-Package-qubicl-core-skill-adaptations-0.1.1-7a87144aafe4"
210
210
  },
211
211
  {
212
- "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
212
+ "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
213
213
  "relationshipType": "DEPENDS_ON",
214
214
  "relatedSpdxElement": "SPDXRef-Package-yaml-2.9.0-be80181ebffd"
215
215
  },
216
216
  {
217
- "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.0-d495f41fa330",
217
+ "spdxElementId": "SPDXRef-Package-qubicl-cli-0.1.1-3aef512ef329",
218
218
  "relationshipType": "DEPENDS_ON",
219
219
  "relatedSpdxElement": "SPDXRef-Package-zod-4.4.3-0479f5dfed7f"
220
220
  }
@@ -962,7 +962,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
962
962
  SOFTWARE.
963
963
 
964
964
  ---
965
- qubicl-core-skill-adaptations@0.1.0
965
+ qubicl-core-skill-adaptations@0.1.1
966
966
  Declared license: MIT
967
967
  Includes material adapted from https://github.com/NousResearch/hermes-agent/tree/7d6db4efb885856078e4d19f804035226df81e0d
968
968
 
@@ -726,7 +726,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
726
726
  SOFTWARE.
727
727
 
728
728
  ---
729
- qubicl-core-skill-adaptations@0.1.0
729
+ qubicl-core-skill-adaptations@0.1.1
730
730
  Declared license: MIT
731
731
  Includes material adapted from https://github.com/NousResearch/hermes-agent/tree/7d6db4efb885856078e4d19f804035226df81e0d
732
732