Documentation updates (#3733)

* update badges

* fix badges

* better badges

* move credits

* more badge work

* add gh logo

* update some copy

* update logo

* fix height

* update text

* emdash

* remove cruft

* move title

* update links

* add hr

* white logo

* move some stuff to getting-started

* revert logo

* more copy changes

* minor tweaks

* fix sidebar

* explicit sidebar

* words

* fix tag

* fix how-to

* more docs work

* update styles

* fix up custom sandbox docs

* change eval title

* fix up getting-started

* fix getting started

* update to 0.9.2

* update screenshot

* add company link

* fix dark mode

* minor fixes

* update image

* update headless and cli docs

* update readme

* fix links

* revert package

* rename links

* fix links

* fix link

* chagne to claude
This commit is contained in:
Robert Brennan 2024-09-04 17:22:52 -04:00 committed by GitHub
parent ec25abd98b
commit ee158feb15
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 174 additions and 180 deletions

View File

@ -16,7 +16,7 @@
<a href="https://discord.gg/ESHStjSjD4"><img src="https://img.shields.io/badge/Discord-Join%20Us-purple?logo=discord&logoColor=white&style=for-the-badge" alt="Join our Discord community"></a>
<a href="https://github.com/All-Hands-AI/OpenHands/blob/main/CREDITS.md"><img src="https://img.shields.io/badge/Project-Credits-blue?style=for-the-badge&color=FFE165&logo=github&logoColor=white" alt="Credits"></a>
<br/>
<a href="https://docs.all-hands.dev/modules/usage/intro"><img src="https://img.shields.io/badge/Documentation-000?logo=googledocs&logoColor=FFE165&style=for-the-badge" alt="Check out the documentation"></a>
<a href="https://docs.all-hands.dev/modules/usage/getting-started"><img src="https://img.shields.io/badge/Documentation-000?logo=googledocs&logoColor=FFE165&style=for-the-badge" alt="Check out the documentation"></a>
<a href="https://arxiv.org/abs/2407.16741"><img src="https://img.shields.io/badge/Paper%20on%20Arxiv-000?logoColor=FFE165&logo=arxiv&style=for-the-badge" alt="Paper on Arxiv"></a>
<a href="https://huggingface.co/spaces/OpenDevin/evaluation"><img src="https://img.shields.io/badge/Benchmark%20score-000?logoColor=FFE165&logo=huggingface&style=for-the-badge" alt="Evaluation Benchmark Score"></a>
<hr>
@ -54,8 +54,12 @@ docker run -it --pull=always \
ghcr.io/all-hands-ai/openhands:0.9
```
You'll find OpenHands running at [http://localhost:3000](http://localhost:3000).
Visit [Getting Started](https://docs.all-hands.dev/modules/usage/getting-started) for more information and setup.
You'll find OpenHands running at [http://localhost:3000](http://localhost:3000)!
You can also run OpenHands in a scriptable [headless mode](https://docs.all-hands.dev/modules/usage/how-to/headless-mode),
or as an [interactive CLI](https://docs.all-hands.dev/modules/usage/how-to/cli-mode).
Visit [Getting Started](https://docs.all-hands.dev/modules/usage/getting-started) for more information and setup instructions.
If you want to modify the OpenHands source code, check out [Development.md](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md).
@ -64,7 +68,7 @@ Having issues? The [Troubleshooting Guide](https://docs.all-hands.dev/modules/us
## 📖 Documentation
To learn more about the project, and for tips on using OpenHands,
**check out our [documentation](https://docs.all-hands.dev/modules/usage/intro)**.
**check out our [documentation](https://docs.all-hands.dev/modules/usage/getting-started)**.
There you'll find resources on how to use different LLM providers (like ollama and Anthropic's Claude),
troubleshooting resources, and advanced configuration options.

View File

@ -4,8 +4,8 @@ import { themes as prismThemes } from "prism-react-renderer";
const config: Config = {
title: "OpenHands",
tagline: "An Open Platform for AI Software Developers as Generalist Agents",
favicon: "img/logo.png",
tagline: "Code Less, Make More",
favicon: "img/logo-square.png",
// Set the production url of your site here
url: "https://docs.all-hands.dev",
@ -73,23 +73,28 @@ const config: Config = {
type: "docSidebar",
sidebarId: "docsSidebar",
position: "left",
label: "Docs",
label: "User Guides",
},
{
type: "docSidebar",
sidebarId: "apiSidebar",
position: "left",
label: "Codebase",
label: "Python API",
},
{
type: 'localeDropdown',
position: 'left',
},
{
href: "https://all-hands.dev",
label: "Company",
position: "right",
},
{
href: "https://github.com/All-Hands-AI/OpenHands",
label: "GitHub",
position: "right",
},
{
type: 'localeDropdown',
position: 'left',
},
],
},
prism: {

View File

@ -28,6 +28,9 @@ docker run -it --pull=always \
ghcr.io/all-hands-ai/openhands:0.9
```
You can also run OpenHands in a scriptable [headless mode](https://docs.all-hands.dev/modules/usage/how-to/headless-mode),
or as an [interactive CLI](https://docs.all-hands.dev/modules/usage/how-to/cli-mode).
## Setup
After running the command above, you'll find OpenHands running at [http://localhost:3000](http://localhost:3000).

View File

@ -1,8 +1,10 @@
# Running in CLI Mode
# CLI Mode
OpenHands can be run in an interactive CLI mode, which allows users to start an interactive session via the command line. This mode is different from the headless mode, which is non-interactive.
OpenHands can be run in an interactive CLI mode, which allows users to start an interactive session via the command line.
## Starting an Interactive Session
This mode is different from the [headless mode](headless-mode), which is non-interactive and better for scripting.
## With Python
To start an interactive OpenHands session via the command line, follow these steps:
@ -16,7 +18,11 @@ poetry run python -m openhands.core.cli
This command will start an interactive session where you can input tasks and receive responses from OpenHands.
## Running in CLI Mode with Docker
You'll need to be sure to set your model, API key, and other settings via environment variables
[or the `config.toml` file](https://github.com/All-Hands-AI/OpenHands/blob/main/config.template.toml).
## With Docker
To run OpenHands in CLI mode with Docker, follow these steps:
@ -26,18 +32,18 @@ To run OpenHands in CLI mode with Docker, follow these steps:
WORKSPACE_BASE=$(pwd)/workspace
```
2. Set `LLM_API_KEY` to an API key, e.g., for OpenAI or Anthropic:
2. Set `LLM_MODEL` to the model you want to use:
```bash
LLM_MODEL="claude-3-5-sonnet-20240620"
```
3. Set `LLM_API_KEY` to an API key, e.g., for OpenAI or Anthropic:
```bash
LLM_API_KEY="abcde"
```
3. Set `LLM_MODEL` to the model you want to use:
```bash
LLM_MODEL="gpt-4o"
```
4. Run the following Docker command:
```bash
@ -57,11 +63,6 @@ docker run -it \
This command will start an interactive session in Docker where you can input tasks and receive responses from OpenHands.
## Difference Between CLI Mode and Headless Mode
- **CLI Mode**: Interactive mode where users can input tasks and receive responses in real-time. It is suitable for users who prefer or require a command-line interface.
- **Headless Mode**: Non-interactive mode where tasks are executed without user interaction. It is suitable for automation and scripting purposes.
## Examples of CLI Commands and Expected Outputs
Here are some examples of CLI commands and their expected outputs:

View File

@ -1,7 +1,11 @@
# Create and Use a Custom Docker Sandbox
# Custom Sandbox
The default OpenHands sandbox comes with a [minimal ubuntu configuration](https://github.com/All-Hands-AI/OpenHands/blob/main/containers/sandbox/Dockerfile).
Your use case may need additional software installed by default.
The sandbox is where the agent does its work--instead of running commands directly on your computer
(which could be dangerous), the agent runs them inside of a Docker container.
The default OpenHands sandbox comes with a
[minimal ubuntu configuration](https://github.com/All-Hands-AI/OpenHands/blob/main/containers/sandbox/Dockerfile).
Your use case may need additional software installed by default. In this case, you can build a custom sandbox image.
There are two ways you can do so:

View File

@ -1,4 +1,4 @@
# Contribute to OpenHands Evaluation Harness
# Evaluation
This guide provides an overview of how to integrate your own evaluation benchmark into the OpenHands framework.
@ -12,7 +12,7 @@ Here's an example configuration file you can use to define and use multiple LLMs
```toml
[llm]
# IMPORTANT: add your API key here, and set the model to the one you want to evaluate
model = "gpt-4o-2024-05-13"
model = "claude-3-5-sonnet-20240620"
api_key = "sk-XXX"
[llm.eval_gpt4_1106_preview_llm]

View File

@ -1,15 +1,9 @@
# Running in Headless Mode
# Headless Mode
You can run OpenHands via a CLI, without starting the web application. This makes it easy to automate tasks with OpenHands.
You can run OpenHands with a single command, without starting the web application.
This makes it easy to write scripts and automate tasks with OpenHands.
## Difference Between CLI Mode and Headless Mode
- **CLI Mode**: Interactive mode where users can input tasks and receive responses in real-time. It is suitable for users who prefer or require a command-line interface.
- **Headless Mode**: Non-interactive mode where tasks are executed without user interaction. It is suitable for automation and scripting purposes.
For more information on CLI mode, refer to the [CLI Mode documentation](./cli-mode.md).
As with other modes, the environment is configurable via environment variables or by saving values into [config.toml](https://github.com/All-Hands-AI/OpenHands/blob/main/config.template.toml)
This is different from [CLI Mode](cli-mode), which is interactive, and better for active development.
## With Python
@ -17,8 +11,46 @@ 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:
### Headless with Python
```bash
poetry run python -m openhands.core.main -t "write a bash script that prints hi"
```
You'll need to be sure to set your model, API key, and other settings via environment variables
[or the `config.toml` file](https://github.com/All-Hands-AI/OpenHands/blob/main/config.template.toml).
## With Docker
1. Set `WORKSPACE_BASE` to the directory you want OpenHands to edit:
```bash
WORKSPACE_BASE=$(pwd)/workspace
```
2. Set `LLM_MODEL` to the model you want to use:
```bash
LLM_MODEL="claude-3-5-sonnet-20240620"
```
3. Set `LLM_API_KEY` to an API key, e.g., for OpenAI or Anthropic:
```bash
LLM_API_KEY="abcde"
```
4. Run the following Docker command:
```bash
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:0.9 \
poetry run python -m openhands.core.main -t "write a bash script that prints hi"
```

View File

@ -1,5 +0,0 @@
---
sidebar_position: 6
---
# 🔎 How To Section

View File

@ -1,6 +1,6 @@
# Use OpenHands in OpenShift/K8S
# Kubernetes
There are different ways this can be accomplished. This guide goes through one possible way:
There are different ways you might run OpenHands on Kubernetes or OpenShift. This guide goes through one possible way:
1. Create a PV "as a cluster admin" to map workspace_base data and docker directory to the pod through the worker node
2. Create a PVC to be able to mount those PVs to the pod
3. Create a pod which contains two containers; the OpenHands and Sandbox containers

View File

@ -1,72 +0,0 @@
---
sidebar_position: 1
---
# 💻 OpenHands
OpenHands is an **autonomous AI software engineer** capable of executing complex engineering tasks and collaborating actively with users on software development projects.
This project is fully open-source, so you can use and modify it however you like.
:::tip
Explore the codebase of OpenHands on [GitHub](https://github.com/All-Hands-AI/OpenHands) or join one of our communities!
<a href="https://github.com/All-Hands-AI/OpenHands/graphs/contributors">
<img
src="https://img.shields.io/github/contributors/All-Hands-AI/OpenHands?style=for-the-badge"
alt="Contributors"
/>
</a>
<a href="https://github.com/All-Hands-AI/OpenHands/network/members">
<img
src="https://img.shields.io/github/forks/All-Hands-AI/OpenHands?style=for-the-badge"
alt="Forks"
/>
</a>
<a href="https://github.com/All-Hands-AI/OpenHands/stargazers">
<img
src="https://img.shields.io/github/stars/All-Hands-AI/OpenHands?style=for-the-badge"
alt="Stargazers"
/>
</a>
<a href="https://github.com/All-Hands-AI/OpenHands/issues">
<img
src="https://img.shields.io/github/issues/All-Hands-AI/OpenHands?style=for-the-badge"
alt="Issues"
/>
</a>
<br></br>
<a href="https://github.com/All-Hands-AI/OpenHands/blob/main/LICENSE">
<img
src="https://img.shields.io/github/license/All-Hands-AI/OpenHands?style=for-the-badge"
alt="MIT License"
/>
</a>
<br></br>
<a href="https://join.slack.com/t/opendevin/shared_invite/zt-2oikve2hu-UDxHeo8nsE69y6T7yFX_BA">
<img
src="https://img.shields.io/badge/Slack-Join%20Us-red?logo=slack&logoColor=white&style=for-the-badge"
alt="Join our Slack community"
/>
</a>
<a href="https://discord.gg/ESHStjSjD4">
<img
src="https://img.shields.io/badge/Discord-Join%20Us-purple?logo=discord&logoColor=white&style=for-the-badge"
alt="Join our Discord community"
/>
</a>
:::
## 🛠️ Getting Started
[Check out the getting started guide on Github](https://github.com/All-Hands-AI/OpenHands?tab=readme-ov-file#-getting-started)
[contributors-shield]: https://img.shields.io/github/contributors/All-Hands-AI/OpenHands?style=for-the-badge
[contributors-url]: https://github.com/All-Hands-AI/OpenHands/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/All-Hands-AI/OpenHands?style=for-the-badge
[forks-url]: https://github.com/All-Hands-AI/OpenHands/network/members
[stars-shield]: https://img.shields.io/github/stars/All-Hands-AI/OpenHands?style=for-the-badge
[stars-url]: https://github.com/All-Hands-AI/OpenHands/stargazers
[issues-shield]: https://img.shields.io/github/issues/All-Hands-AI/OpenHands?style=for-the-badge
[issues-url]: https://github.com/All-Hands-AI/OpenHands/issues
[license-shield]: https://img.shields.io/github/license/All-Hands-AI/OpenHands?style=for-the-badge
[license-url]: https://github.com/All-Hands-AI/OpenHands/blob/main/LICENSE

View File

@ -32,7 +32,7 @@ starcoder2:latest f67ae0f64584 1.7 GB 19 hours ago
### Docker
Use the instructions [here](../intro) to start OpenHands using Docker.
Use the instructions [here](../getting-started) to start OpenHands using Docker.
But when running `docker run`, you'll need to add a few more arguments:
```bash

View File

@ -1,8 +1,51 @@
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";
const sidebars: SidebarsConfig = {
docsSidebar: [{ type: "autogenerated", dirName: "usage" }],
apiSidebar: [require("./modules/python/sidebar.json")],
docsSidebar: [{
type: 'doc',
label: 'Getting Started',
id: 'usage/getting-started',
}, {
type: 'doc',
label: 'Troubleshooting',
id: 'usage/troubleshooting/troubleshooting',
}, {
type: 'doc',
label: 'Feedback',
id: 'usage/feedback',
}, {
type: 'category',
label: 'How-to Guides',
items: [{
type: 'doc',
id: 'usage/how-to/cli-mode',
}, {
type: 'doc',
id: 'usage/how-to/headless-mode',
}, {
type: 'doc',
id: 'usage/how-to/custom-sandbox-guide',
}, {
type: 'doc',
id: 'usage/how-to/evaluation-harness',
}, {
type: 'doc',
id: 'usage/how-to/openshift-example',
}]
}, {
type: 'doc',
label: 'LLMs',
id: 'usage/llms/llms',
}, {
type: 'doc',
label: 'Architecture',
id: 'usage/architecture/architecture',
}, {
type: 'doc',
label: 'About',
id: 'usage/about',
}],
};
export default sidebars;

View File

@ -7,17 +7,6 @@ function CustomFooter() {
return (
<footer className="custom-footer">
<div className="footer-content">
<div className="footer-top">
<div className="footer-title">
<Translate id="footer.title">OpenHands</Translate>
</div>
<div className="footer-link">
<a href="/modules/usage/intro">
<Translate id="footer.docs">Docs</Translate>
</a>
</div>
</div>
<div className="footer-icons">
<a href="https://join.slack.com/t/opendevin/shared_invite/zt-2oikve2hu-UDxHeo8nsE69y6T7yFX_BA" target="_blank" rel="noopener noreferrer">
<FaSlack />
@ -32,7 +21,7 @@ function CustomFooter() {
<div className="footer-bottom">
<p>
<Translate id="footer.copyright" values={{ year: new Date().getFullYear() }}>
{'Copyright © {year} OpenHands'}
{'Copyright © {year} All Hands AI, Inc'}
</Translate>
</p>
</div>

View File

@ -17,23 +17,19 @@ export function HomepageHeader() {
<p className="header-subtitle">{siteConfig.tagline}</p>
<div className="header-links">
<a href="https://github.com/All-Hands-AI/OpenHands">
<img src="https://img.shields.io/badge/Code-Github-purple?logo=github&logoColor=white&style=for-the-badge" alt="Code" />
</a>
<a href="https://join.slack.com/t/opendevin/shared_invite/zt-2oikve2hu-UDxHeo8nsE69y6T7yFX_BA">
<img src="https://img.shields.io/badge/Slack-Join%20Us-red?logo=slack&logoColor=white&style=for-the-badge" alt="Join our Slack community" />
</a>
<a href="https://discord.gg/ESHStjSjD4">
<img src="https://img.shields.io/badge/Discord-Join%20Us-purple?logo=discord&logoColor=white&style=for-the-badge" alt="Join our Discord community" />
</a>
<a href="https://arxiv.org/abs/2407.16741">
<img src="https://img.shields.io/badge/Paper-%20on%20Arxiv-red?logo=arxiv&style=for-the-badge" alt="Paper on Arxiv" />
</a>
<a href="https://huggingface.co/spaces/OpenDevin/evaluation">
<img src="https://img.shields.io/badge/Evaluation-Benchmark%20on%20HF%20Space-green?logo=huggingface&style=for-the-badge" alt="Evaluation Benchmark" />
</a>
<div align="center" className="header-links">
<a href="https://github.com/All-Hands-AI/OpenHands/graphs/contributors"><img src="https://img.shields.io/github/contributors/All-Hands-AI/OpenHands?style=for-the-badge&color=blue" alt="Contributors" /></a>
<a href="https://github.com/All-Hands-AI/OpenHands/stargazers"><img src="https://img.shields.io/github/stars/All-Hands-AI/OpenHands?style=for-the-badge&color=blue" alt="Stargazers" /></a>
<a href="https://codecov.io/github/All-Hands-AI/OpenHands?branch=main"><img alt="CodeCov" src="https://img.shields.io/codecov/c/github/All-Hands-AI/OpenHands?style=for-the-badge&color=blue" /></a>
<a href="https://github.com/All-Hands-AI/OpenHands/blob/main/LICENSE"><img src="https://img.shields.io/github/license/All-Hands-AI/OpenHands?style=for-the-badge&color=blue" alt="MIT License" /></a>
<br/>
<a href="https://join.slack.com/t/opendevin/shared_invite/zt-2oikve2hu-UDxHeo8nsE69y6T7yFX_BA"><img src="https://img.shields.io/badge/Slack-Join%20Us-red?logo=slack&logoColor=white&style=for-the-badge" alt="Join our Slack community" /></a>
<a href="https://discord.gg/ESHStjSjD4"><img src="https://img.shields.io/badge/Discord-Join%20Us-purple?logo=discord&logoColor=white&style=for-the-badge" alt="Join our Discord community" /></a>
<a href="https://github.com/All-Hands-AI/OpenHands/blob/main/CREDITS.md"><img src="https://img.shields.io/badge/Project-Credits-blue?style=for-the-badge&color=FFE165&logo=github&logoColor=white" alt="Credits" /></a>
<br/>
<a href="https://docs.all-hands.dev/modules/usage/getting-started"><img src="https://img.shields.io/badge/Documentation-000?logo=googledocs&logoColor=FFE165&style=for-the-badge" alt="Check out the documentation" /></a>
<a href="https://arxiv.org/abs/2407.16741"><img src="https://img.shields.io/badge/Paper%20on%20Arxiv-000?logoColor=FFE165&logo=arxiv&style=for-the-badge" alt="Paper on Arxiv" /></a>
<a href="https://huggingface.co/spaces/OpenDevin/evaluation"><img src="https://img.shields.io/badge/Benchmark%20score-000?logoColor=FFE165&logo=huggingface&style=for-the-badge" alt="Evaluation Benchmark Score" /></a>
</div>
<Demo />

View File

@ -7,8 +7,10 @@
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #4465db;
--ifm-code-font-size: 95%;
--ifm-color-primary: #000;
--ifm-background-color: #F1EAE0;
--ifm-navbar-background-color: #F1EAE0;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
--secondary: #171717;
--secondary-dark: #0a0a0a;
@ -17,21 +19,15 @@
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme="dark"] {
--ifm-color-primary: #4465db;
--ifm-color-primary: #FFF;
--ifm-background-color: #000;
--ifm-navbar-background-color: #000;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
--secondary: #737373;
--secondary-dark: #171717;
--secondary-light: #d4d4d4;
--secondary-light: #ccc;
}
.footer--dark {
background-image: linear-gradient(
140deg,
var(--secondary) 20%,
var(--secondary-light) 100%
);
}
.a {
p a, .a {
text-decoration: underline;
}
}

View File

@ -2,13 +2,19 @@
.custom-footer {
background-color: dark;
color: white;
height: 200px;
color: #000;
height: 100px;
/* background: linear-gradient(to bottom, #1a1a1a, #1a1a1a); */
background: linear-gradient(to bottom, #1f2937, #000000);
background-color: #F1EAE0;
}
[data-theme="dark"] .custom-footer {
background-color: #000;
color: #fff;
}
.footer-content {
display: flex;
flex-direction: column;
@ -47,7 +53,6 @@
}
.footer-community {
text-transform: uppercase;
font-weight: 300;
}
@ -65,7 +70,3 @@
.footer-icons a:hover {
color: white;
}
.footer-bottom {
text-transform: uppercase;
}

View File

@ -2,8 +2,6 @@
.homepage-header {
height: 800px;
color: white;
background: linear-gradient(to top, #64748b, #000000);
}
.header-content {

View File

@ -20,8 +20,7 @@ export default function Home(): JSX.Element {
title={`${siteConfig.title}`}
description={translate({
id: 'homepage.description',
message: 'An Open Platform for AI Software Developers as Generalist Agents',
description: 'The homepage description',
message: 'Code Less, Make More',
})}
>
<HomepageHeader />

BIN
docs/static/img/logo-square.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB