Robert Brennan 018080aae0 fix rate limiting (#5135) 1 年之前
..
.husky 8bfa61f3e4 Run package commands directly (#3013) 1 年之前
__tests__ 1acb66c2b3 feat(frontend): Create push to Github action button in chat interface (#4993) 1 年之前
public b3fbbbaa9d feat(frontend): Move posthog key to config and upgrade posthog-js (#4940) 1 年之前
scripts e32d95cb1a lint: simplify hooks already covered by Ruff (#1204) 1 年之前
src 6b89386398 fix 404 issue for /config (#5114) 1 年之前
tests ffc4d32440 feat(frontend): Keep prompt after project upload or repo selection (#4925) 1 年之前
.env.sample 6fe5482b20 [ALL-571] chore(frontend): Move `saas`-related configs to `config.json` (#4496) 1 年之前
.eslintrc 1d2a616be7 Fix issue #4739: '[Bug]: The agent doesn'"'"'t know its name' (#4740) 1 年之前
.gitignore 6eafe0d2a8 feat(frontend): Redirect user to app after a project upload or repo selection (and add e2e tests) (#4751) 1 年之前
.npmrc 0534c14279 feat: i18n (#723) 1 年之前
.prettierrc.json e32d95cb1a lint: simplify hooks already covered by Ruff (#1204) 1 年之前
README.md ce18792b12 docs(frontend): Update README (#4262) 1 年之前
global.d.ts 6fe5482b20 [ALL-571] chore(frontend): Move `saas`-related configs to `config.json` (#4496) 1 年之前
index.html 01ae22ef57 Rename OpenDevin to OpenHands (#3472) 1 年之前
package-lock.json 018080aae0 fix rate limiting (#5135) 1 年之前
package.json 302e41d7bb Release 0.14.1 (#5133) 1 年之前
playwright.config.ts 6eafe0d2a8 feat(frontend): Redirect user to app after a project upload or repo selection (and add e2e tests) (#4751) 1 年之前
postcss.config.js 658b860d04 feat: support tailwind and daisyUI (#266) 1 年之前
tailwind.config.js bfdd7fd620 feat(frontend): UI overhaul (#3604) 1 年之前
test-utils.tsx a1a9d2f175 Refactor websocket (#4879) 1 年之前
tsconfig.json 1d2a616be7 Fix issue #4739: '[Bug]: The agent doesn'"'"'t know its name' (#4740) 1 年之前
vite-env.d.ts cac687508f cra -> vite (#47) 1 年之前
vite.config.ts 9d47ddba38 Reduce output from frontend tests (#5023) 1 年之前
vitest.setup.ts 9d47ddba38 Reduce output from frontend tests (#5023) 1 年之前

README.md

Getting Started with the OpenHands Frontend

Overview

This is the frontend of the OpenHands project. It is a React application that provides a web interface for the OpenHands project.

Tech Stack

  • Remix SPA Mode (React + Vite + React Router)
  • TypeScript
  • Redux
  • Tailwind CSS
  • i18next
  • React Testing Library
  • Vitest
  • Mock Service Worker

Getting Started

Prerequisites

  • Node.js 20.x or later
  • npm, bun, or any other package manager that supports the package.json file

Installation

# Clone the repository
git clone https://github.com/All-Hands-AI/OpenHands.git

# Change the directory to the frontend
cd OpenHands/frontend

# Install the dependencies
npm install

Running the Application in Development Mode

We use msw to mock the backend API. To start the application with the mocked backend, run the following command:

npm run dev

This will start the application in development mode. Open http://localhost:3001 to view it in the browser.

NOTE: The backend is partially mocked using msw. Therefore, some features may not work as they would with the actual backend.

Running the Application with the Actual Backend (Production Mode)

There are two ways to run the application with the actual backend:

# Build the application from the root directory
make build

# Start the application
make start

OR

# Start the backend from the root directory
make start-backend

# Build the frontend
cd frontend && npm run build

# Serve the frontend
npm start -- --port 3001

Environment Variables

TODO

Project Structure

frontend
├── __tests__ # Tests
├── public
├── src
│   ├── api # API calls
│   ├── assets
│   ├── components # Reusable components
│   ├── context # Local state management
│   ├── hooks # Custom hooks
│   ├── i18n # Internationalization
│   ├── mocks # MSW mocks for development
│   ├── routes # React Router file-based routes
│   ├── services
│   ├── state # Redux state management
│   ├── types
│   ├── utils # Utility/helper functions
│   └── root.tsx # Entry point
└── .env.sample # Sample environment variables

Features

  • Real-time updates with WebSockets
  • Internationalization
  • Router data loading with Remix
  • User authentication with GitHub OAuth (if saas mode is enabled)

Testing

We use Vitest for testing. To run the tests, run the following command:

npm run test

Contributing

Please read the CONTRIBUTING.md file for details on our code of conduct, and the process for submitting pull requests to us.

Troubleshooting

TODO