Please note that you need to configure LLM for code completion and chat feature separately. Some of the popular LLMs that we recommend are as follows. Please pick the size (i.e. 1.3b, 7b, 13b or 34b) of the model based on your hardware capabilities.
Please set the following options in the settings for Privy extension.
privy.provider(required): Pick the platform that is being used for running LLMs locally. There is support for using OpenAI, but this will affect the privacy aspects of the solution. The default is Ollama.
privy.providerUrl(required): The URL of the platform that is being used for running LLMs locally. The default is http://localhost:11434.
privy.autocomplete.mode: Use this setting for enabling/disabling autocompletion feature.
privy.autocomplete.model: Input the name of local Ollama model that you want to use for autocompletion. Supported formats are DeepSeek Coder, LLama & Stable Code. We have chosen deepseek-coder:1.3b-base as it requires least amount of VRAM. You can customize based on your hardware setup.
privy.autocomplete.debounceWait: Use this for setting the time gap before triggering the next completion in milliseconds. Default is 300 ms.
privy.model: Select the LLM that you want to chat with. Currently, supports DeepSeek, Mistral and CodeLLama. If you want to use other LLMs, please select custom and configure privy.customModel accordingly.
privy.customModel: If you want to pick any other models running on your Ollama, please input their name.
✨ Key Features
👍 Open Source
🔐 Privacy first
🚀 Auto code completion
🤖 Copilot style chat
💬 Threaded conversations
💻 Support for code explanation, unit tests, finding bugs, diagnosing errors etc
⌨️ Keyboard shortcuts
Shortcut (Mac)
Description
Alt + \ (for Windows/Linux) or Cmd + \ (for Mac)
Trigger inline code completion
Ctrl + Alt + c (for Windows/Linux) or Ctrl + Cmd + c(for Mac)
Start Chat
💡 Tips and Tricks
Understanding these concepts will help you get the most out of Privy.
Be specific.
When you ask for, e.g., code changes, include concrete names and describe the desired outcome. Avoid vague references.
Provide context.
You can include the programming language ("in Rust") or other relevant contexts for basic questions.
You can select a meaningful code snippet for code explanations and error diagnosis.
Do not trust answers blindly.
It's a big step for Privy to be able to respond to your questions.
It might respond with inaccurate answers, especially when talking about
less well-known topics or when the conversation gets too detailed.
Use different chat threads for different topics.
Shorter threads with specific topics will help Privy respond more accurately.
🤝 Credits
RubberDuck AI - This project is heavily inspired by RubberDuck AI's work, and we're indebted to them for building on top of it. The following is the list of contributors to this project and we extend our sincere gratitude to all of them.
To help you get your feet wet and become familiar with our contribution process, we have a list of good first issues that contains things with a relatively limited scope. This is a great place to get started!