Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Fully featured & enhanced replacement for copilot.vim complete with API for interacting with Github Copilot
| Date | Stars |
|---|---|
| 2026-07-31 | 4092 |
| 2026-08-03 | 4092 |
| 2026-08-04 | 4092 |
| 2026-08-06 | 4092 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
15.0
growth rate 0.00%/day
# copilot.lua
This plugin is the pure lua replacement for [github/copilot.vim](https://github.com/github/copilot.vim).
A huge thank you to @tris203 for the code behind the nes functionality ([copilot-lsp](https://github.com/copilotlsp-nvim/copilot-lsp)).
<details>
<summary>Motivation behind `copilot.lua`</summary>
While using `copilot.vim`, for the first time since I started using neovim my laptop began to overheat. Additionally,
I found the large chunks of ghost text moving around my code, and interfering with my existing cmp ghost text disturbing.
As lua is far more efficient and makes things easier to integrate with modern plugins, this repository was created.
</details>
## Table Of Contents
<!--toc:start-->
- [Requirements](#requirements)
- [Install](#install)
- [Authentication](#authentication)
- [Authentication with Alternate GitHub Instances](#authentication-with-alternate-github-instances)
- [Setup and Configuration](#setup-and-configuration)
- [panel](#panel)
- [suggestion](#suggestion)
- [Highlight Groups](#highlight-groups)
- [filetypes](#filetypes)
- [logger](#logger)
- [copilot_node_command](#copilot_node_command)
- [server_opts_overrides](#server_opts_overrides)
- [workspace_folders](#workspace_folders)
- [root_dir](#root_dir)
- [should_attach](#should_attach)
- [server](#server)
- [Commands](#commands)
- [Integrations](#integrations)
- [FAQ](#faq)
<!--toc:end-->
## Requirements
- Curl
- NeoVim 0.11.0 or higher
- NodeJS v22 or higher if using the default nodejs LSP version
## Install
Install the plugin with your preferred plugin manager.
For example, with [packer.nvim](https://github.com/wbthomason/packer.nvim):
```lua
use { "zbirenbaum/copilot.lua"
requires = {
"copilotlsp-nvim/copilot-lsp", -- (optional) for NES functionality
},
}
```
### Authentication
You can authenticate using one of the following methods:
<details>
<summary>Permanent sign-in (Recommended)</summary>
Once copilot is running, run `:Copilot auth` to start the authentication process.
</details>
<details>
<summary>Token (not officially supported)</summary>
Tokens given by `gh auth token` do not support Copilot, you therefore need to first generate a token through the LSP by:
- Authenticating using the `Permanent sign-in` method
- Grab the token by running `:Copilot auth info`
- You can then safely delete the `github-copilot` folder created in your NeoVim base data directory.
Set either the environment variable `GITHUB_COPILOT_TOKEN` or `GH_COPILOT_TOKEN` to that token.
Note that if you have the variable set, even empty, the LSP will attempt to use it to log in.
</details>
<details>
<summary>Sign out / Switch accounts</summary>
To sign out of your current GitHub account:
```
:Copilot auth signout
```
To sign in with a different account:
```
:Copilot auth signin
```
To view your current authentication status:
```
:Copilot auth info
```
Credentials are stored by the Copilot Language Server in:
- **Linux/macOS:** `~/.config/github-copilot/auth.db` (or `$XDG_CONFIG_HOME/github-copilot/auth.db`)
- **Windows:** `~/AppData/Local/github-copilot/auth.db`
</details>
#### Authentication with Alternate GitHub Instances
If your access to Copilot is not provided by the public GitHub instance, you can set your
authentication provider to a custom URL with the corresponding config key e.g.
`auth_provider_url = "https://mycorp.ghe.com/"`.
## Setup and Configuration
You have to run the `require("copilot").setup(options)` function in order to start Copilot.
If no options are provided, the defaults are used.
Because the copilot server takes some time to start up, it is recommended that you lazy load copilot.
For example:
```lua
use {
"zbirenbaum/copilot.lua",
requires = {
"copilotlsp-nvim/copilot-lsp", -- (optional) for NES functionality
},
cmd = "Copilot",
event = "InsertEnter",
config = function()
require("copilot").setup({})
end,
}
```
<details>
<summary>Default configuExcerpt of 17,841 characters
Read on GitHub233
146
105
Zach Birenbaum · CoreWeave · United States
70
12
8
5
Alex Efros · Ukraine
3
2
Tomáš Janoušek · United Kingdom
2
2
1
1
1
1
1
1
Jason Gerber · @Stratsha
1
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:89d17b1bce159cb1, topic:copilot