Az's Companions
A wholesome adult companion for Minecraft 1.21.1 — follow you through the world, fight beside you, sleep at night, and (optionally) chat with you via a local or remote LLM.
Characters are explicitly adult, wholesome, and non-sexual.
FOR LATEST AND WiP BUILDS VISIT GITHUB
Since 1.0.9 CCI support is merged in the main file.
Summon a companion with the Companion Charm, then command them with the in-game menu (default keybind K) or charm + Shift + right-click:
/ask dialogue, idle chatter, and event reactions when you configure an LLM (off by default)Owned companions do not naturally despawn. Desert pyramids can drop a Companion Charm (~5%; disable with world.enableLoot).
| Jar | Use when |
|---|---|
| Standalone (NeoForge or Fabric) | Default — no streamer bridge |
| CCI (NeoForge or Fabric) | Twitch / Streamlabs / StreamElements via CCI + iChunUtil |
Install one Az's Companions jar per loader — never standalone + CCI together.
Requirements: Minecraft 1.21.1, Java 21, NeoForge 21.1.x or Fabric Loader ≥0.16 + Fabric API.
CCI editions only: CCI 1.13.0 + iChunUtil 1.0.3 for the same loader.
Works without these; nicer with them:
/ask only target your companions.Default: disabled. Without a provider, companions use short offline / scripted lines only. Enabling AI never forces a cloud API — you choose local or remote.
/ask <message> or /az ask <message> (optionally name a companion)./az persona edit.config / env / not set), never the secret.AZS_LLM_API_KEY over pasting keys into config files.Configure in /az admin → AI Config (or /az ai config) — ops / host / whitelist:
| Profile examples | Typical use |
|---|---|
| Disabled | Default, offline-safe |
| LM Studio / Ollama | Local OpenAI-compatible HTTP |
| LiteLLM / OpenAI / OpenRouter / Groq | Remote or proxied /v1/chat/completions |
| MCP | Route chat through an MCP companion_chat tool |
Files: Fabric config/azscompanions-ai.json · NeoForge config/azscompanions-ai.toml.
Save & apply writes the file and hot-applies admin fields (no restart required for those).
/ask always runs in the server process (no per-joiner client LLM). Turn Use server LLM on when you want that shared endpoint intentional.| Setting | What it does |
|---|---|
provider |
disabled / local / openai_compatible / mcp |
baseUrl + model |
Endpoint and model id |
apiKey / apiKeyEnv |
Secrets on the host only |
Use server LLM (serverLlmOnly) |
Opt-in shared host LLM |
Idle chat (idleChat) |
Ambient + reactive lines nearby |
idleChatSecondsMin / Max |
Ambient interval (default ~75–180s) |
maxParallelRequests |
Concurrent LLM calls (default 2; /ask jumps the queue) |
timeoutSeconds / connectTimeoutSeconds |
Generation vs fail-fast connect |
maxTokens |
Reply length cap (ambient capped shorter) |
perCompanionMemory / memoryMaxMessages |
Separate minds + history depth |
inputLanguage |
Preferred reply language |
enableChatMessages |
Show replies as owner chat lines |
Status: /az ai status. Full reference: Companion AI docs.
/az admin → AI Config → choose a profile → set model → save.AZS_LLM_API_KEY (or masked apiKey on the host only)./ask hello near your companion./ask./az — primary root (alias /azscompanions)/ask · /az ask — talk to your companion/az admin · /az ai config — admin / AI panel/az persona … — view / edit persona/az teamfight on|off|status — ops team-fight toggle