Autogenerate files or entire projects using ChatGPT API.
pip install codegenpt
CodeGenPT looks for .codegenpt
files and generate files using its instructions.
Example: hello_world.py.codegenpt
Create a hello world program
Then:
$ codegenpt helloworld.py.codegenpt
⏳ Generating file: helloworld.py
🍺 File generated: helloworld.py
🍻 Success
Will generate a file named helloworld.py
:
print("hello world");
The actual content of the file will be generated by ChatGPT, so it will vary at each run. You can use codegenpt -R .
to recursively look for all .codegenpt
files and generate them.
You can create entire directories or projects using a .dir.codegenpt
file.
Example: tictactoe.dir.codegenpt
Create a tic-tac-toe game using html, js and css.
Then:
$ codegenpt tic-tac-toe.dir.codegenpt
⏳ Generating directory: tic-tac-toe
🍺 File generated: tic-tac-toe/style.css
🍺 File generated: tic-tac-toe/index.html
🍺 File generated: tic-tac-toe/game.js
🍻 Success
Will create a folder called tic-tac-toe and generate all needed files.
CodeGenPT expects an environment variable called OPEN_API_KEY
.
- Get an Open AI API Key
- Add the key to your
OPEN_API_KEY
environment variable:
- If you use
bash
:echo 'export OPENAI_API_KEY={your api key}' >> ~/.bash_profile && source ~/.bash_profile
- If yu use
zsh
:echo 'export OPENAI_API_KEY={your api key}' >> ~/.zshenv && source ~/.zshenv
Commands are special instructions you can use to instruct the generation process.
All codegenpt commands are placed in a single line in the format:
@command_name args...
Includes one or more files on the context.
Included files can be referenced using @filename.ext
in the generation instructions
Example:
names.txt
:
Diego
Alberto
Daniel
random_name.js.codegenpt
:
@include assets/names.txt
Read @names.txt and write a function that returns one of the names
random_name.js
:
function getRandomName() {
const names = [
'Diego',
'Alberto',
'Daniel'
];
const randomIndex = Math.floor(Math.random() * names.length);
return names[randomIndex];
}