--- title: Openhands Godmode emoji: 📚 colorFrom: indigo colorTo: yellow sdk: docker pinned: false --- # OpenHands Godmode This folder contains the Hugging Face Space wrapper for the GODMODE-flavored OpenHands deployment. ## What is in this directory - `Dockerfile`: extends `ghcr.io/all-hands-ai/openhands:0.17` - `entrypoint_hf.sh`: waits for OpenHands core on port `3000` and proxies Hugging Face port `7860` to it via `socat` - `.gitattributes`: line-ending and text normalization metadata ## Runtime model The wrapper does not implement OpenHands itself. It adapts the upstream OpenHands container so it can run inside a Hugging Face Space where traffic arrives on port `7860`. Startup flow: 1. Launch upstream OpenHands core through `/app/entrypoint.sh` 2. Wait until port `3000` is reachable 3. Start a local proxy from `7860` to `3000` 4. Tail the OpenHands boot log so the Space console stays useful The Docker wrapper now normalizes shell line endings during build and launches the bridge through `/bin/bash` so the Hugging Face Linux runtime does not fail on CRLF-style script metadata. It also pins the upstream `uvicorn openhands.server.listen:app --port 3000` command explicitly so the child image does not lose the original OpenHands launch command. ## Required environment and secrets This folder is only the container wrapper. Runtime secrets and model routing are expected to come from the host environment or Hugging Face Space secrets. Typical inputs for the broader GODMODE stack are documented in: - `../ENV_REFERENCE.md` - `../.godmode_env.example` - `../openhands/docker-compose.yml` ## Local vs hosted reality - Local authoritative runtime config currently lives in `../openhands/` - Hosted Hugging Face adaptation currently lives in this directory - Multi-agent behavior mentioned in the external guide is not fully defined here and remains `partial` in `../STACK_GAP_ROADMAP.md` ## Related files - `../openhands/docker-compose.yml` - `../START_GODMODE.sh` - `../START_GODMODE.ps1` - `../STACK_OPERATIONS.md`