Configuration
DevTeam Orchestrator can be configured through environment variables, a .env file, or programmatically via the SDK constructor.
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
DEVTEAM_API_URL | Yes | -- | Base URL of the DevTeam API server |
DEVTEAM_API_KEY | Yes | -- | Your API key for authentication |
DEVTEAM_TIMEOUT | No | 30000 | Request timeout in milliseconds |
DEVTEAM_MAX_RETRIES | No | 3 | Maximum retry attempts for failed requests |
DEVTEAM_LOG_LEVEL | No | info | Logging verbosity: debug, info, warn, error |
DEVTEAM_QUEUE | No | default | Default task queue for submissions |
DEVTEAM_MODEL | No | sonnet | Default model for tasks |
.env File
Create a .env file in your project root:
# Required
DEVTEAM_API_URL=https://devteam.marsala.dev
DEVTEAM_API_KEY=dtk_live_abc123def456
# Optional
DEVTEAM_TIMEOUT=60000
DEVTEAM_MAX_RETRIES=5
DEVTEAM_LOG_LEVEL=debug
DEVTEAM_QUEUE=gpu-queue
DEVTEAM_MODEL=sonnetNever commit your .env file to version control. Add it to .gitignore and use environment-specific secrets management in production.
The SDK automatically reads from .env when using dotenv:
import 'dotenv/config';
import { DevTeamClient } from 'devteam-sdk';
// Reads DEVTEAM_API_URL and DEVTEAM_API_KEY from .env
const client = new DevTeamClient();Programmatic Configuration
Override any setting in the SDK constructor:
import { DevTeamClient } from 'devteam-sdk';
const client = new DevTeamClient({
apiUrl: 'https://devteam.marsala.dev',
apiKey: 'dtk_live_abc123def456',
timeout: 60_000,
maxRetries: 5,
logLevel: 'debug',
defaultQueue: 'gpu-queue',
defaultModel: 'sonnet',
headers: {
'X-Custom-Header': 'my-value',
},
});Configuration priority (highest to lowest):
- Constructor arguments
- Environment variables
.envfile- Default values
CLI Configuration
The CLI stores configuration in ~/.devteam/config.json:
# Set the API URL
devteam config set api-url https://devteam.marsala.dev
# Set the default model
devteam config set default-model sonnet
# Set the default queue
devteam config set default-queue gpu-queue
# View current configuration
devteam config listOutput:
{
"apiUrl": "https://devteam.marsala.dev",
"defaultModel": "sonnet",
"defaultQueue": "gpu-queue",
"logLevel": "info",
"timeout": 30000
}Credential Storage
After running devteam login, credentials are stored in ~/.devteam/credentials.json:
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"expiresAt": "2026-03-20T10:00:00Z",
"refreshToken": "dtr_abc123...",
"user": {
"id": "usr_001",
"email": "dev@example.com",
"role": "admin"
}
}Credentials are stored with chmod 600 permissions. Do not share this file or commit it to version control.
Multi-Environment Setup
Use profiles to manage multiple environments:
# Create profiles
devteam config profile create staging \
--api-url https://staging.devteam.marsala.dev \
--api-key dtk_staging_abc123
devteam config profile create production \
--api-url https://devteam.marsala.dev \
--api-key dtk_live_def456
# Switch profiles
devteam config profile use staging
# Run with a specific profile
devteam run "Test prompt" --profile productionModel Configuration
Configure model routing preferences:
const client = new DevTeamClient({
apiUrl: process.env.DEVTEAM_API_URL,
apiKey: process.env.DEVTEAM_API_KEY,
modelConfig: {
// Prefer local models for cost-sensitive tasks
costOptimized: {
primary: 'ollama:llama3.3',
fallback: 'haiku',
},
// Use powerful models for complex reasoning
qualityOptimized: {
primary: 'opus',
fallback: 'sonnet',
},
// Custom routing rules
routing: {
'legal-*': 'opus', // Legal tasks always use Opus
'summary-*': 'sonnet', // Summaries use Sonnet
'translation-*': 'gemini-flash', // Translations use Gemini
},
},
});Temporal Configuration
If running your own worker, configure the Temporal connection:
TEMPORAL_ADDRESS=temporal.marsala.dev:7233
TEMPORAL_NAMESPACE=default
TEMPORAL_TASK_QUEUE=gpu-queue
TEMPORAL_WORKER_ID=worker-asus-01
TEMPORAL_TLS_CERT=/etc/devteam/tls/client.pem
TEMPORAL_TLS_KEY=/etc/devteam/tls/client-key.pemNext Steps
- First Workflow -- Create your first multi-step DAG workflow
- SDK Reference -- Explore the full TypeScript API