GUI
High level overview of the Graphical User Interface (GUI) in OpenHands.
Prerequisites
Overview
Initial Setup
- Upon first launch, you’ll see a settings popup.
- Select an
LLM Provider
andLLM Model
from the dropdown menus. If the required model does not exist in the list, selectsee advanced settings
. Then toggleAdvanced
options and enter it with the correct prefix in theCustom Model
text box. - Enter the corresponding
API Key
for your chosen provider. - Click
Save Changes
to apply the settings.
Settings
You can use the Settings page at any time to:
- Setup the LLM provider and model for OpenHands.
- Setup the search engine.
- Configure MCP servers.
- Connect to GitHub and connect to GitLab
- Set application settings like your preferred language, notifications and other preferences.
- Manage custom secrets.
GitHub Setup
OpenHands automatically exports a GITHUB_TOKEN
to the shell environment if provided:
GitLab Setup
OpenHands automatically exports a GITLAB_TOKEN
to the shell environment if provided:
BitBucket Setup (Coming soon …)
Secrets Management
OpenHands provides a secrets manager that allows you to securely store and manage sensitive information that can be accessed by the agent during runtime, such as API keys. These secrets are automatically exported as environment variables in the agent’s runtime environment.
-
Accessing the Secrets Manager:
- In the Settings page, navigate to the
Secrets
tab. - You’ll see a list of all your existing custom secrets (if any).
- In the Settings page, navigate to the
-
Adding a New Secret:
- Click the
Add New Secret
button. - Fill in the following fields:
- Name: A unique identifier for your secret (e.g.,
AWS_ACCESS_KEY
). This will be the environment variable name. - Value: The sensitive information you want to store.
- Description (optional): A brief description of what the secret is used for, which is also provided to the agent.
- Name: A unique identifier for your secret (e.g.,
- Click
Add Secret
to save.
- Click the
-
Editing a Secret:
- Click the
Edit
button next to the secret you want to modify. - You can update the name and description of the secret.
- Note: For security reasons, you cannot view or edit the value of an existing secret. If you need to change the value, delete the secret and create a new one.
- Click the
-
Deleting a Secret:
- Click the
Delete
button next to the secret you want to remove. - Confirm the deletion when prompted.
- Click the
-
Using Secrets in the Agent:
- All custom secrets are automatically exported as environment variables in the agent’s runtime environment.
- You can access them in your code using standard environment variable access methods (e.g.,
os.environ['SECRET_NAME']
in Python). - Example: If you create a secret named
OPENAI_API_KEY
, you can access it in your code asprocess.env.OPENAI_API_KEY
in JavaScript oros.environ['OPENAI_API_KEY']
in Python.
Advanced Settings
The Advanced
settings allows configuration of additional LLM settings. Inside the Settings page, under the LLM
tab,
toggle Advanced
options to access additional settings.
- Custom Model: Use the
Custom Model
text box to manually enter a model. Make sure to use the correct prefix based on litellm docs. - Base URL: Specify a
Base URL
if required by your LLM provider. - Memory Condensation: The memory condenser manages the LLM’s context by ensuring only the most important and relevant information is presented.
- Confirmation Mode: Enabling this mode will cause OpenHands to confirm an action with the user before performing it.
Key Features
For an overview of the key features available inside a conversation, please refer to the Key Features section of the documentation.
Status Indicator
The status indicator located in the bottom left of the screen will cycle through a number of states as a new conversation is loaded. Typically these include:
Disconnected
: The frontend is not connected to any conversationConnecting
: The frontend is connecting a websocket to a conversation.Building Runtime...
: The server is building a runtime. This is typically in development mode only while building a docker image.Starting Runtime...
: The server is starting a new runtime instance - probably a new docker container or remote runtime.Initializing Agent...
: The server is starting the agent loop. (This step does not appear at present with Nested runtimes)Setting up workspace...
: Usually this means agit clone ...
operation.Setting up git hooks
: Setting up the git pre commit hooks for the workspace.Agent is awaiting user input...
: Ready to go!
Tips for Effective Use
- Be specific in your requests to get the most accurate and helpful responses, as described in the prompting best practices.
- Use one of the recommended models, as described in the LLMs section.