Deploying with brew
tama brew compiles your project into a lean Docker image. The image contains only the tamar runtime, your agent and skill files, and the installed skill dependencies.
Build the image
Section titled “Build the image”tama brew# or with a custom tagtama brew --tag registry.example.com/my-project:v1.0.0Run it
Section titled “Run it”docker run \ -e ANTHROPIC_API_KEY=sk-ant-... \ -e TAMA_MODEL_THINKER=anthropic:claude-opus-4-6 \ my-project:latest \ "research fusion energy trends"The container exits when the agent finishes. The final output is written to stdout. Trace data is written to stderr.
Push to a registry
Section titled “Push to a registry”tama brew --tag registry.example.com/my-project:v1.0.0docker push registry.example.com/my-project:v1.0.0Kubernetes example
Section titled “Kubernetes example”apiVersion: batch/v1kind: Jobmetadata: name: research-jobspec: template: spec: containers: - name: tamar image: registry.example.com/my-project:v1.0.0 args: ["research fusion energy trends"] env: - name: ANTHROPIC_API_KEY valueFrom: secretKeyRef: name: api-keys key: anthropic - name: TAMA_MODEL_THINKER value: anthropic:claude-sonnet-4-6 restartPolicy: NeverImage size
Section titled “Image size”The distroless base keeps images small:
| Component | Size |
|---|---|
| Distroless base | ~2MB |
| tamar binary | ~5MB |
| Agent/skill files | ~1MB (typical) |
| Skill dependencies | varies |
| Total (no deps) | ~8MB |
Environment variable management
Section titled “Environment variable management”Never bake API keys into the image. Pass them at runtime:
Docker:
docker run -e ANTHROPIC_API_KEY=... my-project:latest "task"Docker Compose:
services: agent: image: my-project:latest environment: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - TAMA_MODEL_THINKER=anthropic:claude-sonnet-4-6Kubernetes secrets:
env: - name: ANTHROPIC_API_KEY valueFrom: secretKeyRef: name: api-keys key: anthropicEntrypoint override
Section titled “Entrypoint override”Override the entrypoint without rebuilding:
docker run \ -e TAMA_ENTRYPOINT_AGENT=summarizer \ -e ANTHROPIC_API_KEY=... \ my-project:latest \ "the text to summarize..."CI/CD pipeline
Section titled “CI/CD pipeline”name: Build and Deploy
on: push: branches: [main]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
- name: Install tama run: cargo install tama # or download binary
- name: Lint run: tama lint
- name: Build image run: tama brew --tag ghcr.io/${{ github.repository }}:${{ github.sha }}
- name: Push run: docker push ghcr.io/${{ github.repository }}:${{ github.sha }}