The worker keeps all of its state underDocumentation Index
Fetch the complete documentation index at: https://docs.blobhub.io/llms.txt
Use this file to discover all available pages before exploring further.
~/.blobhub-worker/ (mode 0700). YAML is used for every
file the user might want to read or edit.
This page covers the generic top-level files. Per-section runtime state lives under jobs/
in subdirectories owned by each section’s job_type, documented on the
job type’s filesystem page.
Top-level tree
File-by-file
identity.yaml — durable identity
Written by login. Records the user the worker acts as.
instance.yaml — single-instance lock
Atomically created at start with O_EXCL and removed on clean shutdown.
WORKER_ALREADY_RUNNING.
credentials.yaml — API key
Written by login, mode 0600. The worker refuses to start if the file is world-readable
(INSECURE_CREDENTIALS_PERMISSIONS).
config.yaml — sections
User-edited. Full reference — generic blocks plus the per-section session block and per-agent
settings — is on the Configuration page. The shape of each section depends on
its job_type.
logs/{instance_id}/worker.jsonl
Structured log, one JSON record per line. Captures preflight, section dispatch (attach / refuse),
transient API errors, and shutdown. Per-section detail goes to a section-scoped log under that
section’s jobs/ subtree.
This file is written only when the worker runs with --tui — the TUI redirects the log stream to
keep the terminal clean. In headless mode the same records go to stderr instead and no file is
written. Log rotation is not implemented; the file grows for the life of the instance.
The jobs/ subtree
Each running section gets a directory under ~/.blobhub-worker/jobs/. The naming convention and the
contents are owned by the section’s job_type. Today the only job type is
session_agent_harness, which lays out:

