forked from ghostwright/phantom
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
129 lines (101 loc) · 4.22 KB
/
.env.example
File metadata and controls
129 lines (101 loc) · 4.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Phantom Configuration
# Copy this file to .env and fill in your values:
# cp .env.example .env
# ========================
# REQUIRED: provider credential
# ========================
# Phantom defaults to Anthropic. Set ANTHROPIC_API_KEY for the default setup.
# To use a different provider (Z.AI, OpenRouter, Ollama, vLLM, LiteLLM, custom),
# configure the `provider:` block in phantom.yaml and set the matching env var
# below. See docs/providers.md for the full reference.
ANTHROPIC_API_KEY=
# Alternative provider keys (set one that matches your provider block in phantom.yaml):
# ZAI_API_KEY=
# OPENROUTER_API_KEY=
# LITELLM_KEY=
# ========================
# OPTIONAL: Slack
# ========================
# Create a Slack app: see docs/getting-started.md or use the manifest at slack-app-manifest.yaml
# Slack bot token (starts with xoxb-)
# SLACK_BOT_TOKEN=
# Slack app token for Socket Mode (starts with xapp-)
# SLACK_APP_TOKEN=
# Default Slack channel ID for intro messages (starts with C)
# SLACK_CHANNEL_ID=
# Owner's Slack user ID (starts with U) - only this user can talk to Phantom
# OWNER_SLACK_USER_ID=
# ========================
# OPTIONAL: Web Chat Login
# ========================
# If Slack is not configured, Phantom can send you a magic link email
# to log into the web chat at /chat. Set your email and a Resend API key.
# Without Resend, a bootstrap token is printed to container logs instead.
# OWNER_EMAIL=
# RESEND_API_KEY is also used for the phantom_email tool (see below).
# ========================
# OPTIONAL: Identity
# ========================
# Agent name (default: phantom)
# PHANTOM_NAME=phantom
# Agent role (default: swe). Options: swe, base
# PHANTOM_ROLE=swe
# Model for the agent brain. Keep a Claude model ID here even when using a
# non-Anthropic provider: the bundled cli.js has hardcoded capability checks
# against Claude model names. Use `provider.model_mappings` in phantom.yaml
# to redirect the wire call to your actual model (e.g., glm-5.1).
# Options:
# claude-sonnet-4-6 - Fast, capable, lower cost (default, recommended)
# claude-opus-4-6 - Most capable, higher cost
# PHANTOM_MODEL=claude-sonnet-4-6
# Provider override via env var (alternative to editing phantom.yaml).
# Options: anthropic (default), zai, openrouter, vllm, ollama, litellm, custom
# PHANTOM_PROVIDER_TYPE=anthropic
# PHANTOM_PROVIDER_BASE_URL=
# Domain for public URL (e.g., ghostwright.dev)
# When set with PHANTOM_NAME, derives public URL as https://<name>.<domain>
# PHANTOM_DOMAIN=
# Explicit public URL (overrides domain-based derivation)
# Use this for custom domains that don't follow the subdomain pattern.
# Examples: https://ai.company.com, https://phantom.internal:8443
# PHANTOM_PUBLIC_URL=
# ========================
# OPTIONAL: Ports
# ========================
# HTTP server port (default: 3100)
# PORT=3100
# ========================
# OPTIONAL: Memory
# ========================
# Qdrant URL (default: http://qdrant:6333 in Docker, http://localhost:6333 on bare metal)
# QDRANT_URL=http://qdrant:6333
# Ollama URL (default: http://ollama:11434 in Docker, http://localhost:11434 on bare metal)
# OLLAMA_URL=http://ollama:11434
# Embedding model (default: nomic-embed-text)
# EMBEDDING_MODEL=nomic-embed-text
# ========================
# OPTIONAL: Docker
# ========================
# Docker group ID on the host. The Phantom container needs this to access
# the Docker socket for creating sibling containers.
# Find yours with:
# Linux: stat -c '%g' /var/run/docker.sock
# macOS: stat -f '%g' /var/run/docker.sock
# Default 988 works for most Hetzner and cloud VMs.
# DOCKER_GID=988
# ========================
# OPTIONAL: Email (Resend)
# ========================
# Resend API key for sending email. If set, the agent can send email as
# {PHANTOM_NAME}@ghostwright.dev (or {PHANTOM_NAME}@{PHANTOM_DOMAIN}).
# Get a key at: https://resend.com/api-keys
# RESEND_API_KEY=
# Maximum emails per day (default: 50)
# PHANTOM_EMAIL_DAILY_LIMIT=50
# ========================
# OPTIONAL: Secret Encryption
# ========================
# 64-character hex string (32 bytes) for encrypting stored credentials.
# If not set, a key is auto-generated and saved to data/secret-encryption-key.
# Generate one with: openssl rand -hex 32
# SECRET_ENCRYPTION_KEY=