{"data":{"slug":"kristoferlund-duet-gpt","name":"duet-gpt","tagline":"A conversational semi-autonomous developer assistant.","github_url":"https://github.com/kristoferlund/duet-gpt","owner":"kristoferlund","repo":"duet-gpt","owner_avatar_url":"https://avatars.githubusercontent.com/u/9698363?v=4","primary_language":"TypeScript","stars":168,"forks":13,"topics":["agent","ai","assistant","cli","gpt","gpt-4","llm","openai"],"archived":false,"github_pushed_at":"2023-06-19T13:12:11+00:00","maintenance_label":"Dormant","stars_delta_30d":1,"url":"https://www.graphcanon.com/tools/kristoferlund-duet-gpt","markdown_url":"https://www.graphcanon.com/tools/kristoferlund-duet-gpt.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/kristoferlund-duet-gpt","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=kristoferlund-duet-gpt","description":"A conversational semi-autonomous developer assistant. AI pair programming without the copypasta.","homepage_url":null,"license":"MIT","open_issues":1,"watchers":4,"ai_summary":"DuetGPT is an experimental AI-powered CLI tool that acts as a semi-autonomous agent for developers to assist with coding and file system tasks. It uses OpenAI's GPT-4 model and function calling API features.","readme_excerpt":"# DuetGPT\n\n**🎉 News:** DuetGPT no longer uses langchain but instead [OpenAI functions](https://openai.com/blog/function-calling-and-other-api-updates). This means a significant improvement in reliability and performance.\n\nDuetGPT 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.**\n\nDuetGPT also does really well as a general bash helper.\n\nWorks with OpenAI models:\n\n- gpt-3.5-turbo-0613 (does not produce any great code though)\n- gpt-4-0613\n\nExample tasks:\n\n- Refactor index.js: add inline comments, improve variable naming.\n- Write a bash script that lists all cars in the database.\n- Find all files in current directory and subdirectories that contain the word \"DuetGPT\"\n- Write a PR description based on the commit messages in the PR.\n\nDuetGPT 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](https://openai.com/blog/function-calling-and-other-api-updates).\n\n### ⚠️ DuetGPT has no guardrails! Make sure you understand the commands given by the AI before executing them. ⚠️\n\nHere is a 30 second demo, use DuetGPT to build a Node.js app that draws a mandelbrot fractal using ASCII characters to the console:\n\nhttps://github.com/kristoferlund/duet-gpt/assets/9698363/147bdf9d-28df-4421-9297-05abfeb53142\n\n## Setup\n\nInstall the DuetGPT CLI tool globally using npm:\n\n```bash\nnpm install -g duet-gpt\n```\n\n## Usage\n\nTo start DuetGPT, run the following command:\n\n```bash\nduet-gpt\n```\n\nYou will be prompted to enter your OpenAI API key. You can find your API key on the [OpenAI dashboard](https://platform.openai.com/account/api-keys).\n\n```bash\n     _            _              _\n    | |          | |            | |\n  __| |_   _  ___| |_ __ _ _ __ | |_\n / _` | | | |/ _ \\ __/ _` | '_ \\| __|\n| (_| | |_| |  __/ || (_| | |_) | |_\n \\__,_|\\__,_|\\___|\\__\\__, | .__/ \\__|\n                      __/ | |\n                     |___/|_|\n\n┌  DuetGPT\n│\n◆  Please enter your OpenAI API key:\n│  sk-XXX…\n└\n```\n\n## Setup for development\n\n1. Clone the repository.\n\n2. Install dependencies:\n\n```bash\nnpm install\n```\n\n3. Run DuetGPT using yarn:\n\n```bash\nnpm start\n```\n\n## Sample interaction\n\nFor 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:\n\n```\n     _            _              _\n    | |          | |            | |\n  __| |_   _  ___| |_ __ _ _ __ | |_\n / _` | | | |/ _ \\ __/ _` | '_ \\| __|\n| (_| | |_| |  __/ || (_| | |_) | |_\n \\__,_|\\__,_|\\___|\\__\\__, | .__/ \\__|\n                      __/ | |\n                     |___/|_|\n\n┌  DuetGPT\n│\n◇  LLM and memory started\n│\n┌ 🤖 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n│                                                                                                                            │\n│                                                                                                                            │\n│    My mission is to collaborate with you as a developer by providing specific bash or file modification commands to help   │\n│    you complete your development-related tasks, while effectively engaging in two-way interactions.                        │\n│                                                                                                                            │\n│                                                                                                                            │\n└───────────────────────────────────────────────────────","github_created_at":"2023-05-25T08:27:01+00:00","created_at":"2026-07-11T10:46:57.456067+00:00","updated_at":"2026-08-14T18:01:12.937986+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"}],"tags":[{"slug":"agent","name":"agent"},{"slug":"ai","name":"ai"},{"slug":"assistant","name":"assistant"},{"slug":"cli","name":"cli"},{"slug":"gpt","name":"gpt"},{"slug":"gpt-4","name":"gpt-4"},{"slug":"llm","name":"llm"},{"slug":"openai","name":"openai"}],"trust":{"provenance":{"is_fork":false,"github_id":645245078,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-14T18:01:11.820Z","maintenance":{"label":"Dormant","score":18,"methodology":"github_public_v1","releases_90d":0,"days_since_push":1152,"last_release_at":null,"stars_delta_30d":1,"open_issues_delta_30d":0},"security_summary":{"status":"findings","scanner":"osv@v1","low_count":49,"high_count":0,"last_scan_at":"2026-07-11T10:46:58.875Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-08-14T18:01:12.342Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-08-14T18:01:12.342Z"},"has_cli":{"value":true,"source":"package.json:bin|scripts","observed_at":"2026-08-14T18:01:12.342Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-08-14T18:01:12.342Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-08-14T18:01:12.342Z"}},"decision_facts":{"hosting":null,"pricing":{"model":"freemium","summary":"Free to use; however, users need their own OpenAI API keys with potential costs based on usage."},"requirements":null,"constraints":{"pricing_model":"freemium"},"when_to_use":["You need assistance in generating or refactoring code, where DuetGPT uses the advanced capabilities of OpenAI's GPT-4 to suggest improvements or write new functions based on your specifications.","General bash scripting is required, such as listing items from a database with specific queries, and you'd like immediate suggestions to guide your CLI tasks."],"when_not_to_use":["For automated task executions where high reliability is imperative. DuetGPT may generate commands that require manual oversight before execution.","In situations requiring strict control over function calls, as it relies on the OpenAI API's function calling feature, which might not fully cover specific enterprise workflows."],"source":"enrich:decision_facts","observed_at":"2026-07-12T11:01:29.499Z"},"constraint_facets":{"pricing_model":"freemium"},"decision_summary":[{"label":"Pricing","value":"freemium - Free to use; however, users need their own OpenAI API keys with potential costs based on usage."},{"label":"Adopt for","value":"DuetGPT empowers developers through conversational support for coding and system tasks."},{"label":"License detail","value":"MIT License provides flexibility for free use and modification."}]}}