2026-03-09 15:15:25 -04:00
|
|
|
|
# =============================================================================
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# Buzz Backend — Local Development Environment
|
2026-03-09 15:15:25 -04:00
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# Copy this file to .env and adjust as needed:
|
|
|
|
|
|
# cp .env.example .env
|
|
|
|
|
|
#
|
|
|
|
|
|
# All defaults here work with `docker compose up` out of the box.
|
|
|
|
|
|
#
|
|
|
|
|
|
# Service ports (defaults):
|
2026-03-20 03:35:22 +11:00
|
|
|
|
# Postgres → localhost:5432
|
2026-03-09 15:15:25 -04:00
|
|
|
|
# Redis → localhost:6379
|
|
|
|
|
|
# Typesense → localhost:8108
|
|
|
|
|
|
# Adminer → localhost:8082 (DB browser UI)
|
|
|
|
|
|
#
|
|
|
|
|
|
# Note: If port 8082 conflicts, change the adminer port in docker-compose.yml
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-03-20 03:35:22 +11:00
|
|
|
|
# Database (Postgres 17)
|
2026-03-09 15:15:25 -04:00
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-06-11 08:06:24 -07:00
|
|
|
|
DATABASE_URL=postgres://buzz:buzz_dev@localhost:5432/buzz
|
2026-07-18 22:45:33 -04:00
|
|
|
|
# Optional read-replica URL; unset/blank keeps all reads on the writer.
|
|
|
|
|
|
# READ_DATABASE_URL=postgres://buzz:buzz_dev@localhost:5433/buzz
|
2026-03-20 03:35:22 +11:00
|
|
|
|
PGHOST=localhost
|
|
|
|
|
|
PGPORT=5432
|
2026-06-11 08:06:24 -07:00
|
|
|
|
PGUSER=buzz
|
|
|
|
|
|
PGPASSWORD=buzz_dev
|
|
|
|
|
|
PGDATABASE=buzz
|
2026-03-09 15:15:25 -04:00
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Redis 7
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
REDIS_URL=redis://localhost:6379
|
2026-07-23 07:55:44 -07:00
|
|
|
|
# Max connections in the relay's shared Redis pool (default 16).
|
|
|
|
|
|
# BUZZ_REDIS_POOL_SIZE=16
|
2026-03-09 15:15:25 -04:00
|
|
|
|
|
2026-07-28 09:17:43 -04:00
|
|
|
|
# Max connections in each of the relay's Postgres pools — writer and, when
|
|
|
|
|
|
# READ_DATABASE_URL is set, reader (default 50).
|
|
|
|
|
|
# BUZZ_DB_POOL_SIZE=50
|
|
|
|
|
|
|
2026-03-09 15:15:25 -04:00
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Typesense (search)
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-06-11 08:06:24 -07:00
|
|
|
|
TYPESENSE_API_KEY=buzz_dev_key
|
2026-03-09 15:15:25 -04:00
|
|
|
|
TYPESENSE_URL=http://localhost:8108
|
|
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Relay (WebSocket server)
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Bind address for the relay (host:port)
|
2026-06-11 08:06:24 -07:00
|
|
|
|
BUZZ_BIND_ADDR=0.0.0.0:3000
|
2026-03-09 15:15:25 -04:00
|
|
|
|
# Public WebSocket URL — used in NIP-42 auth challenges
|
|
|
|
|
|
RELAY_URL=ws://localhost:3000
|
2026-03-19 09:20:29 -07:00
|
|
|
|
# Stable relay signing key. Set this in dev if you want REST-created forum posts
|
|
|
|
|
|
# to keep resolving to the original author across relay restarts.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_RELAY_PRIVATE_KEY=<32-byte hex private key>
|
2026-05-05 13:20:13 -06:00
|
|
|
|
# Optional: path to the web UI dist directory. When set, the relay serves
|
|
|
|
|
|
# the web frontend at / for browser requests. Leave unset for local dev
|
|
|
|
|
|
# (use `just web` for Vite HMR instead).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_WEB_DIR=./web/dist
|
2026-05-05 13:20:13 -06:00
|
|
|
|
|
2026-08-10 19:37:23 -04:00
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Admin Dashboard (private moderation surface)
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Host name that serves the read-only moderation dashboard and its
|
|
|
|
|
|
# /api/admin/v1 endpoints. Leave unset to keep the admin surface absent.
|
|
|
|
|
|
# Setting it requires one of the two authentication variables below.
|
|
|
|
|
|
# BUZZ_ADMIN_HOST=admin.localhost:3000
|
|
|
|
|
|
#
|
|
|
|
|
|
# Authentication mode. Accepted values: token (default), disabled, nip98.
|
|
|
|
|
|
# Any other value is a startup error.
|
|
|
|
|
|
# BUZZ_ADMIN_AUTH=token
|
|
|
|
|
|
#
|
|
|
|
|
|
# Option A — BUZZ_ADMIN_AUTH=token (default when unset):
|
|
|
|
|
|
# Exactly 64 hex characters (32 bytes); generate with `openssl rand -hex 32`.
|
|
|
|
|
|
# `just admin` generates a throwaway one per run and prints it.
|
|
|
|
|
|
# BUZZ_ADMIN_TOKEN=<64 hex characters>
|
|
|
|
|
|
#
|
|
|
|
|
|
# Option B — BUZZ_ADMIN_AUTH=disabled (network-layer auth only):
|
|
|
|
|
|
# Set only when the admin API is already protected at the network layer
|
|
|
|
|
|
# (VPN, private ingress). The relay logs a WARN on every startup.
|
|
|
|
|
|
# BUZZ_ADMIN_TOKEN must NOT also be set.
|
|
|
|
|
|
#
|
|
|
|
|
|
# Option C — BUZZ_ADMIN_AUTH=nip98 (Nostr pubkey-based auth):
|
|
|
|
|
|
# NIP-98 HTTP Auth. Each request must carry an Authorization: Nostr header
|
|
|
|
|
|
# with a signed kind-27235 event. Authorized principals are resolved from:
|
|
|
|
|
|
# 1. RELAY_OPERATOR_PUBKEYS — comma-separated 64-char hex pubkeys (config Operators).
|
|
|
|
|
|
# 2. RELAY_OWNER_PUBKEY — implicit Operator fallback when RELAY_OPERATOR_PUBKEYS is unset.
|
|
|
|
|
|
# 3. relay_operators table — DB-managed Operator/Moderator roster.
|
|
|
|
|
|
# The dashboard requires a NIP-07 browser extension.
|
2026-08-10 20:06:41 -04:00
|
|
|
|
# Setting RELAY_OPERATOR_PUBKEYS for the admin console does NOT require
|
|
|
|
|
|
# RELAY_OPERATOR_API_ORIGIN; that origin is only for community provisioning
|
|
|
|
|
|
# (see below). When BUZZ_ADMIN_HOST is set, the relay advertises the admin
|
|
|
|
|
|
# origin in its NIP-11 document (`admin_api` field) so clients can auto-discover
|
|
|
|
|
|
# the console without manual URL entry.
|
2026-08-10 19:37:23 -04:00
|
|
|
|
# RELAY_OPERATOR_PUBKEYS=<64-char hex pubkey>[,<64-char hex pubkey>...]
|
|
|
|
|
|
#
|
|
|
|
|
|
# Directory holding the built dashboard assets (`pnpm -C admin-web build`).
|
|
|
|
|
|
# BUZZ_ADMIN_WEB_DIR=./admin-web/dist
|
2026-08-10 20:06:41 -04:00
|
|
|
|
#
|
|
|
|
|
|
# Canonical origin (http(s)://host[:port], no path) that community-provisioning
|
|
|
|
|
|
# NIP-98 requests are verified against. Required only to USE the provisioning
|
|
|
|
|
|
# endpoints (POST /operator/communities) — not for the admin console. When
|
|
|
|
|
|
# RELAY_OPERATOR_PUBKEYS is set but this is unset, the relay boots with a WARN
|
|
|
|
|
|
# and provisioning requests fail closed until it is set.
|
|
|
|
|
|
# RELAY_OPERATOR_API_ORIGIN=http://127.0.0.1:3000
|
2026-08-10 19:37:23 -04:00
|
|
|
|
|
2026-07-17 09:25:09 -07:00
|
|
|
|
# Shared Redis-backed admission limits. Defaults shown below; each value must
|
|
|
|
|
|
# be a positive integer.
|
|
|
|
|
|
# BUZZ_RATE_LIMIT_HUMAN_MESSAGES_PER_MIN=60
|
|
|
|
|
|
# BUZZ_RATE_LIMIT_HUMAN_API_CALLS_PER_MIN=300
|
|
|
|
|
|
# BUZZ_RATE_LIMIT_HUMAN_WS_EVENTS_PER_SEC=10
|
|
|
|
|
|
# BUZZ_RATE_LIMIT_AGENT_STANDARD_MESSAGES_PER_MIN=120
|
|
|
|
|
|
# BUZZ_RATE_LIMIT_AGENT_STANDARD_API_CALLS_PER_MIN=600
|
|
|
|
|
|
# BUZZ_RATE_LIMIT_AGENT_ELEVATED_MESSAGES_PER_MIN=300
|
|
|
|
|
|
# BUZZ_RATE_LIMIT_AGENT_PLATFORM_MESSAGES_PER_MIN=600
|
|
|
|
|
|
|
2026-04-07 11:37:51 -07:00
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-05-12 15:05:57 -07:00
|
|
|
|
# Git (NIP-34 bare repositories)
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-07-20 16:50:11 +02:00
|
|
|
|
# Root directory for ephemeral Git workspaces and the disposable pack cache.
|
|
|
|
|
|
# Default: ./repos (relative to CWD).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_GIT_REPO_PATH=./repos
|
2026-06-29 17:17:52 -07:00
|
|
|
|
# BUZZ_GIT_MAX_PACK_BYTES=524288000
|
|
|
|
|
|
# BUZZ_GIT_MAX_REPO_BYTES=1048576000
|
2026-07-20 16:50:11 +02:00
|
|
|
|
# Process-local immutable pack/index cache. Zero disables retention.
|
|
|
|
|
|
# BUZZ_GIT_PACK_CACHE_PATH=./repos/.pack-cache
|
|
|
|
|
|
# BUZZ_GIT_PACK_CACHE_MAX_BYTES=5368709120
|
|
|
|
|
|
# BUZZ_GIT_PACK_CACHE_MAX_CONCURRENT_POPULATIONS=2
|
2026-06-29 17:17:52 -07:00
|
|
|
|
|
2026-07-29 17:00:41 -07:00
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# S3-Compatible Object Storage (media + Git/CAS)
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# The local MinIO container is reachable from host processes at localhost:9000.
|
|
|
|
|
|
# Path style keeps the bucket in the URL path and is required by this local DNS
|
|
|
|
|
|
# setup. Use `virtual` only when the provider requires bucket-as-subdomain URLs.
|
|
|
|
|
|
BUZZ_S3_ENDPOINT=http://localhost:9000
|
|
|
|
|
|
BUZZ_S3_ACCESS_KEY=buzz_dev
|
|
|
|
|
|
BUZZ_S3_SECRET_KEY=buzz_dev_secret
|
|
|
|
|
|
BUZZ_S3_BUCKET=buzz-media
|
|
|
|
|
|
BUZZ_S3_REGION=us-east-1
|
|
|
|
|
|
BUZZ_S3_ADDRESSING_STYLE=path
|
|
|
|
|
|
|
2026-06-29 17:17:52 -07:00
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Media Upload Admission
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Bound image/video parser and storage work admitted by one relay process.
|
|
|
|
|
|
# BUZZ_MEDIA_MAX_CONCURRENT_UPLOADS=8
|
|
|
|
|
|
# BUZZ_MEDIA_MAX_CONCURRENT_UPLOADS_PER_PUBKEY=2
|
|
|
|
|
|
# BUZZ_MEDIA_UPLOADS_PER_MINUTE=30
|
2026-08-06 19:46:42 -05:00
|
|
|
|
# GET/HEAD /media/* always require Blossom t=get auth and relay membership.
|
|
|
|
|
|
# BUZZ_REQUIRE_MEDIA_GET_AUTH and BUZZ_REQUIRE_MEDIA_READ_AUTH are no longer
|
|
|
|
|
|
# read; setting either (including to false) changes nothing and the relay warns
|
|
|
|
|
|
# about it at startup.
|
2026-05-12 15:05:57 -07:00
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-04-07 11:37:51 -07:00
|
|
|
|
# Ephemeral Channels (TTL testing)
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Override the TTL for all ephemeral channels (in seconds). When set, any
|
|
|
|
|
|
# channel created with a TTL tag will use this value instead of the
|
|
|
|
|
|
# client-provided one. Unset to use the client-provided TTL.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_EPHEMERAL_TTL_OVERRIDE=60
|
2026-04-07 11:37:51 -07:00
|
|
|
|
|
|
|
|
|
|
# How often the reaper checks for expired ephemeral channels (default: 60s).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_REAPER_INTERVAL_SECS=5
|
2026-04-07 11:37:51 -07:00
|
|
|
|
|
2026-03-09 15:15:25 -04:00
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
# Logging / Tracing
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-07-27 23:32:42 -04:00
|
|
|
|
RUST_LOG=buzz_relay=debug,buzz_datastore=info,buzz_db=debug,buzz_auth=debug,buzz_pubsub=debug,tower_http=debug
|
|
|
|
|
|
# Optional OpenTelemetry-only target filter. This is deliberately independent
|
|
|
|
|
|
# from RUST_LOG so log verbosity changes cannot break trace parentage.
|
|
|
|
|
|
# BUZZ_OTEL_FILTER=buzz_relay=info,buzz_datastore=info
|
2026-03-09 15:15:25 -04:00
|
|
|
|
|
|
|
|
|
|
# OTLP tracing endpoint (optional — leave unset to disable)
|
|
|
|
|
|
# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
|
|
|
|
|
|
|
2026-03-23 13:13:55 -07:00
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# ACP (Agent Communication Protocol — buzz-acp harness)
|
2026-03-23 13:13:55 -07:00
|
|
|
|
# -----------------------------------------------------------------------------
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# The ACP harness bridges Buzz events to AI agents. Each env var below maps
|
2026-03-23 13:13:55 -07:00
|
|
|
|
# to a CLI flag of the same name (lowercase, hyphens → underscores). All values
|
|
|
|
|
|
# are optional unless noted; defaults are shown in comments.
|
|
|
|
|
|
#
|
|
|
|
|
|
# Quick start:
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_PRIVATE_KEY=<hex> BUZZ_RELAY_URL=ws://localhost:3000 buzz-acp
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Identity & auth ──────────────────────────────────────────────────────────
|
|
|
|
|
|
# Nostr private key (hex or bech32). REQUIRED — identifies the agent on the relay.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_PRIVATE_KEY=<32-byte hex or nsec1… private key>
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Relay WebSocket URL the harness connects to.
|
|
|
|
|
|
# Note: the relay itself uses RELAY_URL (above); this is the ACP harness's
|
|
|
|
|
|
# connection target — they happen to point at the same place in local dev.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_RELAY_URL=ws://localhost:3000
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Agent subprocess ─────────────────────────────────────────────────────────
|
|
|
|
|
|
# Binary to spawn as the AI agent (e.g. "goose", "codex-acp", "claude-code").
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_AGENT_COMMAND=goose
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Comma-separated arguments passed to the agent binary.
|
|
|
|
|
|
# Goose default: "acp". Codex/Claude default: "" (empty).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_AGENT_ARGS=acp
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# Binary for an optional MCP server sidecar (e.g. buzz-dev-mcp for buzz-agent).
|
|
|
|
|
|
# BUZZ_ACP_MCP_COMMAND=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Number of parallel agent subprocesses (1–32).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_AGENTS=1
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Desired LLM model ID. Applied to every new ACP session.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# Use `buzz-acp models` to discover available model IDs.
|
|
|
|
|
|
# BUZZ_ACP_MODEL=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Timeouts & sessions ──────────────────────────────────────────────────────
|
2026-03-27 22:57:08 -04:00
|
|
|
|
# Max seconds per agent turn before timeout (default 320 = ~5 min).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_TURN_TIMEOUT=320
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Max turns per session before proactive rotation. 0 = disabled (rotate only
|
|
|
|
|
|
# on MaxTokens / MaxTurnRequests). Recommended: 50 for long-running agents.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_MAX_TURNS_PER_SESSION=0
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Prompts ──────────────────────────────────────────────────────────────────
|
|
|
|
|
|
# System prompt injected into every agent session (inline text).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_SYSTEM_PROMPT=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Path to a file containing the system prompt (mutually exclusive with above).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_SYSTEM_PROMPT_FILE=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Message sent to the agent immediately after session creation.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_INITIAL_MESSAGE=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Heartbeat ────────────────────────────────────────────────────────────────
|
|
|
|
|
|
# Seconds between heartbeat prompts. 0 = disabled. Must be 0 or ≥10.
|
|
|
|
|
|
# Recommended: 60 for long-running agents to prevent idle session timeouts.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_HEARTBEAT_INTERVAL=0
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Heartbeat prompt text (inline). Mutually exclusive with file variant.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_HEARTBEAT_PROMPT=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Path to a file containing the heartbeat prompt.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_HEARTBEAT_PROMPT_FILE=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
2026-07-17 04:39:03 -07:00
|
|
|
|
# ── Desktop development ──────────────────────────────────────────────────────
|
|
|
|
|
|
# DEV-only: replay first-run onboarding and the Welcome Team kickoff on each
|
|
|
|
|
|
# app launch while keeping the current identity and relay data.
|
|
|
|
|
|
# VITE_BUZZ_FORCE_FRESH_ONBOARDING=true
|
|
|
|
|
|
|
2026-03-23 13:13:55 -07:00
|
|
|
|
# ── Subscription & filtering ─────────────────────────────────────────────────
|
|
|
|
|
|
# Subscribe mode: "mentions" (default), "all", or "config" (rule-based).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_SUBSCRIBE=mentions
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Comma-separated event kind numbers to subscribe to (overrides mode defaults).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_KINDS=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Comma-separated channel UUIDs to limit subscription scope.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_CHANNELS=
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Set to true to disable the @-mention filter in mentions mode.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_NO_MENTION_FILTER=false
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Path to TOML config file for rule-based subscriptions (config mode).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_CONFIG=./buzz-acp.toml
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Dedup & self-ignore ──────────────────────────────────────────────────────
|
|
|
|
|
|
# How to handle duplicate events: "queue" (default) or "drop".
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_DEDUP=queue
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Set to true to process the agent's own messages (default: ignore self).
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_NO_IGNORE_SELF=false
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Context ──────────────────────────────────────────────────────────────────
|
|
|
|
|
|
# Max context messages fetched for thread replies and DMs (0–100). 0 = disabled.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_CONTEXT_MESSAGE_LIMIT=12
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Presence & typing ────────────────────────────────────────────────────────
|
|
|
|
|
|
# Set to true to disable automatic online/offline presence status.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_NO_PRESENCE=false
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# Set to true to disable typing indicators while the agent is processing.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_NO_TYPING=false
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Advanced tuning ──────────────────────────────────────────────────────────
|
|
|
|
|
|
# Event channel buffer capacity (WebSocket → harness). Increase for
|
|
|
|
|
|
# high-throughput agents. Minimum 1.
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_EVENT_BUFFER=256
|
2026-03-23 13:13:55 -07:00
|
|
|
|
|
|
|
|
|
|
# ── Legacy aliases ───────────────────────────────────────────────────────────
|
|
|
|
|
|
# These are accepted for backward compatibility but the canonical names above
|
|
|
|
|
|
# are preferred:
|
2026-06-11 08:06:24 -07:00
|
|
|
|
# BUZZ_ACP_PRIVATE_KEY → BUZZ_PRIVATE_KEY
|
2026-07-16 13:59:53 -04:00
|
|
|
|
|
|
|
|
|
|
# Optional relay join policy. Markdown is served by the relay so every join
|
|
|
|
|
|
# surface can present the same documents. Each document and the independent age
|
|
|
|
|
|
# attestation are optional; configuring any one enables policy acceptance.
|
|
|
|
|
|
# BUZZ_TERMS_OF_SERVICE_MARKDOWN="# Terms of Service\n\nFull terms here."
|
|
|
|
|
|
# BUZZ_PRIVACY_POLICY_MARKDOWN="# Privacy Policy\n\nFull policy here."
|
|
|
|
|
|
# BUZZ_AGE_ATTESTATION_REQUIRED=true
|