OpenDevin is a remarkable open-source project that successfully replicates Devin, an autonomous AI software engineer. Devin is capable of executing complex engineering tasks and collaborating actively with users on software development projects. The OpenDevin project not only replicates Devin but also enhances and innovates upon its capabilities through the power of the open-source community. With OpenDevin, you can confidently expect a high level of performance and innovation in your software development projects.
1. Fork the Official Repository
Fork OpenDevin repository into your account. Clone your forked repository into your local environment.
2. Configure Git
Set the OpenDevin official repository as your upstream to synchronize with the latest updates in the official repository. Add the original repository as an upstream
Make sure that the remote is set.
You should get both origin
and upstream
in the output.
3. Synchronize with the Official Repository
Synchronize the latest commit with the official repository before start coding.
4. Create a New Branch And Open a Pull Request
Once you finish implementing, open the forked repository and locate the source branch, which is your new branch. The target branch is OpenDevin/OpenDevin
main
. Once you’ve found both branches, you should see a PR in OpenDevin PRs.
Then OpenDevin team will review your code.
PR Rules
1. Pull Request title
As described here, a valid PR title should begin with one of the following prefixes:
feat
: A new featurefix
: A bug fixdoc
: Documentation only changesrefactor
: A code change that neither fixes a bug nor adds a featurestyle
: A refactoring that improves code styleperf
: A code change that improves performancetest
: Adding missing tests or correcting existing testsci
: Changes to CI configuration files and scripts (example scopes:.github
,ci
(Buildkite))chore
: Other changes that don’t modify src or test filesrevert
: Reverts a previous commit
For example, a PR title could be:
refactor: modify package path
feat(frontend): xxxx
, where(frontend)
means that this PR mainly focuses on the frontend component.
You may also check out the previous PRs in the PR list.
As described here, we create several labels. Every PR should have a better tag with corresponding labels.
2. Pull Request description
- If your PR is small (such as a typo fix), you can go brief.
- If it is large and you have changed a lot, it’s better to write more details.
Then, in another terminal, execute this:
Now you can access OpenDevin from localhost:3001
Choosing a Model
LiteLLM has been used in this tutorial, OpenDevin can run with any foundation model provided by LiteLLM, including OpenAI, Claude, and Gemini. For a full list of providers, you can visit LiteLLM’s website.
To change the model, set the LLM_MODEL
and LLM_API_KEY
environment variables.
For example, if you want to run Claude:
Getting Started with the OpenDevin Frontend
Available Scripts
In the project directory, you can run:
npm start
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
npm run build
Builds the app for production to the dist
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
Terminal
The OpenDevin terminal is powered by Xterm.js.
The terminal listens for events over a WebSocket connection. The WebSocket URL is specified by the environment variable REACT_APP_TERMINAL_WS_URL
(prepending REACT_APP_
to environment variable names is necessary to expose them).
A simple websocket server can be found in the /server
directory.
0 Comments