# Twinmind Multi Env Setup

> Set up TwinMind across multiple environments (dev, staging, production). Use when configuring environment-specific settings, managing multiple API keys, or implementing environment promotion workflows. Trigger with phrases like "twinmind environments", "twinmind multi-env", "twinmind staging setup", "twinmind dev vs prod".

- Skill: `micsapp/twinmind-multi-env-setup` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add micsapp/twinmind-multi-env-setup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/micsapp/twinmind-multi-env-setup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- License: MIT
- Author: micsapp (https://skillmd.com/u/micsapp)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/micsapp/twinmind-multi-env-setup

---

# TwinMind Multi-Environment Setup

## Contents
- [Overview](#overview)
- [Prerequisites](#prerequisites)
- [Instructions](#instructions)
- [Output](#output)
- [Error Handling](#error-handling)
- [Examples](#examples)
- [Resources](#resources)

## Overview
Configure TwinMind for development, staging, and production environments with proper isolation, environment-aware client factory, validation scripts, config promotion workflows, and feature flags.

## Prerequisites
- Multiple TwinMind API keys (one per environment)
- Understanding of environment management
- CI/CD pipeline for deployments

## Instructions

### Step 1: Environment Configuration Structure
Define `EnvironmentConfig` interface covering TwinMind settings (API key, model, features, debug mode), rate limits, concurrency, daily quotas, and integration settings (Slack channel, calendar, email). Configure dev (ear-2, 30/min, quota 10), staging (ear-3, 60/min, quota 50), and production (ear-3, 300/min, unlimited).

### Step 2: Environment Variable Files
Create `.env.development`, `.env.staging`, `.env.production` with environment-specific API keys and webhook secrets. Commit `.env.example` with empty values.

### Step 3: Environment-Aware Client Factory
Build `getTwinMindClient()` factory that creates and caches clients per environment, automatically selecting the right API key and config.

### Step 4: Environment Validation
Create validation script that checks required environment variables, API key format (starts with `tm_sk_`), and API connectivity for each environment.

### Step 5: Config Promotion Workflow
Build `promoteConfig()` script to promote feature settings, webhook events, and integration configs from dev -> staging -> production while preserving environment-specific values.

### Step 6: Feature Flags per Environment
Implement `FeatureFlags` with environment overrides: beta features in dev only, diarization off in dev (faster), email follow-ups only in production, audio duration limits per environment.

See [detailed implementation](${CLAUDE_SKILL_DIR}/references/implementation.md) for complete environment configs, client factory, validation scripts, promotion workflow, and feature flag code.

## Output
- Environment configuration structure
- Environment variable templates
- Client factory with environment awareness
- Environment validation script
- Config promotion workflow
- Feature flags per environment

## Error Handling

| Issue | Cause | Solution |
|-------|-------|----------|
| Wrong API key used | Env mismatch | Validate before deploy |
| Feature not available | Wrong environment | Check feature flags |
| Config not loading | Missing file | Verify config paths |
| Promotion failed | Schema mismatch | Validate configs first |

## Examples


**Basic usage**: Apply twinmind multi env setup to a standard project setup with default configuration options.

**Advanced scenario**: Customize twinmind multi env setup for production environments with multiple constraints and team-specific requirements.

## Environment Matrix

| Setting | Development | Staging | Production |
|---------|-------------|---------|------------|
| Model | ear-2 | ear-3 | ear-3 |
| Diarization | Off | On | On |
| Debug mode | On | On | Off |
| Rate limit | 30/min | 60/min | 300/min |
| Email sending | Off | Off | On |

## Resources
- [12-Factor App Config](https://12factor.net/config)
- [Environment Best Practices](https://twinmind.com/docs/environments)

## Next Steps
For monitoring setup, see `twinmind-observability`.
