config.example.yaml
Rama main · réplica de lectura del repositorio original.
# Copy to $GLASSYS_DATA_DIR/config.yaml (default: ./data/config.yaml).
# Secrets do not belong here — use environment variables or data/secrets.json.
space:
name: Glassys # Short host label in the PWA topbar. Editable in Settings.
locale: en
theme: dark # dark | light | system
onboarding:
completed: false
agent:
# cursor | claude | opencode | gemini | codex | acp
adapter: cursor
# Absolute host path. Empty until the wizard sets it.
cwd: ""
# Empty until the adapter fills its default (Cursor: grok-4.6 extra high).
model: ""
modelParams: []
# Opaque per adapter. Defaults below are for Cursor (the example adapter).
# Cursor: settingSources, sandbox, autoRun.
# autoRun false → local.autoReview (classifier denies; headless SDK cannot prompt).
# Claude: permissionMode, autoRun.
# ACP: command, args, registryId, autoRun (required command after onboarding too).
# Codex: sandboxMode (read-only | workspace-write | danger-full-access; empty keeps ~/.codex/config.toml).
# OpenCode: model only; every permission it asks for is refused (Glassys has no one to ask).
# Gemini: model only; no Glassys deny lever.
options:
settingSources:
- project
- user
sandbox: false
autoRun: true
network:
bind: 127.0.0.1
port: 8787
publicUrl: ""
allowedOrigins: []
wsKeepaliveSeconds: 25 # Clamped to 15–30. Applied per WebSocket connection.
# true when a reverse proxy on this host (Caddy, cloudflared) fronts the gateway: login limits
# then key on X-Forwarded-For instead of 127.0.0.1, so one visitor cannot lock everyone out.
# Leave false when the gateway is reachable directly. Env: GLASSYS_TRUST_PROXY=1.
trustProxy: false
security:
# none | cloudflare-access | header
edgeAuth: none
cloudflare:
teamDomain: ""
audience: ""
identityHeader: ""
sessionTtlHours: 168
display:
thinkingDefault: collapsed
diffPreview: true
shellLinesVisible: 12
session:
# Gateway process start only. Switching threads / the next send still resume when the adapter can.
resumeOnStart: true
queue: fifo
stallSeconds: 180 # No run events for this long → run.stalled. 0 disables.
notifyOnComplete: true # Web Push when a run finishes, errors, stalls, or a tool is denied.
# Schedules and push subscriptions live in the data dir (schedules.json, push-subscriptions.json), not here.
# Cron does not catch up after downtime; one-shot `at` jobs that are already due do fire.
prompts:
templates:
- id: status
slash: status
title: Host status
text: Check systemd/launchd failed units, disk usage, and memory. Summarize what needs attention.
- id: disk
slash: disk
title: Disk usage
text: Report filesystem usage and large directories that look abnormal.
- id: failed-units
slash: failed-units
title: Failed units
text: List failed or degraded services and recent journal errors.