? News: DuetGPT no longer uses langchain but instead OpenAI functions. This means a significant improvement in reliability and performance.
DuetGPT is an experimental AI powered CLI tool and semi-autonomous agent that helps developers with coding tasks and file system tasks. The developer describes tasks to the AI who then issues commands or follow-up questions for clarification. After approval by the developer, DuetGPT automatically executes the commands issued by the AI.
DuetGPT also does really well as a general bash helper.
Works with OpenAI models:
Example tasks:
DuetGPT builds on OpenAI's GPT-4 language model and uses its conversational capabilities to engage in a two-way conversation with the developer. It uses the newly released feature of the OpenAI API that allows the AI to make function calls.
Here is a 30 second demo, use DuetGPT to build a Node.js app that draws a mandelbrot fractal using ASCII characters to the console:
Install the DuetGPT CLI tool globally using npm:
npm install -g duet-gptTo start DuetGPT, run the following command:
duet-gptYou will be prompted to enter your OpenAI API key. You can find your API key on the OpenAI dashboard.
_ _ _
| | | | | |
__| |_ _ ___| |_ __ _ _ __ | |_
/ _` | | | |/ _ __/ _` | '_ | __|
| (_| | |_| | __/ || (_| | |_) | |_
__,_|__,_|___|____, | .__/ __|
__/ | |
|___/|_|
┌ DuetGPT
│
◆ Please enter your OpenAI API key:
│ sk-XXX…
└Clone the repository.
Install dependencies:
npm installnpm startFor the purposes of illustrating how interactions work, I chose a super simple task. Let's say you want to add .yarn/cache to .gitignore. Here is how to ask DuetGPT to help you with that:
_ _ _
| | | | | |
__| |_ _ ___| |_ __ _ _ __ | |_
/ _` | | | |/ _ __/ _` | '_ | __|
| (_| | |_| | __/ || (_| | |_) | |_
__,_|__,_|___|____, | .__/ __|
__/ | |
|___/|_|
┌ DuetGPT
│
◇ LLM and memory started
│
┌ ? ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ My mission is to collaborate with you as a developer by providing specific bash or file modification commands to help │
│ you complete your development-related tasks, while effectively engaging in two-way interactions. │
│ │
│ │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│
◇ What would you like to do?
│ Add .yarn/cache to .gitignore
│
◇ AI response received
│
┌ ? ────────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ First, I need to check if .gitignore exists in the current directory. │
│ │
│ § BASH │
│ │
│ 1 ls .gitignore │
│ │
│ │
└────────────────────────────────────────────────────────────────────────────┘
│
◇ What would you like to do?
│ Run command
│
┌ ────────────┐
│ │
│ .gitignore │
│ │
└────────────────┘
│
◇ AI response received
│
┌ ? ────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ I will now append '.yarn/cache' to your existing .gitignore file. │
│ │
│ § BASH │
│ │
│ 1 echo ".yarn/cache" >> .gitignore │
│ │
│ │
└────────────────────────────────────────────────────────────────────────┘
│
◇ What would you like to do?
│ Run command
│
┌ ────┐
│ │
│ OK │
│ │
└────────┘
│
◆ What would you like to do?
│ Not sure
└
Contributions are welcome! Please open an issue or submit a pull request.
MIT