|
|
@@ -0,0 +1,41 @@
|
|
|
+# Running in Headless Mode
|
|
|
+
|
|
|
+You can run OpenHands via a CLI, without starting the web application. This makes it easy
|
|
|
+to automate tasks with OpenHands.
|
|
|
+
|
|
|
+## With Python
|
|
|
+To run OpenHands in headless mode with Python,
|
|
|
+[follow the Development setup instructions](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md),
|
|
|
+and then run:
|
|
|
+
|
|
|
+```bash
|
|
|
+poetry run python -m openhands.core.main -t "write a bash script that prints hi"
|
|
|
+```
|
|
|
+
|
|
|
+## With Docker
|
|
|
+To run OpenHands in headless mode with Docker, run:
|
|
|
+
|
|
|
+```bash
|
|
|
+# Set WORKSPACE_BASE to the directory you want OpenHands to edit
|
|
|
+WORKSPACE_BASE=$(pwd)/workspace
|
|
|
+
|
|
|
+# Set LLM_API_KEY to an API key, e.g. for OpenAI or Anthropic
|
|
|
+LLM_API_KEY="abcde"
|
|
|
+
|
|
|
+# Set LLM_MODEL to the model you want to use
|
|
|
+LLM_MODEL="gpt-4o"
|
|
|
+
|
|
|
+docker run -it \
|
|
|
+ --pull=always \
|
|
|
+ -e SANDBOX_USER_ID=$(id -u) \
|
|
|
+ -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
|
|
|
+ -e LLM_API_KEY=$LLM_API_KEY \
|
|
|
+ -e LLM_MODEL=$LLM_MODEL \
|
|
|
+ -v $WORKSPACE_BASE:/opt/workspace_base \
|
|
|
+ -v /var/run/docker.sock:/var/run/docker.sock \
|
|
|
+ --add-host host.docker.internal:host-gateway \
|
|
|
+ --name openhands-app-$(date +%Y%m%d%H%M%S) \
|
|
|
+ ghcr.io/all-hands-ai/openhands:main \ # TODO: pin a version here
|
|
|
+ python -m openhands.core.main \
|
|
|
+ -t "Write a bash script that prints Hello World"
|
|
|
+```
|