| title | Repository Customization |
|---|---|
| description | You can customize how OpenHands interacts with your repository by creating a `.openhands` directory at the root level. |
Skills allow you to extend OpenHands prompts with information specific to your project and define how OpenHands should function. See Skills Overview for more information.
You can add a .openhands/setup.sh file, which will run every time OpenHands begins working with your repository.
This is an ideal location for installing dependencies, setting environment variables, and performing other setup tasks.
For example:
#!/bin/bash
export MY_ENV_VAR="my value"
sudo apt-get update
sudo apt-get install -y lsof
cd frontend && npm install ; cd ..You can add a .openhands/pre-commit.sh file to create a custom git pre-commit hook that runs before each commit.
This can be used to enforce code quality standards, run tests, or perform other checks before allowing commits.
For example:
#!/bin/bash
# Run linting checks
cd frontend && npm run lint
if [ $? -ne 0 ]; then
echo "Frontend linting failed. Please fix the issues before committing."
exit 1
fi
# Run tests
cd backend && pytest tests/unit
if [ $? -ne 0 ]; then
echo "Backend tests failed. Please fix the issues before committing."
exit 1
fi
exit 0You can add a .openhands/stop.sh file, which will run every time the agent finishes a task (i.e., when the agent emits an AgentFinishAction / transitions to the FINISHED state).
- Runs inside the sandbox/runtime environment
- Runs from the repository root (best-effort via
git rev-parse --show-toplevel) - Times out after 10 minutes
For example:
#!/bin/bash
# Example: write a simple summary marker for downstream automation
echo "OpenHands finished at $(date -Iseconds)" >> .openhands/finish.log