Skip to main content

agent-up.json Reference

This page documents the JSON contract for agent-up.json.

Property names are shown in the JSON form Agent-Up examples use. Existing configurations that omit newly added optional properties remain valid.

Root Object

PropertyTypeRequiredDefaultDescription
namestringYesnoneHuman-readable project name shown for the workspace.
displayDisplayNoderived workspace visualsOptional Desktop-only workspace list label overrides.
applicationsarray of ApplicationNo[]Legacy local process applications launched directly from executable-plus-arguments commands.
servicesarray of Docker ServiceNo[]Legacy Docker service definitions.
dotnetarray of .NET ApplicationNo[].NET applications launched through the Agent-Up .NET capability.
dockerarray of Docker CapabilityNo[]Docker containers launched through the Agent-Up Docker capability.
promptsPromptsNodefault Agent-Up guidanceOptional repository-specific guidance for AI agents.

Display Object

Used at the root to make Desktop workspace list entries more expressive. These values only affect Desktop visuals; repository path, worktree path, Git branch detection, commit identity, audit identity, and process working directories still come from the real workspace.

PropertyTypeRequiredDefaultDescription
namestringNoroot nameWorkspace list title override.
branchstringNodetected Git branch or not on a git branchWorkspace list subtitle override.

Prompts Object

Used at the root to refine default AI-agent behavior for this repository.

PropertyTypeRequiredDefaultDescription
commitPolicystringNoAgent-Up default commit policyRepository-specific commit guidance. Agents should use it when choosing commit prefixes, scopes, and queue grouping.

Default commit policy: scope commit messages to the queued slice; use feat for user-facing additions, fix for user-facing fixes, test for test-only or smoke-validation changes, refactor for no-behavior source changes, chore for maintenance, packaging, CI, or tooling with no customer runtime effect, style for CSS/HTML-only changes, and docs for documentation-only changes.

Application Object

Used in applications.

PropertyTypeRequiredDefaultDescription
namestringYesnoneApplication display name. Names are used in application lists and start/stop/restart operations.
commandstringYesnoneExecutable-plus-arguments command used to start the application. Agent-Up launches it directly from the configured path, rejects shell expressions, and requires the first token to be an allowlisted executable name such as node, npm, dotnet, python, cargo, go, java, make, mvn, gradle, bun, pnpm, or yarn.
pathstring or nullNoworkspace rootWorking directory for the command, relative to the workspace root. Use null or omit it to run from the workspace root.
portsarray of PortNo[]Port declarations owned and allocated by the Server.
environmentobject of string valuesNo{}Inline environment variables for this process. Use for values safe to store in agent-up.json and Server workspace state.
environmentFilesarray of stringsNo[]Workspace-relative .env-style files loaded when the process starts.

Example:

{
"name": "Web",
"command": "npm run dev",
"path": "web",
"environmentFiles": [".env"],
"environment": {
"NODE_ENV": "development"
},
"ports": [
{ "variable": "WEB_PORT", "defaultPort": 5173, "protocol": "http" }
]
}

.NET Application Object

Used in dotnet.

PropertyTypeRequiredDefaultDescription
namestringYesnoneApplication display name.
sdkstring or nullNono version requirementRequired .NET SDK version expression, such as 10.0.x. The .NET capability validates this before launch.
run.NET RunYesnonedotnet run launch inputs.
portsarray of PortNo[]Port declarations owned and allocated by the Server.
environmentobject of string valuesNo{}Inline environment variables for this process.
environmentFilesarray of stringsNo[]Workspace-relative .env-style files loaded when the process starts.

Example:

{
"name": "API",
"sdk": "10.0.x",
"run": {
"project": "src/Api/Api.csproj",
"arguments": ["--no-launch-profile"]
},
"environmentFiles": [".env"],
"environment": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"ports": [
{ "variable": "API_PORT", "defaultPort": 5000, "protocol": "http" }
]
}

.NET Run Object

Used as dotnet[].run.

PropertyTypeRequiredDefaultDescription
projectstringYesnoneProject path passed to dotnet run --project.
argumentsarray of stringsNo[]Additional command arguments passed to dotnet run.

Docker Capability Object

Used in docker.

PropertyTypeRequiredDefaultDescription
namestringYesnoneContainer display name.
imagestringYesnoneDocker image reference.
portsarray of PortNo[]Container port declarations owned and allocated by the Server.
environmentobject of string valuesNo{}Inline container environment variables passed as Docker -e arguments.
volumesarray of stringsNo[]Docker volume mappings passed as Docker -v arguments.
environmentFilesarray of stringsNo[]Workspace-relative files passed to Docker as --env-file arguments.

Example:

{
"name": "Database",
"image": "postgres:17",
"environmentFiles": [".env.database"],
"environment": {
"POSTGRES_USER": "inventory"
},
"volumes": ["inventory-pgdata:/var/lib/postgresql/data"],
"ports": [
{ "variable": "DB_PORT", "defaultPort": 5432, "protocol": "tcp" }
]
}

Docker Service Object

Used in services. This is the legacy Docker service shape. It remains supported for compatibility.

PropertyTypeRequiredDefaultDescription
namestringYesnoneService display name.
imagestringYesnoneDocker image reference.
portsarray of PortNo[]Container port declarations owned and allocated by the Server.
environmentobject of string valuesNo{}Inline container environment variables passed as Docker -e arguments.
volumesarray of stringsNo[]Docker volume mappings passed as Docker -v arguments.
environmentFilesarray of stringsNo[]Workspace-relative files passed to Docker as --env-file arguments.

Port Object

Used in applications[].ports, dotnet[].ports, docker[].ports, and services[].ports.

PropertyTypeRequiredDefaultDescription
variablestring or nullNonullEnvironment variable that receives the Server-allocated host port. Omit or set to null when no environment variable should be injected.
defaultPortintegerYesnonePreferred or conventional port for the application/container. Agent-Up uses this as allocation intent and container target port for Docker mappings.
protocolstringNohttpProtocol label for the port, usually http or tcp.
healthCheckstring or nullNonullHTTP path the Server probes every 5 seconds to determine port health (e.g. "/health"). When set, the port LED shows amber (Checking) until the path responds with a non-5xx status, then green (Healthy); red (Unhealthy) if it later fails. Omitting this field falls back to a client-side TCP probe.

For local processes, every application receives the full workspace port map. For Docker containers, Agent-Up publishes each declared port as allocatedHostPort:defaultPort and adds the host.agent-up hostname for reaching host-run workspace applications from inside the container when those applications listen on an address reachable from Docker's host gateway. Loopback-only host listeners are not reachable from containers through this alias.

Environment Object

Used as environment on all launchable entries.

ConstraintDescription
TypeJSON object.
KeysEnvironment variable names.
ValuesStrings.
StorageStored in agent-up.json and Server workspace state.
Intended useNon-secret values, feature flags, and development mode switches.

Docker container environment values can reference workspace port variables with ${VARIABLE}. Agent-Up resolves those references from the workspace-wide allocated port map before starting the container.

Example:

{
"environment": {
"ASPNETCORE_ENVIRONMENT": "Development",
"FEATURE_FLAGS": "search,checkout"
}
}

Environment Files Array

Used as environmentFiles on all launchable entries.

ConstraintDescription
TypeArray of strings.
Path rulesEach path is relative to the workspace root. Absolute paths and paths that escape the workspace root are rejected.
StorageOnly file paths are stored. File values are read at launch time.
Missing filesLaunch fails if a declared file does not exist.
Intended useLocal secrets and developer-specific values.

See environment and secrets for parsing and precedence.