base on The leading open-source AI copilot for JetBrains. Connect to any model in any environment, and customize your coding experience in any way you like. <a name="readme-top"></a>
<br />
<div align="center">
<a href="https://github.com/carlrobertoh/CodeGPT">
<img alt="plugin-icon" src="https://github.com/carlrobertoh/CodeGPT-docs/blob/main/images/icon.png?raw=true">
</a>
<h1 style="margin: 0;" align="center">CodeGPT</h1>
<p style="width: 640px">
The leading open-source AI copilot for <a target="_blank" href="https://plugins.jetbrains.com/plugin/21056-codegpt">JetBrains</a>. Connect to any model in any environment, and customize your coding experience in any way you like.
</p>
</div>
[![Downloads][downloads-shield]][plugin-repo]
[![Rating][rating-shield]][plugin-repo]
[![Discord][discord-shield]][invite-link]
[![Version][version-shield]][plugin-repo]
<!-- TABLE OF CONTENTS -->
<details>
<summary>Table of Contents</summary>
<ol>
<li><a href="#about-the-project">About The Project</a></li>
<li><a href="#core-features">Core Features</a></li>
<li>
<a href="#getting-started">Getting Started</a>
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#api-key-configuration">API Key Configuration</a></li>
</ul>
</li>
<li><a href="#features">Features</a></li>
<li><a href="#running-locally">Running Locally</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#feedback">Feedback</a></li>
<li><a href="#license">License</a></li>
</ol>
</details>
![Plugin screenshot](https://www.codegpt.ee/images/main.png)
## About The Project
CodeGPT is an AI-powered code assistant designed to help you with various programming activities. It is a great alternative to GitHub Copilot, AI Assistant, Codiumate, or any other extension on the JetBrains marketplace.
We equip you with the latest models, advanced tools, and on-premise solutions that are designed to significantly enhance your developer experience.
Access top-tier language models from OpenAI, Anthropic, Azure, Mistral, and others, or opt for a self-hosted model for a full offline experience.
## Core Features
CodeGPT offers a wide range of features to enhance your development experience:
### Chat
- **Auto Apply:** Stream AI-suggested code changes directly into your editor. Preview modifications in diff view and approve or reject them with a single click.
- **Use images:** Chat with your images. Upload manually or let CodeGPT auto-detect your screenshots.
- **Reference your files and folders:** Quickly access and reference your project files and folders for context-aware coding assistance.
- **Reference web docs:** Quickly reference web docs in your chat session, such as API guides, library manuals, and more.
- **Reference git history:** Quickly reference commit logs and changes in your chat session
- **Search the web:** Connect your favourite LLM to the web. CodeGPT will search for the most relevant information to answer your questions.
- **Customize your assistant:** Choose between multiple different personas for your specific needs, whether you're looking to learn, write or proofread.
### Code
- **Autocomplete your code:** Receive single-line or whole-function autocomplete suggestions as you type.
- **Edit code in natural language:** Highlight the code you want to modify, describe the desired changes, and watch CodeGPT work its magic.
- **Get name suggestions:** Get context-aware naming suggestions for methods, variables, and more.
- **Generate commit messages:** Generate concise and descriptive commit messages based on the changes made in your codebase.
For a full list of features and detailed descriptions, visit our [official documentation](https://docs.codegpt.ee/features).
## Running locally
**Linux or macOS**
```shell
git clone https://github.com/carlrobertoh/CodeGPT.git
cd CodeGPT
git submodule update
./gradlew runIde
```
**Windows ARM64**
```shell
./gradlew runIde -Penv=win-arm64
```
**Tailing logs**
```shell
tail -f build/idea-sandbox/system/log/idea.log
```
## Privacy
**Your data stays yours.** CodeGPT **does not** collect or store any kind of sensitive information.
However, with users' consent, we do collect anonymous usage data, which we use to understand how users interact with the extension, including the most-used features and preferred providers.
## Feedback
Your input helps us grow. Reach out through:
- [Issue Tracker](https://github.com/carlrobertoh/CodeGPT/issues)
- [Discord](https://discord.gg/8dTGGrwcnR)
- [Email](mailto:
[email protected])
## License
Apache 2.0 © [Carl-Robert Linnupuu][portfolio]
If you found this project interesting, kindly rate it on the marketplace and don't forget to give it a star. Thanks again!
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[downloads-shield]: https://img.shields.io/jetbrains/plugin/d/21056-codegpt
[discord-shield]: https://img.shields.io/discord/1118629761049182238?style=flat&logo=discord&label=Discord
[version-shield]: https://img.shields.io/jetbrains/plugin/v/21056-codegpt?label=version
[rating-shield]: https://img.shields.io/jetbrains/plugin/r/rating/21056-codegpt
[marketplace-img]: https://github.com/carlrobertoh/CodeGPT-docs/blob/main/images/marketplace.png?raw=true
[plugin-repo]: https://plugins.jetbrains.com/plugin/21056-codegpt
[invite-link]: https://discord.gg/8dTGGrwcnR
[open-issues]: https://github.com/carlrobertoh/CodeGPT/issues
[api-key-url]: https://platform.openai.com/account/api-keys
[portfolio]: https://carlrobert.ee
", Assign "at most 3 tags" to the expected json: {"id":"7789","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"