Files
pepa-pi-bot/.env.example
T
mayatnikovandClaude Opus 4.7 ecbdd05058 chore(v0.3.0): rename fast-LLM env vars to TIMEWEB_* (match other projects)
Aligns with the user's other repos (proso) which use TIMEWEB_API_GROK /
TIMEWEB_URL_GROK. Single naming convention across projects avoids the
'which env var was it for this repo' mental tax.

  PEPA_FAST_LLM_BASE_URL → TIMEWEB_BASE_URL
  PEPA_FAST_LLM_API_KEY  → TIMEWEB_API_KEY
  PEPA_FAST_LLM_MODEL    → TIMEWEB_MODEL
  PEPA_FAST_LLM_TIMEOUT_MS → TIMEWEB_TIMEOUT_MS

Provider still works with any OpenAI-compatible endpoint — TimeWeb is
the default but the variable name doesn't lock us in. Tests + docs +
.env / .env.example updated.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 18:09:04 +03:00

83 lines
3.7 KiB
Bash

# --- Minecraft connection -----------------------------------------------------
# Any Minecraft Java server. The values below are an example — replace them.
MC_HOST=play.example.com
MC_PORT=25565
MC_USERNAME=pepa_pi_bot
MC_VERSION=auto # 'auto' = let mineflayer detect from server
# --- Minecraft auth -----------------------------------------------------------
# 'offline' — cracked servers (server runs with online-mode=false). Any nick works.
# 'microsoft' — premium / online-mode servers. Mineflayer runs a device-code flow
# on first connect and caches the token under ~/.minecraft-auth/.
MC_AUTH_MODE=offline
# --- Optional: in-game login plugin (AuthMe, nLogin, etc.) --------------------
# Many cracked servers gate gameplay behind an in-chat /register and /login flow.
# Leave blank if your target server doesn't use one.
# Min length is usually 8; use a long random value and never commit it.
MC_AUTHME_PASSWORD=
# --- LLM provider -------------------------------------------------------------
# Set ONE credential below, OR leave them all blank and run `pi /login` for OAuth
# (ChatGPT Pro, Claude Max, etc. — when the provider supports it).
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
GOOGLE_API_KEY=
# Default model & provider for autonomous ticks.
# Cheap default; override per-session with `pi --model ...`.
PI_DEFAULT_PROVIDER=openai
PI_DEFAULT_MODEL=gpt-5-mini
# --- Fast LLM tier (TimeWeb / OpenAI-compatible, v0.3.0+) --------------------
# Pi (CLI) handles slow deep analytics — post-mortem and 30-min reflection.
# A parallel "fast advisor" tier handles tactical "what to do RIGHT NOW"
# decisions when the reflex is stuck / preempted. The default expectation
# is TimeWeb, but any OpenAI-compatible endpoint works (OpenAI direct,
# Groq, OpenRouter, local Ollama with the OpenAI shim).
#
# Leave blank to disable — the bot then runs without the fast tier
# (rc.1 scaffold is a safe no-op when API_KEY is unset).
TIMEWEB_BASE_URL=
TIMEWEB_API_KEY=
TIMEWEB_MODEL=
# Optional: request timeout in ms (default 8000)
TIMEWEB_TIMEOUT_MS=
# --- Bot behaviour ------------------------------------------------------------
# How often (seconds) the autonomous tick prompt fires. Set to 0 to disable.
TICK_INTERVAL_SECONDS=60
# Chat rate limit (messages per minute). Paper/Spigot spam kickers typically
# trigger around 20/min.
CHAT_RATE_LIMIT_PER_MIN=15
# Guarded travel refuses coordinate requests farther than this many blocks from
# the bot's current position.
MAX_TRAVEL_BLOCKS=500
# --- Trusted operators (optional) ---------------------------------------------
# Comma-separated MC nicknames whose chat messages the bot treats as trusted:
# scope checks are relaxed (the bot will *try* to do new things instead of
# escalating "out of scope"), and routine confirmations are skipped.
#
# SECURITY NOTE: this is only safe on servers where a nickname cannot be
# impersonated. That includes:
# - online-mode (premium / Mojang-auth) servers — UUID is verified
# - cracked servers with AuthMe (or similar) — the password gates the nick
# On a pure cracked server with NO login plugin, leave this empty.
#
# Even for trusted operators, "Hard safety rules" in AGENTS.md remain absolute
# (no OP, no breaking other players' builds, no .env leak, no chat spam).
OPERATOR_USERNAMES=
# --- Optional: Telegram bridge (future skill, not wired yet) ------------------
# TELEGRAM_BOT_TOKEN=
# TELEGRAM_OPERATOR_CHAT_ID=
# --- Optional: prismarine-viewer for local visual debugging -------------------
# Set to a port to launch the in-browser viewer alongside the bot
# (http://localhost:<port>). Requires `npm i prismarine-viewer` — kept out of
# the default deps to keep the runtime light. Set to 0 or leave empty to skip.
VIEWER_PORT=0