Downcity
Configuration

Project Configuration (downcity.json)

Most-used project-level fields and practical cautions

Project Configuration (downcity.json)

downcity.json is the project runtime entrypoint.

{
  "name": "my-agent",
  "execution": {
    "type": "api",
    "modelId": "quality"
  },
  "start": {
    "host": "127.0.0.1",
    "port": 5314
  }
}

Cautions

  1. A project now must declare execution, and the mode is fixed to api.
  2. execution.modelId must exist in the console model pool.
  3. start.host/start.port affects default CLI routing.
  4. Keep project-level config in downcity.json, including plugins and execution behavior.
  5. Local shell / CLI commands now always run inside a sandbox. Top-level sandbox only adjusts the boundary.

Execution Modes

If you want to use the console-global model pool:

{
  "execution": {
    "type": "api",
    "modelId": "default"
  }
}

Shell Sandbox

In the current version, shell / CLI commands always run inside a sandbox. Project-level sandbox only adjusts the boundary:

{
  "sandbox": {
    "networkMode": "off",
    "writablePaths": [".", ".downcity"],
    "envAllowlist": ["PATH", "LANG", "TERM", "SHELL"]
  }
}

Current behavior:

  • Affects both the shell plugin path and kind=script task execution
  • Current first-class backend is macOS using built-in sandbox-exec
  • Sandbox cannot be disabled and shell execution does not fall back to an unrestricted host process
  • Host paths not mounted into the sandbox are not visible
  • writablePaths must stay inside the project root
  • Network is open by default; omitting the field behaves like networkMode="full"
  • networkMode="off" blocks network access
  • networkMode="restricted" is currently handled the same as open network
  • networkMode="full" allows network access from shell commands

Common commands

studio config get
studio config get execution
studio config set start.port 3100