ark init

Scaffold a new ark project directory with a ready-to-run ArkTeam definition, environment template, and local Redis compose file.

Scaffold a new ark project in a fresh directory.

ark init <project-name>

What it creates

<project-name>/
├── quickstart.yaml    - ArkTeam definition (single-step pipeline, ready to run)
├── .env.example       - required environment variables with instructions
└── docker-compose.yml - local Redis for the task queue

Examples

# Create a new project
ark init my-agent

# Run it immediately with the mock provider (no API keys needed)
cd my-agent
ark run quickstart.yaml --provider mock --watch

# Run with a real model
ANTHROPIC_API_KEY=sk-ant-... \
  ark run quickstart.yaml --watch

Generated files

quickstart.yaml - a minimal ArkTeam with a single answerer role:

apiVersion: arkonis.dev/v1alpha1
kind: ArkTeam
metadata:
  name: my-agent-team
spec:
  input:
    question: "What is a Kubernetes operator?"
  roles:
    - name: answerer
      model: claude-sonnet-4-20250514
      systemPrompt: |
        You are a helpful assistant. Answer questions clearly and concisely.
      limits:
        maxTokensPerCall: 4000
        timeoutSeconds: 60
  pipeline:
    - role: answerer
      inputs:
        prompt: "{{ .input.question }}"
  output: "{{ .steps.answerer.output }}"

.env.example - copy to .env and fill in your API keys before running with a real provider.

docker-compose.yml - starts a local Redis instance for the task queue when deploying to a local cluster.


Next steps after init

# Test locally - no credentials needed
ark run quickstart.yaml --provider mock --watch

# Validate the YAML
ark validate quickstart.yaml

# Deploy to a cluster
ark deploy quickstart.yaml -n my-namespace --wait

# Trigger a run
ark trigger my-agent-team -n my-namespace --input '{"question":"What is KEDA?"}'

See also