Getting Started
Configuration

Configuration

DevTeam Orchestrator can be configured through environment variables, a .env file, or programmatically via the SDK constructor.

Environment Variables

VariableRequiredDefaultDescription
DEVTEAM_API_URLYes--Base URL of the DevTeam API server
DEVTEAM_API_KEYYes--Your API key for authentication
DEVTEAM_TIMEOUTNo30000Request timeout in milliseconds
DEVTEAM_MAX_RETRIESNo3Maximum retry attempts for failed requests
DEVTEAM_LOG_LEVELNoinfoLogging verbosity: debug, info, warn, error
DEVTEAM_QUEUENodefaultDefault task queue for submissions
DEVTEAM_MODELNosonnetDefault model for tasks

.env File

Create a .env file in your project root:

.env
# 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=sonnet
🚫

Never 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):

  1. Constructor arguments
  2. Environment variables
  3. .env file
  4. 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 list

Output:

{
  "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:

~/.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 production

Model 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:

/etc/devteam/worker.env
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.pem

Next Steps