@clawscarf/cli 0.1.0-alpha.1 → 0.1.0-alpha.11
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 +119 -2
- package/THIRD_PARTY_NOTICES.md +18 -11
- package/deploy/execution/network/node-ingress.cfg +1 -1
- package/deploy/execution/network/public-addresses.json +24 -0
- package/package.json +2 -1
- package/packs/README.md +4 -11
- package/pnpm-lock.yaml +212 -3567
- package/recipes/README.md +10 -6
- package/recipes/team-server/recipe.json +5 -4
- package/release/README.md +122 -58
- package/release/components.json +26 -2
- package/release/operator.md +27 -53
- package/release/telemetry.json +4 -0
- package/runtime/configuration.js +15 -1
- package/runtime/current.json +63 -0
- package/scripts/clawscarf.js +9 -1
- package/scripts/controller.js +6 -0
- package/scripts/deployment/browser-node-compose.js +0 -1
- package/scripts/deployment/certificates.js +2 -1
- package/scripts/deployment/compose.js +3 -5
- package/scripts/deployment/configuration.js +8 -7
- package/scripts/deployment/connection-settings.js +0 -4
- package/scripts/deployment/controller-compose.js +14 -6
- package/scripts/deployment/entrypoint.js +4 -1
- package/scripts/deployment/launch.js +12 -29
- package/scripts/deployment/model-gateway-compose.js +6 -0
- package/scripts/deployment/model-gateway.js +9 -1
- package/scripts/deployment/models.js +5 -1
- package/scripts/deployment/network-policy.js +147 -0
- package/scripts/deployment/networks.js +21 -0
- package/scripts/deployment/policy.js +27 -35
- package/scripts/deployment/prepare.js +22 -15
- package/scripts/deployment/public-addresses.js +30 -0
- package/scripts/deployment/public-web.js +132 -0
- package/scripts/deployment/runtime.js +15 -4
- package/scripts/deployment/service-network.js +86 -0
- package/scripts/deployment/state.js +16 -0
- package/scripts/installation/command.js +6 -14
- package/scripts/installation/configuration.js +2 -0
- package/scripts/installation/configure.js +1 -0
- package/scripts/installation/installer/cloud.js +1 -1
- package/scripts/installation/installer/collect.js +17 -0
- package/scripts/installation/installer/menu.js +3 -2
- package/scripts/installation/installer/prompts.js +6 -2
- package/scripts/installation/installer/run.js +21 -11
- package/scripts/installation/installer/sections/models.js +2 -12
- package/scripts/installation/installer/settings.js +10 -47
- package/scripts/installation/installer/summary.js +2 -0
- package/scripts/installation/options.js +11 -1
- package/scripts/installation/plan.js +4 -33
- package/scripts/installation/prerequisites.js +10 -5
- package/scripts/installation/recipes/definition.js +2 -0
- package/scripts/installation/reconfigure.js +69 -18
- package/scripts/installation/resolve.js +8 -5
- package/scripts/installation/runtime.js +3 -3
- package/scripts/installation/setup.js +2 -0
- package/scripts/release/create.js +8 -3
- package/scripts/release/definition.js +34 -3
- package/scripts/telemetry.js +279 -0
- package/runtime/releases/0.1.0-alpha.1.json +0 -37
- package/scripts/deployment/connection-policy.js +0 -80
- package/scripts/deployment/upgrade-rpc.py +0 -148
- package/scripts/deployment/upgrade-state.js +0 -47
- package/scripts/deployment/upgrade.js +0 -298
package/README.md
CHANGED
|
@@ -1,3 +1,120 @@
|
|
|
1
|
-
|
|
1
|
+
<a href="https://clawscarf.com"><img src="https://clawscarf.com/clawscarf-mark.svg" alt="ClawScarf logo" width="112" height="112" /></a>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# ClawScarf
|
|
4
|
+
|
|
5
|
+
### OpenClaw, ready for your team.
|
|
6
|
+
|
|
7
|
+
Give your team a shared OpenClaw server—with individual logins, your choice of AI
|
|
8
|
+
models, connected accounts, and execution protected by NVIDIA OpenShell.
|
|
9
|
+
**Self-hosted. Open source. OpenClaw’s own interface.**
|
|
10
|
+
|
|
11
|
+
[Get started](#get-started) · [Installation guide](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md) · [Releases](https://github.com/clawscarf/clawscarf/releases) · [Contribute](https://github.com/clawscarf/clawscarf/blob/main/CONTRIBUTING.md)
|
|
12
|
+
|
|
13
|
+
## Get started
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
curl -fsSL https://github.com/clawscarf/clawscarf/releases/download/v0.1.0-alpha.10/install.sh | sh
|
|
17
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
18
|
+
clawscarf configure
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Choose Team server. Pick a model. Sign in. Start your server.**
|
|
22
|
+
|
|
23
|
+
The terminal setup walks you through it, downloads the runtime, and opens OpenClaw
|
|
24
|
+
in your browser. Your sign-in becomes the first administrator account. No checkout,
|
|
25
|
+
Docker configuration files or separate OpenClaw installation required.
|
|
26
|
+
|
|
27
|
+
You’ll need Docker and a model-provider API key. Check the
|
|
28
|
+
[platform requirements](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md) before installing.
|
|
29
|
+
|
|
30
|
+
<details>
|
|
31
|
+
<summary>Prefer npm?</summary>
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
npm install -g @clawscarf/cli@next
|
|
35
|
+
clawscarf configure
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This alternative uses your own Node installation; see the
|
|
39
|
+
[requirements](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md).
|
|
40
|
+
|
|
41
|
+
</details>
|
|
42
|
+
|
|
43
|
+
## Make it your team’s workspace
|
|
44
|
+
|
|
45
|
+
| What you want to do | Where to do it |
|
|
46
|
+
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
47
|
+
| **Start working with an agent** | Open a chat in OpenClaw. Create and configure agents using its native settings. |
|
|
48
|
+
| **Bring in your teammates** | Open **People**, create an invitation link, and assign native OpenClaw roles. Administrators can remove access there too. |
|
|
49
|
+
| **Connect Outlook and other services** | Open **Connections**, link an account, and choose which agents can use it. Choose this optional capability during setup. |
|
|
50
|
+
| **Use your preferred models** | Choose the provider, model and reasoning level in setup. Run `clawscarf configure` again to change them. |
|
|
51
|
+
|
|
52
|
+
Review the [recipe settings](https://github.com/clawscarf/clawscarf/blob/main/recipes/README.md) and choose your provider and model.
|
|
53
|
+
Usage is billed by your provider; its API key stays outside OpenClaw.
|
|
54
|
+
|
|
55
|
+
Setup opens **[http://127.0.0.1:18800](http://127.0.0.1:18800)** by default.
|
|
56
|
+
That address is local to your machine. To share the server with teammates, use a
|
|
57
|
+
reachable HTTPS address; the [installation guide](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md#configuration-options)
|
|
58
|
+
covers the public URL and company SSO settings.
|
|
59
|
+
|
|
60
|
+
OpenShell applies filesystem and network policy to the whole OpenClaw runtime,
|
|
61
|
+
including plugins, shell commands and local tools. Recipes bring login, models and
|
|
62
|
+
optional Connections together in one setup; you keep OpenClaw’s native agents,
|
|
63
|
+
conversations, skills and settings.
|
|
64
|
+
|
|
65
|
+
## Everyday commands
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
clawscarf status # Check the server
|
|
69
|
+
clawscarf stop # Stop it, keeping your data
|
|
70
|
+
clawscarf start # Start it again
|
|
71
|
+
clawscarf configure # Change its configuration
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The default installation directory is `~/clawscarf-team`. Use
|
|
75
|
+
`--directory ~/another-team` to create or manage a separate installation.
|
|
76
|
+
Chats, files and settings survive stop/start. Closing the terminal leaves the server
|
|
77
|
+
running; Docker must stay running while it is in use.
|
|
78
|
+
|
|
79
|
+
For automation, the same configuration choices are available as command-line flags
|
|
80
|
+
with `--non-interactive`, and commands support `--json`.
|
|
81
|
+
[CLI reference and examples →](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md#configure-without-prompts)
|
|
82
|
+
|
|
83
|
+
See [CLI telemetry](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md#telemetry) for usage reporting
|
|
84
|
+
and how to disable it.
|
|
85
|
+
|
|
86
|
+
## Your server, your team
|
|
87
|
+
|
|
88
|
+
An installation serves **one trusted team**: separate logins and roles, shared
|
|
89
|
+
execution files and browser accounts. Native roles control application permissions;
|
|
90
|
+
people allowed to run code share the Gateway’s authority. Use separate installations
|
|
91
|
+
for teams that must be isolated from one another.
|
|
92
|
+
|
|
93
|
+
The Team server recipe enables public web access for agents and shell tools. Operators
|
|
94
|
+
can turn it off; private destinations remain restricted to explicitly configured services.
|
|
95
|
+
Public web access permits sending team data to public services. See the
|
|
96
|
+
[network boundary](https://github.com/clawscarf/clawscarf/blob/main/deploy/openshell/README.md#public-web-access) for enforcement and limits.
|
|
97
|
+
|
|
98
|
+
Default login and optional Connections use **ClawScarf Cloud**. You can use your own
|
|
99
|
+
OIDC provider and disable Connections to run without those hosted services. Original
|
|
100
|
+
model-provider keys and Connections management credentials stay outside OpenClaw.
|
|
101
|
+
|
|
102
|
+
See [published releases](https://github.com/clawscarf/clawscarf/releases),
|
|
103
|
+
[security implementation](https://github.com/clawscarf/clawscarf/blob/main/deploy/openshell/README.md),
|
|
104
|
+
[browser support](https://github.com/clawscarf/clawscarf/blob/main/deploy/execution/browser-node/README.md#verified-release-limits)
|
|
105
|
+
and [open work](https://github.com/clawscarf/clawscarf/blob/main/TODO.md) before choosing capabilities. Retained data still needs backups.
|
|
106
|
+
|
|
107
|
+
## Explore and contribute
|
|
108
|
+
|
|
109
|
+
- **Using ClawScarf:** [Installation](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md) · [People](https://github.com/clawscarf/clawscarf/blob/main/plugins/access/README.md) · [Connections](https://github.com/clawscarf/clawscarf/blob/main/plugins/connections/README.md) · [Models](https://github.com/clawscarf/clawscarf/blob/main/deploy/models/README.md)
|
|
110
|
+
- **Customizing it:** [Recipes](https://github.com/clawscarf/clawscarf/blob/main/recipes/README.md) · [Packs](https://github.com/clawscarf/clawscarf/blob/main/packs/README.md) · [Runtime architecture](https://github.com/clawscarf/clawscarf/blob/main/runtime/README.md)
|
|
111
|
+
- **Helping build it:** [Contributing](https://github.com/clawscarf/clawscarf/blob/main/CONTRIBUTING.md) · [Development setup](https://github.com/clawscarf/clawscarf/blob/main/scripts/README.md) · [Report a bug](https://github.com/clawscarf/clawscarf/issues)
|
|
112
|
+
|
|
113
|
+
ClawScarf maintains a small [OpenClaw patch series](https://github.com/clawscarf/clawscarf/blob/main/runtime/openclaw/README.md)
|
|
114
|
+
for selected fixes and optional capabilities. Releases include its exact source provenance.
|
|
115
|
+
|
|
116
|
+
Built on [OpenClaw](https://github.com/openclaw/openclaw),
|
|
117
|
+
[NVIDIA OpenShell](https://github.com/NVIDIA/OpenShell) and
|
|
118
|
+
[LiteLLM](https://github.com/BerriAI/litellm).
|
|
119
|
+
[MIT licensed](https://github.com/clawscarf/clawscarf/blob/main/LICENSE), with [third-party notices](https://github.com/clawscarf/clawscarf/blob/main/THIRD_PARTY_NOTICES.md).
|
|
120
|
+
ClawScarf is an independent project.
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -12,7 +12,7 @@ the operator, companion and Connections plugin artifacts.
|
|
|
12
12
|
AGENTS.md is adapted from RawClaw's contributor guide at commit
|
|
13
13
|
[`f37a6e786fdd88857c21bd32140567874e281a8c`](https://github.com/raw-labs/rawclaw/blob/f37a6e786fdd88857c21bd32140567874e281a8c/AGENTS.md),
|
|
14
14
|
with the project owner's authorization. The Connections plugin and companion,
|
|
15
|
-
access service,
|
|
15
|
+
access service, native page flows and development checks also extract or adapt donor
|
|
16
16
|
source and regressions. Their local READMEs identify the incorporated paths and
|
|
17
17
|
deliberate boundary changes.
|
|
18
18
|
The reviewed donor has no top-level license file; do not infer a blanket license
|
|
@@ -24,12 +24,21 @@ embedded third-party notices for each extracted component before publication.
|
|
|
24
24
|
The runtime recipe references pinned OpenClaw and OpenShell artifacts in
|
|
25
25
|
[release/components.json](release/components.json). The access adapter imports
|
|
26
26
|
the published `@openclaw/gateway-client` package. Dependencies and their versions
|
|
27
|
-
are recorded in lockfiles
|
|
27
|
+
are recorded in lockfiles. The [downstream patch series](runtime/openclaw/README.md)
|
|
28
|
+
contains selected source differences and context from MIT-licensed OpenClaw; it is
|
|
29
|
+
not a complete vendored source tree.
|
|
28
30
|
The terminal installer uses MIT-licensed `@clack/prompts` 1.8.1. It is installed
|
|
29
31
|
from the operator lockfile and retains its upstream license with the dependency;
|
|
30
32
|
the installer does not vendor or modify the prompt library.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
Standalone CLI archives include the unmodified Node.js 24.19.0 executable from
|
|
34
|
+
[official Node downloads](https://nodejs.org/dist/v24.19.0/), verified against the
|
|
35
|
+
SHA-256 pins in [release/components.json](release/components.json). Each archive
|
|
36
|
+
retains Node's complete upstream LICENSE, including its bundled third-party notices,
|
|
37
|
+
at `node/LICENSE`. JavaScript dependencies retain their licenses in `node_modules`.
|
|
38
|
+
Gateway source builds apply the maintained patch series to upstream commit
|
|
39
|
+
`7bc487d39dc9e059bb9b19ea08152883022f83fe`. Release provenance records the
|
|
40
|
+
resulting tree and patch-set digest alongside the exact patches and their intent documents.
|
|
41
|
+
The [image build instructions](deploy/images/README.md) own source packaging.
|
|
33
42
|
OpenClaw's upstream [license](https://github.com/openclaw/openclaw/blob/7bc487d39dc9e059bb9b19ea08152883022f83fe/LICENSE)
|
|
34
43
|
is MIT. NVIDIA NemoClaw's [license](https://github.com/NVIDIA/NemoClaw/blob/main/LICENSE)
|
|
35
44
|
is Apache-2.0. Referencing their architecture is not incorporating their code.
|
|
@@ -58,12 +67,10 @@ qualification reports. Debian package copyright files remain under `/usr/share/d
|
|
|
58
67
|
This initial inventory does not establish complete transitive license review;
|
|
59
68
|
that release requirement remains in [TODO.md](TODO.md).
|
|
60
69
|
|
|
61
|
-
The Gateway and companion image recipes copy this file and the root [license](LICENSE)
|
|
62
|
-
to `/usr/share/licenses/clawscarf`.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
A local companion rebuild also verified the root and shadcn notices against build inputs. Relative
|
|
66
|
-
source links in this file refer to the source checkout, not image filesystem paths.
|
|
70
|
+
The Gateway and companion image recipes copy this file and the root [license](LICENSE)
|
|
71
|
+
verbatim to `/usr/share/licenses/clawscarf`. Native plugin pages use the shared
|
|
72
|
+
[page renderer](plugins/common/native-page.ts) and OpenClaw's host UI components.
|
|
73
|
+
Relative source links in this file refer to the source checkout, not image filesystem paths.
|
|
67
74
|
|
|
68
75
|
When bundling or adapting software, record its exact version and source, retain its
|
|
69
76
|
license and required notices, and identify modifications where required. Review
|
|
@@ -85,7 +92,7 @@ provenance. Paths below are relative to that donor, not files already present he
|
|
|
85
92
|
| Runtime/defaults and plugin packaging | runtime/openclaw/, deploy/images/hetzner/scripts/install-runtime.sh, plugins/connections/ | Reuse defaults, integrity checks and packaging; replace Hetzner, systemd, rootless-engine and host-path assumptions for the selected target. |
|
|
86
93
|
| Company login and entry | src/domains/access/, src/domains/installations/service/openclaw/entry/, src/apps/ingress/, src/composition/ingress.ts | Reuse OIDC/session/ingress mechanics and native identity semantics; replace organization/admission/placement wiring with standalone ownership. |
|
|
87
94
|
| Connections | plugins/connections/, src/domains/connections/, src/composition/connections/, catalogs/connections/, scripts/connectors-catalog*.ts | Preserve REST tools, Composio adapter, callbacks, account selection and grants; extract required persistence without the fleet control plane. |
|
|
88
|
-
| Connection account UI | src/apps/web/domains/connections/
|
|
95
|
+
| Connection account UI | src/apps/web/domains/connections/ | Adapt the account-management flow to native OpenClaw plugin pages and generated clients; omit the donor web shell. |
|
|
89
96
|
| Model gateway | runtime/ai-gateway/, deploy/ai-gateway/, src/composition/ai/ and applicable src/domains/ai/ code | Reuse LiteLLM integration/configuration and tests; replace hosted-source/admission/catalog wiring where needed. Do not recreate the removed inference proxy. |
|
|
90
97
|
| Acceptance | tests/ and corresponding helpers for identity, logout, ingress, native roles, connections, model gateway and browser flows | Transfer regressions with each capability; adapt fixtures and run against the new runtime. Donor success is not new-target acceptance. |
|
|
91
98
|
|
|
@@ -32,4 +32,4 @@ frontend native_node
|
|
|
32
32
|
default_backend native_gateway
|
|
33
33
|
|
|
34
34
|
backend native_gateway
|
|
35
|
-
server gateway "
|
|
35
|
+
server gateway "application:${CLAWSCARF_NODE_GATEWAY_PORT}" resolvers docker init-addr libc,none
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"families": ["0.0.0.0/1", "128.0.0.0/1", "2000::/3"],
|
|
3
|
+
"excluded": [
|
|
4
|
+
"0.0.0.0/8",
|
|
5
|
+
"10.0.0.0/8",
|
|
6
|
+
"100.64.0.0/10",
|
|
7
|
+
"127.0.0.0/8",
|
|
8
|
+
"169.254.0.0/16",
|
|
9
|
+
"172.16.0.0/12",
|
|
10
|
+
"192.0.0.0/24",
|
|
11
|
+
"192.0.2.0/24",
|
|
12
|
+
"192.88.99.0/24",
|
|
13
|
+
"192.168.0.0/16",
|
|
14
|
+
"198.18.0.0/15",
|
|
15
|
+
"198.51.100.0/24",
|
|
16
|
+
"203.0.113.0/24",
|
|
17
|
+
"224.0.0.0/4",
|
|
18
|
+
"240.0.0.0/4",
|
|
19
|
+
"2001::/23",
|
|
20
|
+
"2001:db8::/32",
|
|
21
|
+
"2002::/16",
|
|
22
|
+
"3fff::/20"
|
|
23
|
+
]
|
|
24
|
+
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.0-alpha.
|
|
2
|
+
"version": "0.1.0-alpha.11",
|
|
3
3
|
"engines": {
|
|
4
4
|
"node": ">=24.16.0 <25 || >=26.1.0"
|
|
5
5
|
},
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"node-pg-migrate": "9.0.0",
|
|
12
12
|
"openid-client": "6.8.8",
|
|
13
13
|
"pg": "8.23.0",
|
|
14
|
+
"posthog-node": "5.52.5",
|
|
14
15
|
"proper-lockfile": "4.1.2",
|
|
15
16
|
"undici": "8.10.2",
|
|
16
17
|
"yaml": "2.9.1",
|
package/packs/README.md
CHANGED
|
@@ -26,7 +26,7 @@ It preserves edited and unmanaged files, checks plan integrity and does not repl
|
|
|
26
26
|
uncertain mutations. Removing an agent remains destructive. Native monitor cleanup
|
|
27
27
|
uses OpenClaw's direct-local password authentication supplied by the
|
|
28
28
|
[runtime launcher](../runtime/README.md); trusted-proxy login remains in place for
|
|
29
|
-
people.
|
|
29
|
+
people. Use a runtime release containing that launcher contract.
|
|
30
30
|
|
|
31
31
|
The private runtime helper only inspects packaged source. Individual portable Claws
|
|
32
32
|
can be built with native `openclaw claws build <member-directory> --out <artifact.tgz>`.
|
|
@@ -106,8 +106,7 @@ after a Gateway restart, preservation of edited files and rejection of forwarded
|
|
|
106
106
|
password authentication. The copied fixture omits the model prerequisite; no model
|
|
107
107
|
inference is purchased. Set `CLAWSCARF_TEST_NATIVE_PACKS=1` to run it, optionally
|
|
108
108
|
with `CLAWSCARF_TEST_OPENCLAW` pointing at the packaged runtime launcher. The same
|
|
109
|
-
fixture
|
|
110
|
-
image plus the updated launcher.
|
|
109
|
+
fixture can also run inside a disposable OpenShell runtime to verify its packaged launcher.
|
|
111
110
|
[Operator binding checks](../tests/packs/connections.test.ts) cover current session,
|
|
112
111
|
exact grants and revision drift. [Transport checks](../tests/packs/transport.test.ts)
|
|
113
112
|
cover UUID dispatch and uncertain failure without replay. The optional
|
|
@@ -120,11 +119,5 @@ qualify trusted-proxy removal, external OAuth or connector execution.
|
|
|
120
119
|
[Execution-target checks](../tests/packs/execution-target.test.ts) use controlled operator
|
|
121
120
|
processes to verify unified runtime dispatch, missing binaries, denied policy
|
|
122
121
|
and runtime replacement. They do not replace live OpenShell qualification.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
and rejected a different port. This qualifies policy observation and matching;
|
|
126
|
-
it does not establish a successful connector request or application execution.
|
|
127
|
-
|
|
128
|
-
Run `CLAWSCARF_TEST_NATIVE_PACKS=1 pnpm exec tsx --test tests/packs/native.test.ts`
|
|
129
|
-
for the disposable native test. It writes isolated temporary state and uses the
|
|
130
|
-
pinned OpenClaw dependency installed for the Connections plugin.
|
|
122
|
+
[Network-tool verification](../deploy/images/network-tools/README.md) owns the native
|
|
123
|
+
TCP dependency check; successful policy matching does not establish endpoint reachability.
|