8.2 KiB

DevChat Visual Studio Code Extension
The pragmatic AI coding assistant that keeps humans in the loop.
No overblown AI. No complex prompt engineering. Built for extensibility.
👉 Install Visual Studio Code extension from Visual Studio Marketplace and enjoy DevChat 👏
What is DevChat?
DevChat is an open-source platform that empowers developers to leverage AI for code generation and documentation. We aim to go beyond simple code auto-completion and limited operations on code snippets. DevChat offers a highly practical and effective way for developers to interact and collaborate with large language models (LLMs).
Why DevChat?
While there are many AI coding tools available, we developed DevChat based on our practical insights from generating tens of thousands of lines of code. DevChat makes the following distinctive design choices:
- Precise manual control over the context embedded in a prompt. Precise control over context is the key to effective AI use. We find that most other "intelligent" or "automatic" tools tend to over-guess what a user needs to put into the context of a prompt. That typically introduces more noise than LLMs can effectively manage.
- A simple, extensible prompt directory. This enables developers or teams to easily integrate their own prompt templates into DevChat, avoiding significant engineering effort or a steep learning curve. You don't need a complex framework to make AI work for you. All it takes is a standard editor operating on your filesystem.
Feature Overview
Context Building
Great output requires great input, to maximize the power of AI, DevChat assists you seamlessly to provide the right context to the AI.
-
For instance, to generate test cases for a function, you can add to the prompt context the function along with an existing test case. The test case serves as a useful reference for DevChat, enabling it to understand how to write a valid test case in your environment, thus eliminating the need for you to specify every requirement or setup in your prompt.
-
You can incorporate the output of any command, such as
tree ./src
, into a prompt with DevChat. For example, you can add the output ofgit diff --cached
to DevChat, which can then generate a commit message for you. -
Program analysis can assist in building the necessary context. Suppose you want DevChat to explain some code to you. DevChat can perform better if it's aware of the dependent functions that the code calls. In this scenario, you select the target code to explain and add "symbol definitions" to the context. DevChat will then generate a prompt that explains the target code, taking into account the dependent functions.
Prompt Extension
DevChat utilizes a directory to manage predefined prompt templates. You can easily add your own or modify existing ones using a text editor. Let's delve into the directory structure and its functionality.
By default, the directory is named workflows
and located in the .chat
folder at your home directory. You can run ls ~/.chat/workflows
in a terminal to see what's inside.
The workflows
directory typically contains three subdirectories, sys
, org
, and usr
. The sys
(system) directory is a clone of https://github.com/devchat-ai/workflows, which contains the default prompt templates. You can overwrite those system prompts. For instance, if you create commit_message
in the usr
directory and define your own prompt.txt
, DevChat will use your version instead of the default one in sys
or org
.
workflows
├── sys
│ └── commit_message
│ └── prompt.txt
├── org
│ └── commit_message
│ └── prompt.txt
└── usr
└── commit_message
└── prompt.txt
The org
directory is useful for maintain team-wise conventions or requirements. Your team can share a Git repository to store prompts in org
, and every team member can locally sync ~/.chat/workflows/org
with the repository. Those prompts will overwrite those in sys
, while an individual developer can still further customize them in usr
.
You can embed a template in your prompt by typing a "command" with the corresponding name in the DevChat input. Type /
followed by the command name.
The /
-separated path to the prompt directory corresponds to a .
-separated command name. For instance, if you want to embed the 'prompt.txt' file located in path/to/dir
into your current prompt, you should type /path.to.dir
into the DevChat input field, along with the other content of the prompt. Note that sys
, org
, or usr
do not need to be included in a command name. DevChat will first look up the corresponding path under usr
, then org
, and finally sys
.
Quick Start
Chinese: 中文安装配置指南.
- Install Visual Studio Code.
- Open the Extensions view (⇧⌘X), search for DevChat, and install the extension:
- Click on the DevChat icon in the status bar. If the API key is not set, DevChat will prompt you to enter it. Simply input your OpenAI's key.
- We recommend dragging the DevChat logo from the left sidebar to the right sidebar to avoid overlapping with the Explorer.
Community
- Join our Discord!
- Participate in discussions!
What is Prompt-Centric Software Development (PCSD)?
-
The traditional code-centric paradigm is evolving.
-
Write prompts to create code. Transform prompts into all the artifacts in software engineering.
(This image is licensed by devchat.ai under a Creative Commons Attribution-ShareAlike 4.0 International License.)
-
We like to call it DevPromptOps
(This image is licensed by devchat.ai under a Creative Commons Attribution-ShareAlike 4.0 International License.)
Contributing
Issues and pull request are welcome:
Contact Information
We are creators of Apache DevLake.