16 KiB
JiboOS V3.1 – Config locations inventory (for SSH tooling)
This workspace is a filesystem tree under build/. Most paths below are absolute paths as they exist on the robot.
If you’re using this repo as a staging image, the mapping is:
- Workspace path:
build/<ABS_PATH> - Robot path:
<ABS_PATH>
Example: build/usr/local/etc/jibo-jetstream-service.json corresponds to /usr/local/etc/jibo-jetstream-service.json on-robot.
Highest-level “what runs what”
/usr/local/etc/jibo-system-manager.json
Purpose: Master orchestrator config. Defines the service startup order, executables, arguments (including which -c /usr/local/etc/<service>.json is used), environment variables, and some device-level settings.
Why your tooling should care: if you need to know which process consumes a config file, this is the authoritative mapping.
Notable sections:
SystemManager.service.services[]name,executable,modes.<mode>.arguments(usually includes the config file path)modes.<mode>.enabled(turn a service on/off per mode)
SystemManager.skills.environmentJIBO_HUB_SHIM_HOST(host/port target for the hub shim)JIBO_GQA_ENDPOINT(HTTP endpoint used by the optional GQA shim)
credentials.path:/var/jibo/credentials.json(runtime config; controls region selection in Jetstream)wifi.*(wpa_supplicant + DHCP client options)time.*(timezone/localtime paths and NTP sync)
Apply/restart: system-manager itself (how depends on your init/systemd on the robot). Most changes only take effect on service restart or reboot.
Core robot service configs (/usr/local/etc/*.json)
These are the main knobs for the robot’s built-in services. Many follow this pattern:
WebCore.serverPort: HTTP port for the service<ServiceName>.registryPort: service registry port (usually8181)logging.*: log levels / syslog routing
/usr/local/etc/jibo-service-registry.json
Purpose: Service registry / management web endpoints.
- Ports:
8181(WebCore.serverPort,ServiceRegistry.registryPort)
Apply/restart: restart jibo-service-registry.
/usr/local/etc/jibo-jetstream-service.json
Purpose: Jetstream (hub client + streaming audio + wakeword/ASR pipeline glue).
Key knobs:
HubClient.override: where Jetstream sends/v1/listenand friends.hub_hostname,hub_port- Use this to point Jetstream to a local or server-hosted hub shim.
HubClient.listen_languageHubClient.encoding_type+encoding-settings:OGG_OPUS/FLACsettingsRecogHJ,HubAsr: timing for SOS/EOS and max speech timeouts
Apply/restart: restart jibo-jetstream-service.
/usr/local/etc/jibo-asr-service.json
Purpose: On-robot ASR service (WebSocket event stream + HTTP start/stop), logging, cloud/local STT selection.
Key knobs:
webCore.serverPort:8088AsrService.languageAsrService.log_audio,log_text,log_path, upload intervals/thresholdsAsrService.resident_task/resident_audio_channel: default always-on hotphrase task (e.g.audio_source_id":"alsa1")AsrService.task_templates: defines ASR pipelines
Apply/restart: restart jibo-asr-service.
Note: this file contains cloud credentials/keys in this build tree. Treat it as sensitive in your tooling (avoid echoing it into logs).
/usr/local/etc/jibo-tts-service.json
Purpose: On-robot TTS voice + audio output.
Key knobs:
webCore.serverPort:8089TTSService.resourcePath: voice resourcesTTSService.alsaPlaybackDevice: playback routingvoiceParams.*: speed, volume, max chars, etc.
Apply/restart: restart jibo-tts-service.
/usr/local/etc/jibo-nlu-service.json
Purpose: NLU service (local grammar/model parsing).
Key knobs:
webCore.serverPort:8787Service.nlu_data_dir: NLU model dataService.default_locale
Apply/restart: restart jibo-nlu-service.
/usr/local/etc/jibo-audio-service.json
Purpose: Audio routing/capture/playback device selection and audio processing thresholds.
Key knobs:
WebCore.serverPort:8383AudioService.alsaCaptureDevice,alsaPlaybackDeviceAudioService.router*latenciesAudioService.kinematic_model: points to/usr/local/etc/jibo-kinematic-model.json
Apply/restart: restart jibo-audio-service.
/usr/local/etc/jibo-body-service.json
Purpose: Low-level body control: serial devices, offsets, limits, battery thresholds, IMU calibration path.
Key knobs:
WebCore.serverPort:8282bodyBoard.*:/dev/ttyTHS0/1devices, offsets, flipped flags, accel/vel limitsimu.driver.calibrationFile:/var/jibo/imu/imu-cal.json(runtime file)BodyService.kinematic_model: points to/usr/local/etc/jibo-kinematic-model.json
Apply/restart: restart jibo-body-service.
/usr/local/etc/jibo-kinematic-model.json
Purpose: Robot kinematic model (frame transforms, masses, inertias). Used by audio/body/LPS.
Apply/restart: restart consumers (at least jibo-body-service, jibo-audio-service, and jibo-lps-service).
/usr/local/etc/jibo-media-service.json
Purpose: Media service camera configuration (CUDA/V4L2 device paths, capture params).
Key knobs:
WebCore.serverPort:7979MediaService.camera.*:/dev/video0,/dev/video1, flips, AE/AWB tuning
Apply/restart: restart jibo-media-service.
/usr/local/etc/jibo-lps-service.json
Purpose: LPS (Local Perception System) + internal media subsystem + visual awareness pipeline.
Key knobs:
WebCoreLPS.serverPort:8484CaptureSubsystem.camera_config_file:/usr/local/etc/lps/cameras.jsonEngineSubsystem.schemas.*:/usr/local/etc/lps/schemas/{normal,focused,minimal}.jsonEngineSubsystem.engine.state.entity_config_file:/usr/local/etc/lps/entityConfig.jsonEngineSubsystem.engine.state.geometry.*: camera model params in/var/jibo/lps/*.json(runtime files)
Apply/restart: restart jibo-lps-service.
/usr/local/etc/lps/cameras.json
Purpose: Camera device list + CUDA capture config + controls presets.
Apply/restart: restart jibo-lps-service (and anything using the same capture stack).
/usr/local/etc/lps/entityConfig.json
Purpose: Entity tracking parameters (people/head tracking, confidence thresholds, trackers, etc.).
Apply/restart: restart jibo-lps-service.
/usr/local/etc/lps/schemas/normal.json
/usr/local/etc/lps/schemas/focused.json
/usr/local/etc/lps/schemas/minimal.json
Purpose: LPS “schema” graphs: which detectors/actions run and at what cadence.
Apply/restart: restart jibo-lps-service.
/usr/local/etc/jibo-identity-service.json
Purpose: Identity/face recognition engine + model paths.
Key knobs:
WebCore.serverPort:8489IdentityService.engine.identifier.*: choose identifier type (deepid/eigenfaces/resnetfaceid) and model paths- Storage path:
/var/jibo/identity/*(runtime)
Apply/restart: restart jibo-identity-service.
/usr/local/etc/jibo-server-service.json
Purpose: Cloud/server connection service + notifications.
WebCore.serverPort:8888NotificationSubsystem.serverURLSuffix
Apply/restart: restart jibo-server-service.
/usr/local/etc/jibo-service-center-service.json
Purpose: Service-center web UI/service.
WebCore.serverPort:9797
Apply/restart: restart jibo-service-center-service.
/usr/local/etc/jibo-certification-service.json
Purpose: Certification service.
WebCore.serverPort:9292
Apply/restart: restart jibo-certification-service.
/usr/local/etc/jibo-system-monitoring-service.json
Purpose: System health/storage monitoring + health log upload.
Key knobs:
WebCore.serverPort:4111SystemMonitoringService.storage.semantic: path aliases used for reportinghealth.upload.arguments: uses/var/jibo/credentials.json(runtime)
Apply/restart: restart jibo-system-monitoring-service.
/usr/local/etc/jibo-test-capture-service.json
Purpose: Camera capture tools service (debug/QA).
WebCore.serverPort:7979(note: overlaps withjibo-media-service.jsonin this tree; only one should bind a given port at runtime)
Apply/restart: restart jibo-test-capture-service.
/usr/local/etc/jibo-test-capture.json
Purpose: Test capture tool runtime behavior (recording toggles, lock counts, display/profiler options).
Apply/restart: whatever tool/runner loads it (not a standard service config; used by capture tooling).
/usr/local/etc/jibo-camera-calibrator.json
Purpose: Camera calibration workflow + capture device selection. Writes calibration outputs into /var/jibo/lps.
Apply/restart: used by the calibrator tool; changes apply on next run.
/usr/local/etc/jibo-hub-shim.json
Purpose: Robot-local hub shim config (for running the shim on the robot).
Key knobs:
listen.*: bind/port/path for/v1/listenasrService.baseUrl: typicallyhttp://127.0.0.1:8088on-robot
Apply/restart: restart the hub-shim process (not a core Jibo service; depends on your deployment).
/usr/local/etc/jibo-sts.json
Purpose: Placeholder config for secure-transfer (STS). In this tree it is currently empty.
Apply/restart: N/A (service may use defaults or other config sources).
SSM / robot “mode” configuration (/usr/local/etc/jibo-ssm/*.json)
These files configure the Node-based SSM (service supervisor/skill launcher) and its ports per robot mode.
/usr/local/etc/jibo-ssm/jibo-ssm-normal.json/usr/local/etc/jibo-ssm/jibo-ssm-oobe.json/usr/local/etc/jibo-ssm/jibo-ssm-developer.json/usr/local/etc/jibo-ssm/jibo-ssm-int-developer.json
Common knobs:
services.SkillsService.port(HTTP port; typically8779)services.DevShell.*(developer ports:8686/8989/9191) (developer/int-developer)services.WifiService.region(e.g.api)RegistryClient.host/port(usually127.0.0.1:8181)logging.namespaces(fine-grained log routing)
Apply/restart: restart SSM / the Node process that loads these configs.
Hub shim (server-hosted) config
This is for the PC/server side shim that emulates the hub /v1/listen endpoint.
Workspace source:
hub-shim/config.example.json(template)hub-shim/config.json(local dev)hub-shim/systemd/jibo-hub-shim.service(service unit)hub-shim/systemd/jibo-hub-shim.env.example(env file template)
Server install locations (created by hub-shim/install-server.sh):
/opt/jibo-hub-shim/(code)/etc/jibo-hub-shim/config.json(config)/etc/jibo-hub-shim/jibo-hub-shim.env(setsJIBO_HUB_SHIM_CONFIG=/etc/jibo-hub-shim/config.json)/etc/systemd/system/jibo-hub-shim.service
Key knobs in the shim config JSON:
listen.bindHost,listen.port,listen.pathasrService.baseUrl: robot ASR base URL (e.g.http://<robot-ip>:8088if shim runs off-robot)asrService.audioSourceId: commonlyalsa1on-robotasrService.timeoutMsgqaShim.enabled+gqaShim.ollama.*: optional Ollama-backed “GQA shim” HTTP service
Apply/restart: systemctl restart jibo-hub-shim (server). For local dev: restart node index.js ./config.json.
AI bridge (PC-side) configuration
PC server (Python)
ai_bridge_server/server.py
Config sources:
- CLI args:
--host,--port(default run example uses0.0.0.0:8020) - Env vars:
OLLAMA_URL(defaulthttp://127.0.0.1:11434/api/chat)OLLAMA_MODEL(defaultphi3.5)WHISPER_MODEL(defaultbase) (audio endpoint only)
Apply/restart: restart the Python process.
Robot-side AI bridge client config
/opt/jibo/Jibo/Skills/@be/be/be/ai-bridge-config.json
Key knobs:
enabledmode:TEXTorAUDIOserverBaseUrl: your PC’s bridge server URL (e.g.http://<pc-ip>:8020)- ASR integration:
useAsrServiceStt,asrServiceHost,asrServicePort,asrAudioSourceId,asrTimeoutMs,asrAutoStart
- Behavior:
wakeupChitchatPhrases[]followupEnabled,followupDelayMsaiForwardingAllowedSkills[]gating
Apply/restart: restart the SkillsService / BE skill (or reboot).
Related dev-only override:
/opt/jibo/Jibo/Skills/@be/be/be/jibo-asr-service.local.json(local-run ASR config variant)
Skills menu / content configs (skill-layer “settings”)
These are not OS-level services, but they are configuration surfaces for skill UI/menu behavior.
/opt/jibo/Jibo/Skills/@be/menu-entries.d/*.json- Defines top-level menu entries/submenus (e.g.
childrenDirpoints at a skill folder containingmenuEntry.json).
- Defines top-level menu entries/submenus (e.g.
/opt/jibo/Jibo/Skills/*/menuEntry.json- Declares skill menu metadata (title/hidden/etc.).
/opt/jibo/Jibo/Skills/@be/be/menu/menus/*.json- Defines button menus (labels/icons/utterances + hit area polygon).
Apply/restart: restart SkillsService / reload the menu skill.
Init scripts and env-tunable configs (/etc/init.d/*)
These scripts are often the real place where ports and file paths are chosen, via environment variables.
/etc/init.d/S04jibo-asr-service
- Launches:
/usr/local/bin/jibo-asr-service -c /usr/local/etc/jibo-asr-service.json - PID file:
/var/run/jibo-asr-service.pid - Log:
/tmp/jibo-asr-service.log
/etc/init.d/S02jibo-skills-logd
Skills UDP log daemon.
Env vars:
JIBO_LOGD_HOST(default127.0.0.1)JIBO_LOGD_PORT(default15140)JIBO_LOGD_FILE(default/tmp/jibo-skills.log)
/etc/init.d/S03jibo-skills-logpanel
Skills web log panel.
Env vars:
JIBO_LOGPANEL_BIND(default0.0.0.0)JIBO_LOGPANEL_PORT(default15150)JIBO_LOGD_FILE(shared logfile path)
/etc/init.d/S21firewall
Firewall rules (iptables). Not JSON, but it is a major “settings surface”.
- Always allows SSH port
22 - Also explicitly allows SkillsService panel
8779and log panel15150 - Opens additional ports based on the current mode via
/usr/bin/jibo-getmode
Apply: run the init script (restart) or reboot.
Runtime-created or runtime-edited config files (referenced by the above)
These are not present in this build tree, but the services above reference them. Your SSH tooling will often want to read/edit these too.
/var/jibo/credentials.json- Used for: Jetstream
region-settingsselection; system health upload credentials.
- Used for: Jetstream
/var/jibo/imu/imu-cal.json- Used for: BodyService IMU calibration.
/var/jibo/lps/CameraModelParamsL.json/var/jibo/lps/CameraModelParamsR.json/var/jibo/lps/InterCameraTransform.json- Used for: LPS geometry.
/var/etc/timezone,/var/etc/localtime- Used for: system timezone.
Quick port index (useful for “is my edit live?” checks)
From configs in this tree:
- Service registry:
8181 - Body:
8282 - Audio:
8383 - Jetstream:
8090 - ASR:
8088 - TTS:
8089 - NLU:
8787 - Identity:
8489 - LPS:
8484(and internal media8486) - Media:
7979 - Server service:
8888 - System manager:
8585 - System monitoring:
4111 - Service center:
9797 - Certification:
9292 - Skills service:
8779(SSM) - Skills logd: UDP
15140 - Skills log panel:
15150 - Hub shim (this project):
9000(server-side shim) - AI bridge server (PC):
8020
Suggested conventions for your editor tool
- Always read/parse JSON with comment tolerance disabled (these are strict JSON files).
- Treat these keys as “high risk” and avoid accidentally printing them:
- Anything containing
appkey,key,credential,password,token.
- Anything containing
- After edits:
- Restart only the owning service (see sections above).
- Prefer
system-manager/ SSM restart only when necessary.