← Schema index / Config Reference

nodes schema (151-300)

Canonical generated docsThis section is generated from caco config schema --json. The table below preserves the runtime field path, type, required/default markers, and canonical description for every value in this slice.

Node definitions — machines in the cluster.

Field pathTypeRequiredDefaultCanonical description
└ nodes.agents.pi_daemon.tool_adapter_dirstringoptionalOwner-private mode-0700 directory for Cacophony per-session neutral filesystem adapter sockets; used only by host_adapter mode.
└ nodes.agents.pi_daemon.session_modeenumoptionalconfigured_session when api.enabled, otherwise host_adapterLogical-session launch boundary: configured_session uses the authenticated typed Session API; host_adapter retains filesystem-only protocol-v2 compatibility/isolation.
└ nodes.agents.pi_daemon.max_line_bytesusizeoptional1048576Maximum NDJSON command/response bytes accepted by the Cacophony client.
└ nodes.agents.pi_daemon.max_events_per_requestusizeoptional4096Maximum matching events retained while awaiting one terminal response.
└ nodes.agents.pi_daemon.max_sessionsu32optional128Maximum resident logical SDK sessions in the standalone host.
└ nodes.agents.pi_daemon.max_concurrent_turnsu32optional4Maximum concurrent model turns in the standalone host.
└ nodes.agents.pi_daemon.max_session_queue_depthu32optional32Maximum queued turns per logical session; zero allows only the active turn.
└ nodes.agents.pi_daemon.max_connectionsu32optional64Maximum Unix control connections in the standalone host, including wakes awaiting settlement.
└ nodes.agents.pi_daemon.max_api_connectionsu32optional64Maximum HTTP and upgraded WebSocket connections, independent of Unix connections.
└ nodes.agents.pi_daemon.max_rpc_hubsu32optional32Maximum concurrently attached RPC session generations.
└ nodes.agents.pi_daemon.max_rpc_replay_bytesu64optional2097152Replay byte budget per RPC hub.
└ nodes.agents.pi_daemon.max_rpc_total_replay_bytesu64optional67108864Aggregate replay budget; must cover max_rpc_hubs multiplied by max_rpc_replay_bytes.
└ nodes.agents.pi_daemon.max_residency_leasesu32optional256Maximum resident-runtime leases across attached clients.
└ nodes.agents.pi_daemon.recovery_open_timeout_msu64optional30000Startup recovery budget per retained runtime in milliseconds.
└ nodes.agents.pi_daemon.recovery_total_timeout_msu64optional120000Total startup runtime recovery budget in milliseconds.
└ nodes.agents.pi_daemon.node_max_old_space_size_mbu32optionalV8 old-space MiB for the Pi-Daemon service launch, not sibling services; not an RSS reservation or CPU quota. Node child tools may inherit NODE_OPTIONS.
└ nodes.agents.pi_daemon.idle_session_ttl_msu64optional1800000Idle SDK-session eviction interval in milliseconds; zero disables eviction.
└ nodes.agents.pi_daemon.apimapoptionalAuthenticated HTTP API listener settings; omission preserves socket-only launch byte-for-byte.
└ nodes.agents.pi_daemon.api.enabledboolrequiredExplicitly enable or disable the authenticated HTTP API listener.
└ nodes.agents.pi_daemon.api.bindstringoptionalAPI listener address; non-loopback plaintext also requires allow_insecure_http=true.
└ nodes.agents.pi_daemon.api.portu16optionalAPI listener port; required when enabled and distinct from the embedded Dashboard port.
└ nodes.agents.pi_daemon.api.token_filestringoptional$CACOPHONY_DIR/pi-daemon/api-tokenOwner-private bearer-token file reference; bearer bytes are forbidden in config.
└ nodes.agents.pi_daemon.api.allow_insecure_httpbooloptionalfalseExplicit acknowledgement required for non-loopback plaintext API binding.
└ nodes.agents.pi_daemon.webmapoptionalEmbedded browser Dashboard settings in the same supervised pi-daemon process.
└ nodes.agents.pi_daemon.web.enabledboolrequiredExplicitly enable or disable the embedded Dashboard in the supervised host process.
└ nodes.agents.pi_daemon.web.bindstringoptionalEmbedded Dashboard listener address.
└ nodes.agents.pi_daemon.web.portu16optionalDashboard listener port; required when enabled and distinct from the API port.
└ nodes.agents.pi_daemon.web.public_originstringoptionalExact plaintext HTTP browser origin override, without credentials, path, query, or fragment.
└ nodes.agents.pi_daemon.web.allow_insecure_httpbooloptionalOptional upstream plaintext HTTP setting.
└ nodes.agents.pi_daemon.ahpmapoptionalpi-daemon 1.0 AHP endpoint; when set, agent messages are delivered as AHP turns instead of socket wakes.
└ nodes.agents.pi_daemon.ahp.urlstringrequiredws:// or wss:// URL of the AHP host's /ahp endpoint (for example pi-daemon 1.0).
└ nodes.agents.pi_daemon.ahp.token_filestringrequiredOwner-private bearer-token file reference; bearer bytes are forbidden in config.
└ nodes.agents.pi_daemon.ahp.profilestringoptionalcacophonyHost profile (AHP provider) agent sessions are created with.
└ nodes.agents.pi_daemon.ahp.client_idstringoptionalcacophonyStable AHP client id; a resent message keeps its request id only while this is unchanged.
└ nodes.agents.pi_daemon.ahp.request_timeout_secsu64optional30Connection and request timeout in seconds.
└ nodes.agents.pi_daemon.ahp.turn_follow_secsu64optional3600How long Cacophony follows a turn for its end state; only an explicit delivery deadline cancels a turn.
└ nodes.agents.pi_daemon.ahp.identityenum[session_env_file, none]optionalsession_env_fileHow the host learns the agent's identity: session_env_file writes the agent's session.env beside its checkout for the host profile to load.
└ nodes.agents.pi_daemon.ahp.kindenum[ahp, pi-daemon]optionalahpWhat the host is: pi-daemon hosts also serve /chord and are attached with pi-client; the pi-daemon host defaults to pi-daemon.
└ nodes.agents.pi_daemon.ahp.chord_urlstringoptionalws:// or wss:// URL of a pi-daemon host's /chord endpoint; defaults to url with its trailing /ahp replaced by /chord.
└ nodes.agents.pi_daemon.ahp.apply_to_pibooloptionalfalseOpt pi and pi-on-demand TUI agents into /chord delivery through this pi-daemon host's node bridge, falling back to their native pane when the bridge has not accepted a message.
└ nodes.agents.pi_daemon.ahp.adaptor_extensionstringoptionalpi-durable-adaptor extension (absolute or ~/ path) that managed pi and pi-on-demand workspaces load with apply_to_pi, so the node's pi-daemon bridge serves their /chord session; unset loads nothing.
└ nodes.agents.pi_daemon.securitymapoptionalOwner-trusted host posture for a pi-daemon instance the operator owns.
└ nodes.agents.pi_daemon.security.allow_authority_root_overlapbooloptionalfalsePermit workloads rooted above pi-daemon state/credentials.
└ nodes.agents.pi_daemon.security.trusted_hostbooloptionalfalseAccept owner-declared session resources without the host's symlink/foreign-owner/foreign-writer authority gate.
└ nodes.agents.pi_daemon.security.resource_load_policyenumoptionalstrictstrict refuses a session when a declared resource fails to load; lenient records diagnostics like pi does.
└ nodes.agents.pi_daemon.paratenic_connectormapoptionalCacophony-owned Paratenic connector whose endpoint and credential reference are derived from this exact Pi-Daemon service.
└ nodes.agents.pi_daemon.paratenic_connector.enabledboolrequiredMake Cacophony supervise one Paratenic connector for this exact Pi-Daemon service.
└ nodes.agents.pi_daemon.paratenic_connector.provider_idstringoptionalpi-daemon-cacophonyStable AHP provider namespace, distinct from pi and the standalone pi-daemon provider; must match a configured launch descriptor.
└ nodes.agents.pi_daemon.paratenic_connector.binarystringoptionalparatenicReviewed Paratenic executable path/name.
└ nodes.agents.pi_daemon.paratenic_connector.poll_interval_msu64optional30000Pi-Daemon inventory polling interval in milliseconds.
└ nodes.agents.pi_daemon.paratenic_connector.request_timeout_msu64optional30000Pi-Daemon API and RPC setup timeout in milliseconds.
└ nodes.agents.pi_daemon.paratenic_connector.launch_presetsstringoptionalOwner-private reviewed managed-launch preset descriptor.
└ nodes.agents.pi_daemon.session_environmentmap[string, string]optionalNon-secret environment defaults enforced on every configured logical Pi session.
└ nodes.agents.ahp_hosts.<name>mapoptionalNode-local named AHP host for ahp agents; replaces the global agents.ahp_hosts entry of the same name.
└ nodes.agents.ahp_hosts.<name>.urlstringrequiredws:// or wss:// URL of the AHP host's /ahp endpoint (for example pi-daemon 1.0).
└ nodes.agents.ahp_hosts.<name>.token_filestringrequiredOwner-private bearer-token file reference; bearer bytes are forbidden in config.
└ nodes.agents.ahp_hosts.<name>.profilestringoptionalcacophonyHost profile (AHP provider) agent sessions are created with.
└ nodes.agents.ahp_hosts.<name>.client_idstringoptionalcacophonyStable AHP client id; a resent message keeps its request id only while this is unchanged.
└ nodes.agents.ahp_hosts.<name>.request_timeout_secsu64optional30Connection and request timeout in seconds.
└ nodes.agents.ahp_hosts.<name>.turn_follow_secsu64optional3600How long Cacophony follows a turn for its end state; only an explicit delivery deadline cancels a turn.
└ nodes.agents.ahp_hosts.<name>.identityenum[session_env_file, none]optionalsession_env_fileHow the host learns the agent's identity: session_env_file writes the agent's session.env beside its checkout for the host profile to load.
└ nodes.agents.ahp_hosts.<name>.kindenum[ahp, pi-daemon]optionalahpWhat the host is: pi-daemon hosts also serve /chord and are attached with pi-client; the pi-daemon host defaults to pi-daemon.
└ nodes.agents.ahp_hosts.<name>.chord_urlstringoptionalws:// or wss:// URL of a pi-daemon host's /chord endpoint; defaults to url with its trailing /ahp replaced by /chord.
└ nodes.agents.ahp_hosts.<name>.apply_to_pibooloptionalfalseOpt pi and pi-on-demand TUI agents into /chord delivery through this pi-daemon host's node bridge, falling back to their native pane when the bridge has not accepted a message.
└ nodes.agents.ahp_hosts.<name>.adaptor_extensionstringoptionalpi-durable-adaptor extension (absolute or ~/ path) that managed pi and pi-on-demand workspaces load with apply_to_pi, so the node's pi-daemon bridge serves their /chord session; unset loads nothing.
└ nodes.speechmapoptionalNode-level speech overrides.
└ nodes.speech.enabledbooloptionaltrueWhether speech (TTS/STT) is enabled. Set false on headless nodes.
└ nodes.speech.mutetrue|false|local|tts-daemon-runningoptionallocalStartup mute policy. true=start muted, false=start unmuted, local=restore last TUI toggle, tts-daemon-running=muted (TTS daemon handles speech).
└ nodes.speech.ttsmapoptionalText-to-speech defaults.
└ nodes.speech.tts.nu32optional1Maximum simultaneous agent speech slots. Default/effective 1; values <=1 play sequentially, values >1 allow that many concurrent TTS daemon playback slots.
└ nodes.speech.tts.overlap_secsu64optionalOptional cap on concurrent TTS daemon playback overlap. Omitted allows full-slot overlap; 0 disables intentional overlap; positive values cap overlap to that many seconds.
└ nodes.speech.tts.chimemapoptionalDeterministic per-agent chime prepended before TTS playback (generalized note count/length/gap config). Omit to disable; present defaults to a 3-note C minor chime with no transposition.
└ nodes.speech.tts.chime.enabledbooloptionaltrueEnable or disable this chime object.
└ nodes.speech.tts.chime.root_notestringoptionalCScale root note such as C, C#, Db, F sharp, or Bb.
└ nodes.speech.tts.chime.scalestringoptionalminorScale type for note slots: major or minor.
└ nodes.speech.tts.chime.transpose_semitonesi32optional0Semitone transposition applied after root/scale resolution. Aliases: transpose, transposition.
└ nodes.speech.tts.chime.num_notesu32optional3Number of notes derived from the agent id (1..=16). Defaults to 3, the historical fixed chime.
└ nodes.speech.tts.chime.note_length_msu32 or listoptional130Per-note duration in ms: a single uniform value or a per-note list (short lists pad with the 130ms default).
└ nodes.speech.tts.chime.gap_length_msu32 or listoptional35Gap between notes in ms: a single uniform value or a per-gap list of length num_notes-1 (short lists pad with the 35ms default).
└ nodes.speech.tts.modelstringoptionalTTS model identifier (provider-dependent).
└ nodes.speech.tts.command_templatestringoptionalShell command template for ad-hoc TTS adapters. Uses env vars such as $BODY and optional $OUTPUT_FILE.
└ nodes.speech.tts.voicestringoptionalDefault voice name.
└ nodes.speech.tts.voiceslist[string]optionalAdditional voice names merged into the capabilities voice list.
└ nodes.speech.tts.voice_rotationbooloptionaltrueAuto-assign distinct voices per agent sender.
└ nodes.speech.tts.speedf32optionalPlayback speed multiplier (0.25–4.0). 1.0 = normal.
└ nodes.speech.tts.speed_queue_modifierf32optional0.0Queue-length-aware speed modifier. Effective speed = min(base + speed_queue_modifier * shared_pending_queue_depth, max_speed). 0.0 (default) preserves base speed.
└ nodes.speech.tts.max_speedf32optional3.0Upper bound for queue-aware effective playback speed. Default 3.0.
└ nodes.speech.tts.agent_dmsmapoptionalOptional direct agent-message readout overlay. Inherits normal TTS settings unless fields here override them.
└ nodes.speech.tts.agent_dms.read_aloudbooloptionalfalseRead direct agent-message feed events aloud. Default false.
└ nodes.speech.tts.agent_dms.speedf32optionalOptional speed override for direct-message readout.
└ nodes.speech.tts.agent_dms.speed_queue_modifierf32optional0.0Queue-aware speed modifier for agent-DM readout (see speech.tts.speed_queue_modifier). 0.0 default preserves base.
└ nodes.speech.tts.agent_dms.max_speedf32optional3.0Upper bound for queue-aware agent-DM speed. Default 3.0.
└ nodes.speech.tts.langlist[string]optionalOrdered preferred TTS language codes. First non-blank entry is the default synthesis language; later entries are alternates/fallbacks. Empty or omitted resolves to en-US. The resolved default persists in TTS daemon runtime state across restarts.
└ nodes.speech.tts.voice_filtermapoptionalSox-based voice filter applied post-TTS. Preset, custom sox chain, or rotation pool.
└ nodes.speech.tts.voice_filter.presetstringoptionalNamed filter preset: telephone, hall, lofi, underwater, radio, whisper, cave, megaphone, robot, vintage.
└ nodes.speech.tts.voice_filter.customstringoptionalRaw sox effect chain string (e.g. "reverb 50 highpass 300").
└ nodes.speech.tts.voice_filter.rotationmapoptionalRotation pool for per-agent filter assignment.
└ nodes.speech.tts.voice_filter.rotation.presetslist[string]optionalPool of preset names to rotate through.
└ nodes.speech.tts.voice_filter.rotation.combine_with_voicebooloptionaltrueCombine filter rotation with voice rotation for unique agent identities.
└ nodes.speech.tts.disable_voice_filtersbooloptionalfalseDisable voice filters even if configured. Debugging kill switch.
└ nodes.speech.tts.daemon_syncbooloptionalProxy TUI speech controls to TTS daemon instead of local playback.
└ nodes.speech.tts.profilesmapoptionalNamed runtime-selectable TTS profile/effect bundles keyed by logical profile name. Each value uses the speech.tts shape; command-template profiles advertise their model label as profile.model or the map key.
└ nodes.speech.tts.profiles.<profile>.modelstringoptionalRuntime model label for this profile; defaults to the profile key when command_template is set.
└ nodes.speech.tts.profiles.<profile>.command_templatestringoptionalShell command/effect wrapper for this profile.
└ nodes.speech.tts.profiles.<profile>.voicestringoptionalDefault voice for this profile.
└ nodes.speech.tts.profiles.<profile>.voiceslist[string]optionalAdditional voices exposed while this profile registry is configured.
└ nodes.speech.tts.profiles.<profile>.speedf32optionalDefault playback speed for this profile.
└ nodes.speech.tts.personasmapoptionalDeclarative TTS persona/category mappings keyed by persona name. Each persona may provide profile/model/voice/speed/filter/director-note defaults while explicit per-event overrides still win.
└ nodes.speech.tts.personas.<persona>.profilestringoptionalNamed TTS profile/effect bundle for this persona.
└ nodes.speech.tts.personas.<persona>.modelstringoptionalTTS model override for this persona.
└ nodes.speech.tts.personas.<persona>.voicestringoptionalTTS voice override for this persona.
└ nodes.speech.tts.personas.<persona>.speedf32optionalPlayback speed override for this persona.
└ nodes.speech.tts.personas.<persona>.director_notestringoptionalOptional director note for downstream TTS resolvers.
└ nodes.speech.tts.hrtfmapoptionalOptional disabled-by-default HRTF processing seam for decoded TTS audio. Requires operator-provided dataset path and license/provenance metadata before processing is considered available.
└ nodes.speech.tts.hrtf.enabledbooloptionalfalseEnable HRTF processing. Default false/no-op.
└ nodes.speech.tts.hrtf.dataset_pathstringoptionalPath or documented built-in token for impulse-response data.
└ nodes.speech.tts.hrtf.dataset_licensestringoptionalLicense/provenance note for the selected dataset.
└ nodes.speech.tts.hrtf.backendstringoptionalProcessing backend identifier such as identity_stereo for deterministic tests.
└ nodes.speech.sttmapoptionalSpeech-to-text defaults.
└ nodes.speech.stt.modelstringoptionalSTT model identifier.
└ nodes.speech.stt.languagestringoptionalDefault STT language hint (ISO 639-1, e.g. en).
└ nodes.speech.stt.command_templatestringoptionalShell command template for ad-hoc STT adapters. Uses env vars such as $AUDIO_FILE and optional $TRANSCRIPT_FILE.
└ nodes.speech.stt.inputstringoptionalNamed input source for STT capture (references speech.io.inputs key).
└ nodes.speech.stt.vadmapoptionalTop-level VAD config for generic STT chunking. Applied before any STT backend.
└ nodes.speech.stt.vad.enabledbooloptionaltrueWhether VAD pre-processing is enabled.
└ nodes.speech.stt.vad.enginestringoptionalsileroVAD engine identifier (silero, webrtc, etc.).
└ nodes.speech.stt.vad.thresholdf32optional0.5Speech probability threshold (0.0–1.0).
└ nodes.speech.stt.vad.min_speech_duration_msu32optional250Minimum speech duration in ms; shorter segments are discarded.
└ nodes.speech.stt.vad.min_silence_duration_msu32optional300Minimum silence duration in ms before a segment ends.
└ nodes.speech.stt.vad.speech_pad_msu32optional100Padding in ms added before/after each speech segment.
└ nodes.speech.stt.vad.modelstringoptionalsilero-v6.2.0VAD model name (e.g. silero-v6.2.0).
└ nodes.speech.stt.dictationmapoptionalRolling-capture window config for scratchpad dictation.
└ nodes.speech.stt.dictation.chunk_secsu32optional10Rolling capture window in seconds.
└ nodes.speech.stt.dictation.overlap_secsu32optional1Overlap between consecutive chunks in seconds.
└ nodes.speech.stt.smart_appendmapoptionalPer-chunk smart-append cleanup config.
└ nodes.speech.stt.smart_append.enabledbooloptionaltrueWhether smart-append is enabled.
└ nodes.speech.stt.smart_append.modelstringoptionalfastText model to use for incremental cleanup.
└ nodes.speech.stt.rewritemapoptionalFinal whole-note rewrite config.
└ nodes.speech.stt.rewrite.enabledbooloptionaltrueWhether final rewrite is enabled.
└ nodes.speech.stt.rewrite.modelstringoptionalfastText model to use for the final cleanup pass.
└ nodes.speech.stt.rewrite.modestringoptionalfullRewrite mode: full or append.
└ nodes.speech.stt.scribblemapoptionalLocal scribble-based Whisper transcription config.
└ nodes.speech.stt.scribble.modelstringoptionallarge-v3-turbo-q8_0Whisper model name.
└ nodes.speech.stt.scribble.accelerationstringoptionaldefaultGPU acceleration backend: default, metal, vulkan, cuda, coreml, or cpu.
└ nodes.speech.stt.scribble.languagestringoptionalOptional language hint.
└ nodes.speech.stt.scribble.vadmapoptionalVoice activity detection config for scribble.
└ nodes.speech.stt.scribble.vad.enabledbooloptionaltrueWhether VAD is enabled.
└ nodes.speech.stt.scribble.vad.modelstringoptionalsilero-v6.2.0Silero VAD model name.
└ nodes.speech.stt.agentmapoptionalPer-target STT config for agent panes.
└ nodes.speech.stt.agent.rewritingbooloptionalfalseWhether smart rewriting is enabled for this target.