惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
美团技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
WordPress大学
WordPress大学
月光博客
月光博客
宝玉的分享
宝玉的分享
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
A
About on SuperTechFans
J
Java Code Geeks
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
Vercel News
Vercel News
博客园 - 聂微东

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
feat(onboard): add skip bootstrap flag (#71218) · opencla...
Patrick-Eric · 2026-04-25 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -23,6 +23,7 @@ Interactive onboarding for local or remote Gateway setup.

2323

openclaw onboard

2424

openclaw onboard --flow quickstart

2525

openclaw onboard --flow manual

26+

openclaw onboard --skip-bootstrap

2627

openclaw onboard --mode remote --remote-url wss://gateway-host:18789

2728

```

2829

@@ -115,6 +116,7 @@ Non-interactive local gateway health:

115116

- Unless you pass `--skip-health`, onboarding waits for a reachable local gateway before it exits successfully.

116117

- `--install-daemon` starts the managed gateway install path first. Without it, you must already have a local gateway running, for example `openclaw gateway run`.

117118

- If you only want config/workspace/bootstrap writes in automation, use `--skip-health`.

119+

- If you manage workspace files yourself, pass `--skip-bootstrap` to set `agents.defaults.skipBootstrap: true` and skip creating `AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, and `BOOTSTRAP.md`.

118120

- On native Windows, `--install-daemon` tries Scheduled Tasks first and falls back to a per-user Startup-folder login item if task creation is denied.

119121
120122

Interactive onboarding behavior with reference mode:

Original file line numberDiff line numberDiff line change

@@ -28,8 +28,10 @@ inside a sandbox workspace under `~/.openclaw/sandboxes`, not your host workspac

2828
2929

```json5

3030

{

31-

agent: {

32-

workspace: "~/.openclaw/workspace",

31+

agents: {

32+

defaults: {

33+

workspace: "~/.openclaw/workspace",

34+

},

3335

},

3436

}

3537

```

@@ -43,7 +45,7 @@ If you already manage the workspace files yourself, you can disable bootstrap

4345

file creation:

4446
4547

```json5

46-

{ agent: { skipBootstrap: true } }

48+

{ agents: { defaults: { skipBootstrap: true } } }

4749

```

4850
4951

## Extra workspace folders

Original file line numberDiff line numberDiff line change

@@ -44,7 +44,7 @@ If a file is missing, OpenClaw injects a single “missing file” marker line (

4444

To disable bootstrap file creation entirely (for pre-seeded workspaces), set:

4545
4646

```json5

47-

{ agent: { skipBootstrap: true } }

47+

{ agents: { defaults: { skipBootstrap: true } } }

4848

```

4949
5050

## Built-in tools

Original file line numberDiff line numberDiff line change

@@ -22,6 +22,10 @@ On the first agent run, OpenClaw bootstraps the workspace (default

2222

- Writes identity + preferences to `IDENTITY.md`, `USER.md`, `SOUL.md`.

2323

- Removes `BOOTSTRAP.md` when finished so it only runs once.

2424
25+

## Skipping bootstrapping

26+
27+

To skip this for a pre-seeded workspace, run `openclaw onboard --skip-bootstrap`.

28+
2529

## Where it runs

2630
2731

Bootstrapping always runs on the **gateway host**. If the macOS app connects to

Original file line numberDiff line numberDiff line change

@@ -87,8 +87,10 @@ Optional: choose a different workspace with `agents.defaults.workspace` (support

8787
8888

```json5

8989

{

90-

agent: {

91-

workspace: "~/.openclaw/workspace",

90+

agents: {

91+

defaults: {

92+

workspace: "~/.openclaw/workspace",

93+

},

9294

},

9395

}

9496

```

@@ -97,8 +99,10 @@ If you already ship your own workspace files from a repo, you can disable bootst

9799
98100

```json5

99101

{

100-

agent: {

101-

skipBootstrap: true,

102+

agents: {

103+

defaults: {

104+

skipBootstrap: true,

105+

},

102106

},

103107

}

104108

```

Original file line numberDiff line numberDiff line change

@@ -25,11 +25,14 @@ openclaw onboard --non-interactive \

2525

--gateway-bind loopback \

2626

--install-daemon \

2727

--daemon-runtime node \

28+

--skip-bootstrap \

2829

--skip-skills

2930

```

3031
3132

Add `--json` for a machine-readable summary.

3233
34+

Use `--skip-bootstrap` when your automation pre-seeds workspace files and does not want onboarding to create the default bootstrap files.

35+
3336

Use `--secret-input-mode ref` to store env-backed refs in auth profiles instead of plaintext values.

3437

Interactive selection between env refs and configured provider refs (`file` or `exec`) is available in the onboarding flow.

3538
Original file line numberDiff line numberDiff line change

@@ -260,6 +260,7 @@ is only a legacy import source.

260260

Typical fields in `~/.openclaw/openclaw.json`:

261261
262262

- `agents.defaults.workspace`

263+

- `agents.defaults.skipBootstrap` when `--skip-bootstrap` is passed

263264

- `agents.defaults.model` / `models.providers` (if Minimax chosen)

264265

- `tools.profile` (local onboarding defaults to `"coding"` when unset; existing explicit values are preserved)

265266

- `gateway.*` (mode, bind, auth, tailscale)

Original file line numberDiff line numberDiff line change

@@ -133,6 +133,16 @@ describe("registerOnboardCommand", () => {

133133

);

134134

});

135135
136+

it("forwards --skip-bootstrap to setup wizard options", async () => {

137+

await runCli(["onboard", "--skip-bootstrap"]);

138+

expect(setupWizardCommandMock).toHaveBeenCalledWith(

139+

expect.objectContaining({

140+

skipBootstrap: true,

141+

}),

142+

runtime,

143+

);

144+

});

145+
136146

it("parses --mistral-api-key and forwards mistralApiKey", async () => {

137147

await runCli(["onboard", "--mistral-api-key", "sk-mistral-test"]);

138148

expect(setupWizardCommandMock).toHaveBeenCalledWith(

Original file line numberDiff line numberDiff line change

@@ -133,6 +133,7 @@ export function registerOnboardCommand(program: Command) {

133133

.option("--daemon-runtime <runtime>", "Daemon runtime: node|bun")

134134

.option("--skip-channels", "Skip channel setup")

135135

.option("--skip-skills", "Skip skills setup")

136+

.option("--skip-bootstrap", "Skip creating default agent workspace files")

136137

.option("--skip-search", "Skip search provider setup")

137138

.option("--skip-health", "Skip health check")

138139

.option("--skip-ui", "Skip Control UI/TUI prompts")

@@ -189,6 +190,7 @@ export function registerOnboardCommand(program: Command) {

189190

daemonRuntime: opts.daemonRuntime as GatewayDaemonRuntime | undefined,

190191

skipChannels: Boolean(opts.skipChannels),

191192

skipSkills: Boolean(opts.skipSkills),

193+

skipBootstrap: Boolean(opts.skipBootstrap),

192194

skipSearch: Boolean(opts.skipSearch),

193195

skipHealth: Boolean(opts.skipHealth),

194196

skipUi: Boolean(opts.skipUi),

Original file line numberDiff line numberDiff line change

@@ -1,3 +1,4 @@

1+

import { setConfigValueAtPath } from "../config/config-paths.js";

12

import type { DmScope } from "../config/types.base.js";

23

import type { OpenClawConfig } from "../config/types.openclaw.js";

34

import type { ToolProfileId } from "../config/types.tools.js";

@@ -32,3 +33,13 @@ export function applyLocalSetupWorkspaceConfig(

3233

},

3334

};

3435

}

36+
37+

export function applySkipBootstrapConfig(cfg: OpenClawConfig): OpenClawConfig {

38+

const next = structuredClone(cfg);

39+

setConfigValueAtPath(

40+

next as Record<string, unknown>,

41+

["agents", "defaults", "skipBootstrap"],

42+

true,

43+

);

44+

return next;

45+

}