# Hermes Agent - Hugging Face Spaces Dockerfile FROM python:3.12-slim RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ ca-certificates \ gnupg \ git \ wget \ unzip \ inotify-tools \ ffmpeg \ && rm -rf /var/lib/apt/lists/* RUN curl -LsSf https://astral.sh/uv/install.sh | sh ENV PATH="/root/.local/bin:$PATH" WORKDIR /app COPY pyproject.toml ./ COPY requirements.txt ./ COPY README.md ./ RUN uv pip install --system \ "pydantic>=2.0" \ "httpx" \ "requests" \ "pyyaml" \ "jinja2" \ "rich" \ "tenacity" \ "python-dotenv" \ "fire" \ "openai" \ "anthropic>=0.39.0" \ "prompt_toolkit" \ "typer" \ "platformdirs" \ "python-telegram-bot>=20.0" \ "aiohttp>=3.9.0" \ "edge-tts" \ "faster-whisper>=1.0.0" \ "firecrawl-py" \ "parallel-web>=0.4.2" \ "fal-client" \ "croniter" \ "slack-bolt>=1.18.0" \ "slack-sdk>=3.27.0" \ "mcp>=1.2.0" COPY agent/ ./agent/ COPY tools/ ./tools/ COPY gateway/ ./gateway/ COPY hermes_cli/ ./hermes_cli/ COPY cron/ ./cron/ COPY honcho_integration/ ./honcho_integration/ COPY acp_adapter/ ./acp_adapter/ COPY run_agent.py ./ COPY model_tools.py ./ COPY toolsets.py ./ COPY cli.py ./ COPY hermes_state.py ./ COPY hermes_constants.py ./ COPY hermes_time.py ./ COPY utils.py ./ COPY batch_runner.py ./ COPY trajectory_compressor.py ./ COPY toolset_distributions.py ./ COPY cli-config.yaml.example ./ COPY .env.example ./ RUN git submodule update --init --recursive || true RUN uv pip install --system -e . COPY setup.sh /usr/local/bin/setup.sh COPY hermes_run.py /usr/local/bin/hermes_run.py RUN chmod +x /usr/local/bin/setup.sh /usr/local/bin/hermes_run.py RUN mkdir -p /root/.hermes/workspace/skills RUN mkdir -p /root/.hermes/workspace/memory RUN mkdir -p /root/.hermes/sessions ENV HERMES_HOME=/root/.hermes ENV HERMES_WORKSPACE=/root/.hermes/workspace ENV PYTHONUNBUFFERED=1 EXPOSE 7860 HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ CMD curl -f http://localhost:7860/ || exit 1 ENTRYPOINT ["/usr/local/bin/setup.sh"]