Repository navigation
Expand file tree
/
Copy pathserver.env.example
More file actions
200 lines (183 loc) · 9.46 KB
/
Copy pathserver.env.example
File metadata and controls
200 lines (183 loc) · 9.46 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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# amux server configuration — EXAMPLE
#
# The server reads ~/.amux/server.env at startup with process env winning
# over the file (crates/amux-server/src/config.rs). The Rust server —
# port 8824 (what ./install.sh sets), plus the RETIRED 8822 while its
# compatibility bind survives — is the only
# server since the Python predecessor's removal (2026-08-09). Its own knobs:
# AMUX_RS_PORT, AMUX_HOME, AMUX_DB, AMUX_HERDR_SESSION,
# AMUX_REQLOG_RETAIN_DAYS, AMUX_SCOPE_WRITE_AGENTS, AMUX_AUTH_TOKEN.
# Many variables below were documented against the Python server; knobs the
# Rust server does not read are silently inert — check config.rs before
# relying on one.
#
# Copy the lines you need to ~/.amux/server.env (NOT this repo — this repo is
# public and several of these values are secrets).
#
# cp server.env.example ~/.amux/server.env # then edit, keep what you set
# launchctl kickstart -k gui/$(id -u)/com.amux.server-rs # restart to reload
#
# Every value below shows the built-in default (or a placeholder for keys with
# no default). Unset lines behave exactly like the default — you only need the
# lines you change. Vars the server sets itself per session (AMUX_SESSION,
# AMUX_URL, AMUX_HOME, CC_HOME, AMUX_ALLOW_FOREIGN, AMUX_SELFTEST) do not
# belong in this file.
# ── Core server ──────────────────────────────────────────────────────────────
# Port the dashboard/API listens on (also settable as the first CLI arg).
#AMUX_RS_PORT=8824
# Bearer token required on every API call when set (empty = no auth; keep it
# empty only on a machine you fully trust or behind Tailscale).
#AMUX_AUTH_TOKEN=
# Separate token for server-internal loopback calls (hooks, guards).
#AMUX_INTERNAL_TOKEN=
# Seconds the Python-era file watcher debounced before execv (inert now).
#AMUX_RELOAD_DEBOUNCE=30
# Explicit path/command for the claude CLI if it is not on PATH.
#AMUX_CLAUDE_CMD=
# Detached tmux panes are normalized to this size (glyph-accurate captures).
#AMUX_TMUX_COLS=220
#AMUX_TMUX_ROWS=50
# ── Autonomy & board guards ──────────────────────────────────────────────────
# Nudge a session that goes idle with uncommitted changes (1/0).
#AMUX_COMMIT_GUARD=1
#AMUX_COMMIT_NUDGES_PER_DAY=3
# Block `git push` of commits authored by other sessions in a shared checkout.
#AMUX_PUSH_GUARD=1
# Block `git add` of files another session edited recently (shared checkouts).
#AMUX_STAGED_GUARD=1
#AMUX_STAGED_GUARD_WINDOW_SECS=21600
# Require a board card before dispatching work to a session (1/0).
#AMUX_TASK_GUARD=0
# Min seconds between auto task-label refreshes per session.
#AMUX_TASK_LABEL_GAP_SECS=600
# WIP limit: cards one session may hold in 'doing'.
#AMUX_MAX_DOING_PER_SESSION=1
# Days before an untouched 'doing' card counts as stale.
#AMUX_STALE_DOING_DAYS=3
# Hide a session's plan panel when its data is older than this many hours.
#AMUX_PLAN_STALE_HIDE_HOURS=24
# Allow agent sessions to delete sessions via the API (normally human-only).
#AMUX_ALLOW_AGENT_SESSION_DELETE=
# Seconds a steering-queue message waits after the target goes idle.
#AMUX_STEER_SETTLE_SECS=2
# ── Rate limits & auto-resume ────────────────────────────────────────────────
# off = detect only · capped = auto-resume up to the budget/day · unlimited
#AMUX_RATE_LIMIT_MODE=capped
#AMUX_RATE_LIMIT_BUDGET=3
# ── Helper model (one knob for every internal one-shot) ─────────────────────
#AMUX_HELPER_MODEL=haiku
#AMUX_HELPER_MODEL_API=claude-haiku-4-5-20251001
# ── Context & memory caps ────────────────────────────────────────────────────
# Bounds on what observation/memory payloads may carry to the model. Raise as
# model context windows grow — policy lives here, not in code.
#AMUX_OBS_EVAL_CAP=8000
#AMUX_OBS_STATE_CAP=24000
#AMUX_MEMORY_MAX_BYTES=16800
#AMUX_MEMORY_MAX_LINES=185
#AMUX_MEMORY_KEEP_NEWEST=40
# ── Hibernation (resource relief on big fleets) ──────────────────────────────
#AMUX_HIBERNATE_IDLE_SECS=1800
#AMUX_HIBERNATE_MIN_SESSIONS=8
# ── Calendar & iCal feed ─────────────────────────────────────────────────────
# Public S3 mirror of the iCal feed (for Google/Apple calendar subscriptions).
# SECURITY: use a RANDOM, unguessable key path and NEVER commit the real one —
# the feed URL is effectively a capability token.
#AMUX_S3_BUCKET=
#AMUX_S3_KEY=amux/calendar.ics
#AMUX_S3_REGION=us-east-1
# Google Calendar two-way sync (calendar id + display timezone).
#AMUX_GCAL_ID=
#AMUX_GCAL_TZ=America/New_York
# Apple Calendar name for local EventKit sync.
#AMUX_CALENDAR_NAME=
# ── Email (Gmail API / Mail.app bridge) ──────────────────────────────────────
#AMUX_EMAIL_LOOKBACK_DAYS=60
#AMUX_EMAIL_SYNC_INTERVAL=900
# ── Owner alerts (push + SMS/iMessage) ───────────────────────────────────────
# Phone that urgent owner alerts text. E.164, e.g. +15551234567.
#AMUX_OWNER_PHONE=
#AMUX_URGENT_PUSH=1
#AMUX_URGENT_SMS=1
#AMUX_SMS_DAILY_CAP=50
#AMUX_SMS_PER_NUMBER_CAP=5
# Web-push VAPID contact (any mailto: you control).
#AMUX_VAPID_SUBJECT=mailto:amux@localhost
# Twilio fallback for SMS when iMessage is unavailable.
#TWILIO_ACCOUNT_SID=
#TWILIO_AUTH_TOKEN=
#TWILIO_FROM=
# ── Voice: dictation & TTS ───────────────────────────────────────────────────
#AMUX_DICTATION_MODEL=gemini-2.5-flash
#AMUX_WHISPER_MODEL=base
# Python interpreter that has whisper installed, if not the server's own.
#AMUX_WHISPER_PYTHON=
#ELEVENLABS_API_KEY=
# Gemini key used for dictation transcription.
#GOOGLE_API_KEY=
# ── Tunnel / amux cloud ──────────────────────────────────────────────────────
#AMUX_TUNNEL_TOKEN=
#AMUX_TUNNEL_GATEWAY=https://cloud.amux.io
#AMUX_TUNNEL_PORT=0
#AMUX_TUNNEL_MAX_CONCURRENT=8
#AMUX_TUNNEL_RATE_PER_MIN=180
#AMUX_TUNNEL_ALLOW_SELF=
# Restart known sessions when the server starts and tmux lacks them. OFF by
# default on workstations (would relaunch your whole fleet on every restart);
# cloud containers set it to 1 via their server.env, where a session a person
# created should survive the container being replaced.
#AMUX_AUTOSTART_SESSIONS=
# ── Auto-update (pull + restart from a git remote) ───────────────────────────
#AMUX_AUTO_UPDATE_REPO=
#AMUX_AUTO_UPDATE_BRANCH=main
#AMUX_AUTO_UPDATE_INTERVAL=60
# ── Browser automation ───────────────────────────────────────────────────────
# Force the managed browser headless (default: headed when a display exists).
#AMUX_BROWSER_HEADLESS=
# ── Passed through to every session at launch (when set) ────────────────────
#OPENAI_API_KEY=
#GEMINI_API_KEY=
#GOOGLE_GENAI_USE_VERTEXAI=
#GOOGLE_CLOUD_PROJECT=
#GOOGLE_CLOUD_LOCATION=
# ── Model providers ──────────────────────────────────────────────────────────
# Anthropic key for API-billed sessions (subscription plans need none).
#ANTHROPIC_API_KEY=
# Key used ONLY by amux internals when you want them billed separately.
#AMUX_ANTHROPIC_API_KEY=
# Alternate Anthropic-compatible endpoint/token (proxies, gateways).
#ANTHROPIC_BASE_URL=
#ANTHROPIC_API_BASE=
#ANTHROPIC_AUTH_TOKEN=
#AMUX_ANYSCALE_API_KEY=
# ── Analytics (optional, off when unset) ─────────────────────────────────────
#POSTHOG_KEY=
#POSTHOG_HOST=https://us.i.posthog.com
# ── Optional ops integrations (all off when unset) ───────────────────────────
# Remote ops dashboards surfaced in the amux UI.
#AMUX_MIXPEEK_OPS_URL=
#AMUX_MIXPEEK_OPS_TOKEN=
# GCP billing surfacing.
#AMUX_GCP_BILLING_ACCOUNT=
#AMUX_GCP_SA_KEY_PATH=
# MongoDB Atlas cost surfacing.
#AMUX_MONGO_ORG_ID=
#AMUX_MONGO_PUBLIC_KEY=
#AMUX_MONGO_PRIVATE_KEY=
# Qdrant Cloud / Render cost surfacing.
#AMUX_QDRANT_CLOUD_API_KEY=
#AMUX_RENDER_API_KEY=
# Cloudflare credentials — consumed by SESSIONS (agents doing DNS work), not
# by the server itself; listed here because server.env is how they reach the
# fleet, and the log scrubber redacts them.
#CLOUDFLARE_API_TOKEN=
#CLOUDFLARE_ZONE_ID=
# Lightfield CRM sync.
#LIGHTFIELD_API_KEY=
#LIGHTFIELD_API_URL=https://api.lightfield.app/v1
#LIGHTFIELD_VERSION=2026-03-01
# CRM sync provider selection (auto/lightfield/off).
#CRM_SYNC_PROVIDER=auto
# PostHog personal key — session-side (fleet analytics scripts); scrubbed in logs.
#POSTHOG_PERSONAL_API_KEY=
# Google Maps key (CRM/location features).
#GOOGLE_MAPS_API_KEY=