# --- 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:). 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