| # GPT-Engineer | |
| [](https://discord.gg/8tcDQ89Ej2) | |
| [](https://github.com/gpt-engineer-org/gpt-engineer) | |
| [](https://twitter.com/antonosika) | |
| GPT-engineer lets you: | |
| - Specify a software in natural language | |
| - Sit back and watch as an AI writes and executes the code | |
| - Ask the AI to implement improvements | |
| ## Getting Started | |
| ### Install gpt-engineer | |
| For **stable** release: | |
| - `python -m pip install gpt-engineer` | |
| For **development**: | |
| - `git clone https://github.com/gpt-engineer-org/gpt-engineer.git` | |
| - `cd gpt-engineer` | |
| - `poetry install` | |
| - `poetry shell` to activate the virtual environment | |
| We actively support Python 3.10 - 3.11. The last version to support python 3.8 - 3.9 was [0.2.6](https://pypi.org/project/gpt-engineer/0.2.6/). | |
| ### Setup API Key | |
| Choose **one** of: | |
| - Export env variable (you can add this to .bashrc so that you don't have to do it each time you start the terminal) | |
| - `export OPENAI_API_KEY=[your api key]` | |
| - .env file: | |
| - Create a copy of `.env.template` named `.env` | |
| - Add your OPENAI_API_KEY in .env | |
| - Custom model: | |
| - See [docs](https://gpt-engineer.readthedocs.io/en/latest/open_models.html), supports local model, azure, etc. | |
| Check the [Windows README](./WINDOWS_README.md) for windows usage. | |
| **Other ways to run:** | |
| - Use Docker ([instructions](docker/README.md)) | |
| - Do everything in your browser: | |
| [](https://github.com/gpt-engineer-org/gpt-engineer/codespaces) | |
| ### Creating new code (default usage) | |
| - Create an empty folder for your project anywhere on your computer | |
| - Create a file called `prompt` (no extension) inside your new folder and fill it with instructions | |
| - Run `gpte <project_dir>` with a relative path to your folder | |
| - For example: `gpte projects/my-new-project` from the gpt-engineer directory root with your new folder in `projects/` | |
| ### Improving Existing Code | |
| - Locate a folder with code which you want to improve anywhere on your computer | |
| - Create a file called `prompt` (no extension) inside your new folder and fill it with instructions for how you want to improve the code | |
| - Run `gpte <project_dir> -i` with a relative path to your folder | |
| - For example: `gpte projects/my-old-project` from the gpt-engineer directory root with your folder in `projects/` | |
| By running gpt-engineer you agree to our [terms](https://github.com/gpt-engineer-org/gpt-engineer/blob/main/TERMS_OF_USE.md). | |
| ### Note | |
| - To run this tool, the new command `gpte` is recommended for better user experience. However, the earlier default commands `gpt-engineer` and `ge` are also supported. | |
| ## Relation to gptengineer.app | |
| [gptengineer.app](https://gptengineer.app/) is a commercial project for automatic generation of web-apps. It emerged from gpt-engineer and is committed to giving back to the open source community. A portion of gptengineer.app’s revenue will fund a full-time role and infrastructure for maintaining open-source tools for code generation. | |
| ## Features | |
| You can specify the "identity" of the AI agent by editing the files in the `preprompts` folder. | |
| Editing the `preprompts`, and evolving how you write the project prompt, is how you make the agent remember things between projects. | |
| You can also automatically copy all `preprompts` files into your project folder using the cli parameter `--use-custom-preprompts`. This way you can have custom preprompts for all of your projects without the need to edit the main files. | |
| You can also run with open source models, like WizardCoder. See the [documentation](https://gpt-engineer.readthedocs.io/en/latest/open_models.html) for example instructions. | |
| ## Mission | |
| The gpt-engineer community mission is to **maintain tools that coding agent builders can use and facilitate collaboration in the open source community**. | |
| If you are interested in contributing to this, we are interested in having you. | |
| If you want to see our broader ambitions, check out the [roadmap](https://github.com/gpt-engineer-org/gpt-engineer/blob/main/ROADMAP.md), and join | |
| [discord](https://discord.gg/8tcDQ89Ej2) | |
| to get input on how you can [contribute](.github/CONTRIBUTING.md) to it. | |
| gpt-engineer is [governed](https://github.com/gpt-engineer-org/gpt-engineer/blob/main/GOVERNANCE.md) by a board of long term contributors. If you contribute routinely and have an interest in shaping the future of gpt-engineer, you will be considered for the board. | |
| ## Example | |
| https://github.com/gpt-engineer-org/gpt-engineer/assets/4467025/40d0a9a8-82d0-4432-9376-136df0d57c99 | |