Skip to content

arniesaha/agent-max

Repository files navigation

Agent Max

A self-hosted autonomous agent that runs on a Mac Mini, designed to work as part of a distributed multi-agent system. Max handles browser automation, GPU management, file operations, and delegates tasks to a companion NAS agent via the A2A (Agent-to-Agent) protocol.

Architecture

Max runs on a Mac Mini alongside a companion agent (Nix) on a NAS. Both expose A2A servers and communicate bidirectionally. Users interact with both agents through Telegram.

graph LR
    User["User<br/>(Telegram)"]

    subgraph mac["Mac Mini"]
        Max["Max Agent<br/>Pi Mono + A2A :8770"]
    end

    subgraph nas["NAS"]
        Nix["NAS Agent<br/>OpenClaw + A2A :8771"]
    end

    User <-->|Telegram| Max
    User <-->|Telegram| Nix
    Max <-->|A2A| Nix

    Max -->|CDP| Chrome["Chrome<br/>Browser"]
    Max -->|WoL / Ollama / Shutdown| GPU["GPU PC"]
    Max -->|SSH| NAS_FS["NAS Filesystem"]

    Nix --> Recall["Recall<br/>Memory"]
    Nix --> Cron["Cron<br/>Scheduler"]
    Nix --> TG["Telegram<br/>Messaging"]
Loading

Tools

Tool Description
browser_control Chrome automation via CDP
wake_gpu / shutdown_gpu / gpu_status GPU PC power management (WoL + Ollama)
ssh_to_nas Run commands on the NAS via SSH
delegate_to_nix Send tasks to the NAS agent via A2A
read_file / write_file / list_files Local filesystem operations
run_shell Execute shell commands
linkedin_search / linkedin_results LinkedIn scraping
launchpad_run_scraper / launchpad_deploy Launchpad automation
ios_list_devices / ios_build / ios_install iOS build and deploy
context_info Agent context and state info

Setup

git clone <repo-url> && cd agent-max
cp .env.example .env
# Fill in your API keys and config in .env
npm install
npm run build
npm start

Environment Variables

See .env.example for the full list. Key variables:

  • GOOGLE_API_KEY / ANTHROPIC_API_KEY — LLM provider keys
  • TELEGRAM_BOT_TOKEN / TELEGRAM_ALLOWED_USERS — Telegram bot config
  • A2A_PORT — Port for the A2A server (default: 8770)
  • A2A_SHARED_SECRET — Shared secret for A2A auth between agents
  • NIX_A2A_URL — URL of the companion NAS agent
  • NAS_HOST / NAS_USER — NAS SSH access
  • GPU_HOST / GPU_WOL_URL / GPU_SHUTDOWN_TOKEN — GPU PC management
  • MAX_A2A_URL — Public URL for this agent's A2A card

Development

npm run dev   # Watch mode with tsx + nodemon
npm run tui   # Interactive TUI client

A2A Protocol

Max exposes an A2A server for receiving tasks from other agents:

  • GET /.well-known/agent.json — Agent card (public)
  • GET /health — Health check (public)
  • POST /tasks — Submit a task (auth required)
  • POST /tasks/stream — Submit with SSE streaming (auth required)
  • GET /tasks/:id — Query task status (auth required)

Auth uses Authorization: Bearer <A2A_SHARED_SECRET>.

About

Autonomous AI agent for Mac Mini — distributed multi-agent system with A2A protocol

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages