# turnstone config — mounted into the VM at ~/.config/turnstone/config.toml # Reference: turnstone.example.toml in the upstream repo. [auth] # JWT signing secret. Auth is always enabled; generate once: # python -c 'import secrets; print(secrets.token_hex(32))' jwt_secret = "CHANGE_ME_JWT_SECRET" # Models are defined here or via the admin console Models tab. [models.tensorx] # TensorX — OpenAI-compatible gateway (same backend this opencode uses). model = "z-ai/glm-5.3-flash" provider = "openai" base_url = "https://api.tensorx.ai/v1" api_key = "CHANGE_ME_TENSORX_API_KEY" context_window = 1000000 # Self-hosted provider later? Any OpenAI-compatible endpoint reachable # from the guest works, e.g. llama.cpp on the LAN: # [models.local] # model = "..." # provider = "openai" # base_url = "http://:/v1" # max_concurrency = 1 [database] # SQLite file on the host-mounted data/ share; survives VM reboots. # (NOTE: for SQLite this is `path` — `url` is only used by PostgreSQL.) path = "/var/lib/turnstone/turnstone.db" [tools] # Workspace surfaced to the model (mounted from ./work on the host). workspace_dir = "/home/marvin/work"