macmini-agent-fleet

Manage and debug persistent Discord LLM bots running under launchd on a Mac mini.

366|90|Updated Aug 22, 2026
One-click install
npx skills add https://github.com/bam-bam-2/solo-skills --skill macmini-agent-fleet-bam-bam-2
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: macmini-agent-fleet
Source: https://github.com/bam-bam-2/solo-skills/tree/main/skills/discord-agent-fleet
Command: npx skills add https://github.com/bam-bam-2/solo-skills --skill macmini-agent-fleet-bam-bam-2

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Running conversational Discord bots as always-on launchd services on a Mac mini fails in non-obvious ways: low power mode silently blocks KeepAlive restarts, CLAUDE.md files from parent directories inflate every Claude CLI call with hundreds of kilobytes of context, and launchd's minimal PATH kills node-based CLI fallbacks like Codex. This Skill documents those traps and the exact commands to diagnose and fix them. ## Core Features & Use Cases - Fleet Operations: Check status, restart, and read logs for three resident Discord bots (knowledge-bot-a, daily-brief-agent, bamnyangi) via SSH and launchctl. - Failure Diagnosis: Explains why low power mode pends nondemand spawns, why CLAUDE.md auto-loading inflates token usage, and why rc=127 node errors kill CLI fallbacks without throwing exceptions. - New Bot Creation: Copy an existing bot skeleton (bot.py, answer.py, store.py, persona.md, memory.md) with two-layer short/long-term memory and loop-prevention rules. - Use Case: A user says "the bot stopped answering" — the Skill guides checking launchctl state, using launchctl kickstart -k instead of bootstrap, and verifying PATH in a reproduced launchd environment. ## Quick Start Ask the agent to check why the Discord bot on the Mac mini is not responding and restart it using the launchctl kickstart procedure.

Frequently Asked Questions about macmini-agent-fleet

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I restart a launchd Discord bot on macOS?

Use `launchctl kickstart -k gui/$(id -u)/<service-label>` over SSH. On machines with low power mode enabled, bootstrap alone will not start the process because nondemand spawns are pended as inefficient, so kickstart is required to bypass that policy.

Why does my Claude CLI bot use far more tokens than expected?

The claude CLI walks up parent directories and auto-loads any CLAUDE.md it finds into every prompt. A large CLAUDE.md above the bot's working directory can add hundreds of kilobytes per call; fix it by pinning the subprocess cwd and shrinking or archiving parent CLAUDE.md files.

Why does Codex fallback fail under launchd but Claude works?

launchd provides only /usr/bin:/bin:/usr/sbin:/sbin as PATH. Codex is a node script with an env-based shebang, so it fails with rc=127 when node is not found, while Claude is a native binary. Embed PATH including /opt/homebrew/bin in the plist EnvironmentVariables.

How do I check if a CLI health check is silently broken?

subprocess.run does not raise an exception on shebang failures like rc=127, so try/except alone reports dead CLIs as OK. Always inspect the returncode explicitly and reproduce the launchd environment with `env -i` when validating.

Can these Discord bots use an Anthropic API key?

No. The setup explicitly forbids ANTHROPIC_API_KEY and routes all calls through the claude CLI with a subscription OAuth token, falling back to Codex only when a weekly limit message appears.