2026-05-24 23:21:02 +02:00
|
|
|
CLAWDIE LIVE USB — SEED PARTITION
|
|
|
|
|
=================================
|
|
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
This FAT32 partition lets you customize the live USB BEFORE flashing or
|
|
|
|
|
between boots. On every boot, /usr/local/etc/rc.d/clawdie_live_seed imports
|
|
|
|
|
an allowlisted set of files from this partition. Editing a file and
|
2026-05-24 23:21:02 +02:00
|
|
|
rebooting re-applies it — the importer is idempotent.
|
|
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
USAGE FROM LINUX / macOS / WINDOWS
|
|
|
|
|
----------------------------------
|
2026-05-24 23:21:02 +02:00
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
1. Flash the image to USB (dd, or write the .img directly).
|
2026-05-24 23:21:02 +02:00
|
|
|
2. Mount the CLAWDIESEED partition (typically the third partition on the
|
2026-06-16 08:46:01 +02:00
|
|
|
stick, e.g. /dev/sdX3 on Linux):
|
2026-05-24 23:21:02 +02:00
|
|
|
|
|
|
|
|
sudo mount -t vfat /dev/sdX3 /mnt/clawdie-seed
|
|
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
3. Drop seed files (see the two layers below).
|
2026-05-24 23:21:02 +02:00
|
|
|
4. Unmount and boot the USB:
|
|
|
|
|
|
|
|
|
|
sync
|
|
|
|
|
sudo umount /mnt/clawdie-seed
|
|
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
|
|
|
|
|
LAYER 1 — SIMPLE ALLOWLIST (top level)
|
|
|
|
|
--------------------------------------
|
2026-05-24 23:21:02 +02:00
|
|
|
|
|
|
|
|
/authorized_keys Public SSH keys for the operator account.
|
|
|
|
|
Installed to ~clawdie/.ssh/authorized_keys
|
|
|
|
|
(mode 0600, owner clawdie:clawdie). CRLF
|
|
|
|
|
line endings are stripped automatically.
|
|
|
|
|
|
|
|
|
|
/ssh/authorized_keys Same as above, in a nested ssh/ namespace.
|
|
|
|
|
Takes precedence over /authorized_keys.
|
|
|
|
|
|
|
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
LAYER 2 — PER-AGENT DIRECTORIES
|
|
|
|
|
-------------------------------
|
|
|
|
|
|
|
|
|
|
Create one directory per agent. THE DIRECTORY NAME IS THE AGENT NAME.
|
|
|
|
|
Inside it, any of these are honored:
|
|
|
|
|
|
|
|
|
|
/<agent>/env Plaintext KEY=VALUE lines. Merged into the
|
|
|
|
|
agent's .env (mode 0600). Keys you list
|
|
|
|
|
replace existing values; keys you omit are
|
|
|
|
|
preserved. Blank/`#` lines are ignored.
|
|
|
|
|
Typical contents: provider API keys
|
|
|
|
|
(ANTHROPIC_API_KEY=..., ZAI_API_KEY=...),
|
2026-06-20 07:27:51 +02:00
|
|
|
or the Vaultwarden bootstrap
|
2026-06-16 08:46:01 +02:00
|
|
|
(BW_CLIENTID/BW_CLIENTSECRET/BW_PASSWORD).
|
2026-06-20 07:27:51 +02:00
|
|
|
The Vaultwarden endpoint is baked into the
|
|
|
|
|
image; do not put it on the seed unless you
|
|
|
|
|
are deliberately overriding it.
|
2026-06-16 08:46:01 +02:00
|
|
|
|
|
|
|
|
/<agent>/harness.toml Which agent harness to run + basic knobs:
|
|
|
|
|
|
|
|
|
|
harness = "zot" # zot | pi | local
|
|
|
|
|
model = "claude-opus-4-8"
|
|
|
|
|
cost_mode = "smart"
|
|
|
|
|
|
|
|
|
|
`harness` must be one of zot, pi, local
|
|
|
|
|
(Colibri's AgentRuntime). Recorded for the
|
|
|
|
|
runtime to launch the right harness.
|
|
|
|
|
|
|
|
|
|
/<agent>/soul/ A layered-soul backup tree (SOUL.md, USER.md,
|
|
|
|
|
IDENTITY.md, memories/, skills/, ...). Staged
|
|
|
|
|
under /var/db/clawdie/seed/<agent>/soul for
|
|
|
|
|
the agent workspace to load.
|
|
|
|
|
|
|
|
|
|
/<agent>/ssh/authorized_keys Public SSH keys for this agent.
|
|
|
|
|
|
|
|
|
|
Agent directory names may contain only A-Z a-z 0-9 . _ - (no spaces or
|
|
|
|
|
slashes). The name `ssh` is reserved for Layer 1.
|
2026-05-24 23:21:02 +02:00
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
LIVE USB vs DEPLOYED
|
|
|
|
|
--------------------
|
2026-05-24 23:21:02 +02:00
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
The live USB is single-agent: the FIRST agent directory (alphabetical) maps
|
|
|
|
|
to the clawdie user and becomes the active agent (recorded at
|
|
|
|
|
/var/db/clawdie/seed/active-agent). Additional agent directories are staged
|
|
|
|
|
and logged, but a second live identity is NOT provisioned here — multi-agent
|
|
|
|
|
provisioning is a deployed-host feature.
|
2026-05-24 23:21:02 +02:00
|
|
|
|
|
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
CONSUME-AND-SHRED (optional)
|
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
|
|
Drop an empty file named `shred` at the seed root to have the importer wipe
|
|
|
|
|
all `env` files from this partition AFTER importing them, so secrets do not
|
|
|
|
|
persist on the stick:
|
|
|
|
|
|
|
|
|
|
/shred
|
|
|
|
|
|
|
|
|
|
This needs a writable seed; if the remount fails the env files are left in
|
|
|
|
|
place and the importer logs it. Off unless you add the marker, per stick.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SECURITY — READ THIS
|
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
|
|
- This is FAT32: UNENCRYPTED and readable by anyone who plugs the stick
|
|
|
|
|
into any machine. There is no access control on this partition.
|
|
|
|
|
- By operator decision, env files here MAY carry secrets (API keys, and
|
|
|
|
|
the Vaultwarden bootstrap, which includes the master password). That is a
|
|
|
|
|
deliberate trade-off: treat every seeded stick as SECRET-BEARING MEDIA.
|
|
|
|
|
Do not lose it; do not lend it; prefer `shred` for one-shot provisioning.
|
|
|
|
|
- Imported secrets land mode 0600 owned by the agent user. Public SSH keys
|
|
|
|
|
are not secret and are always safe to place here.
|
2026-05-24 23:21:02 +02:00
|
|
|
- The importer runs at every boot. Removing a file from the seed and
|
2026-06-16 08:46:01 +02:00
|
|
|
rebooting does NOT remove an already-installed copy from the live system;
|
|
|
|
|
re-flash the image to wipe state.
|
|
|
|
|
|
|
|
|
|
The importer logs to /var/log/clawdie-live-seed.log
|
|
|
|
|
(`service clawdie_live_seed status` tails it).
|
|
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
|
|
|
|
|
CONTACT
|
|
|
|
|
-------
|
|
|
|
|
|
2026-06-16 08:46:01 +02:00
|
|
|
clawdie.si — repository: clawdie-iso, files:
|
2026-05-24 23:21:02 +02:00
|
|
|
live/operator-session/clawdie-live-seed
|
2026-06-16 08:46:01 +02:00
|
|
|
live/operator-session/clawdie-live-seed.README.txt
|