Deployment Guide
Savine supports three deployment methods ranging from manual to fully automated CI/CD.
1. Dashboard Deployment
Best for prototyping, rapid iteration, and learning the platform.
- Navigate to Agents > New Agent.
- Paste or write your
agent.jsondefinition in the web editor. - The editor validates syntax and schema live.
- Click Deploy. The progress terminal logs:
- Schema validation
- Sandbox provisioning
- Endpoint activation
- Copy the generated API URL.
2. CLI Deployment
Best for local development and scripting.
Installation:
npm install -g @agentcloud/cliAuthentication:
savine loginDeploying an Agent: From a directory containing agent.json:
savine deployDeploying a System: From a directory containing system.json:
savine systems deploy system.jsonTroubleshooting CLI Deploys: If a deploy fails, the CLI will output specific ValidationErrors. Ex: "Dangling reference: agent 'writer' not found in system.json agents block."
3. GitHub Deployment
Best for production, team collaboration, and version control.
- Go to Settings > Integrations in the Savine dashboard.
- Connect your GitHub account and install the Savine App on target repositories.
- Supported repository structures:
- Root Agent: A single
agent.jsonat the root. - Folder System: A
system.jsonat root referencing/agentssubdirectory. - Monorepo: Go to Project Settings and set the "Root Directory" to
packages/my-agent-system.
- Root Agent: A single
Auto-deploy on Push: Every push to the main branch triggers a redeploy. Only configuration changes trigger redeploys. If system.json changes, the system version increments.
Preview Deployments (PRs): When enabled, opening a Pull Request deploys an ephemeral clone of the system (e.g., researcher-pr-42). You can run tests against this endpoint before merging to main.
Environment Variables
APIs need keys, databases need connection strings. Hardcoding them in agent.json or system.json is a critical security vulnerability.
Savine uses the key_ref pattern.
In agent.json:
"llm": {
"provider": "openai",
"key_ref": "OPENAI_API_KEY"
}Setting the value: Via CLI:
savine config set OPENAI_API_KEY="sk-proj-1234..."Via Dashboard: Go to Settings > Secrets and add the key/value pair.
The runtime injects the decrypted secret into memory ONLY for the duration of the sandbox execution. No key is stored unencrypted.