# — Pi scenario profile # # Copy this directory to scenarios// and fill in every . # This file is the single source of truth for the launch contract; # scripts/deploy-scenario.sh renders it into /.pi/launch.json. # # Read docs/isolation-baseline.md before changing anything under [isolation]. [scenario] name = "" description = "" workspace = "/home/claw/pi-workspaces/" session_dir = "/home/claw/.local/share/pi-/sessions" service = ".service" # empty if launched by hand # "managed": this repository is authoritative and --apply is allowed. # "mirror": this file records a live configuration; --apply is refused. deploy = "managed" [model] provider = "zenmux" primary = "" fallback = "" # must also exist in runtime/agent/models.json.template [model.thinking] conversation = "high" extraction = "low" synthesis = "medium" [session] id_prefix = "" rotate_after_prompts = 20 rotate_after_messages = 50 strategy = "session-id" [isolation] # Defaults implement docs/isolation-baseline.md. Any `false` below widens what # the agent loads or can call and must be justified in a comment. no_builtin_tools = true # not --tools: a registry allowlist blocks dynamic tools no_extensions = true no_skills = true no_prompt_templates = true no_themes = true no_context_files = true # the only switch that stops parent-dir AGENTS.md approve = true # required to load .pi/SYSTEM.md [personality] # Both are system-prompt files, unaffected by --no-context-files. system_prompt = ".pi/SYSTEM.md" append_system_prompt = ".pi/APPEND_SYSTEM.md" context_files = [] [resources] extensions = [".pi/extensions/-tools.ts"] skills = [".pi/skills/"] [tools] # Enforced twice inside the extension: setActiveTools plus a tool_call block. # `read` is mandatory, not optional: pi emits the skills section only when a tool # named `read` is active, and skill bodies load through it. allow = ["read"] structured_output = [] receipt_tools = [] # tools whose results are user-visible state changes [tools.read_policy] roots = [".pi/skills"] # must include the skill dirs or bodies are unloadable extensions = [".md"] max_chars = 40000 [budget] turn_deadline_seconds = 180 startup_timeout_seconds = 60 [env] minimal = true allowlist = ["PATH", "HOME", "LANG", "TZ"] extra = [] [secrets] env_file = ""