@neocode-ai/web 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/astro.config.mjs +145 -0
- package/config.mjs +14 -0
- package/package.json +41 -0
- package/public/robots.txt +6 -0
- package/public/theme.json +183 -0
- package/src/assets/lander/check.svg +2 -0
- package/src/assets/lander/copy.svg +2 -0
- package/src/assets/lander/screenshot-github.png +0 -0
- package/src/assets/lander/screenshot-splash.png +0 -0
- package/src/assets/lander/screenshot-vscode.png +0 -0
- package/src/assets/lander/screenshot.png +0 -0
- package/src/assets/logo-dark.svg +20 -0
- package/src/assets/logo-light.svg +20 -0
- package/src/assets/logo-ornate-dark.svg +18 -0
- package/src/assets/logo-ornate-light.svg +18 -0
- package/src/assets/web/web-homepage-active-session.png +0 -0
- package/src/assets/web/web-homepage-new-session.png +0 -0
- package/src/assets/web/web-homepage-see-servers.png +0 -0
- package/src/components/Head.astro +50 -0
- package/src/components/Header.astro +128 -0
- package/src/components/Hero.astro +11 -0
- package/src/components/Lander.astro +713 -0
- package/src/components/Share.tsx +634 -0
- package/src/components/SiteTitle.astro +59 -0
- package/src/components/icons/custom.tsx +87 -0
- package/src/components/icons/index.tsx +4454 -0
- package/src/components/share/common.tsx +77 -0
- package/src/components/share/content-bash.module.css +85 -0
- package/src/components/share/content-bash.tsx +67 -0
- package/src/components/share/content-code.module.css +26 -0
- package/src/components/share/content-code.tsx +32 -0
- package/src/components/share/content-diff.module.css +153 -0
- package/src/components/share/content-diff.tsx +231 -0
- package/src/components/share/content-error.module.css +64 -0
- package/src/components/share/content-error.tsx +24 -0
- package/src/components/share/content-markdown.module.css +154 -0
- package/src/components/share/content-markdown.tsx +75 -0
- package/src/components/share/content-text.module.css +63 -0
- package/src/components/share/content-text.tsx +37 -0
- package/src/components/share/copy-button.module.css +30 -0
- package/src/components/share/copy-button.tsx +28 -0
- package/src/components/share/part.module.css +428 -0
- package/src/components/share/part.tsx +780 -0
- package/src/components/share.module.css +832 -0
- package/src/content/docs/1-0.mdx +67 -0
- package/src/content/docs/acp.mdx +156 -0
- package/src/content/docs/agents.mdx +720 -0
- package/src/content/docs/cli.mdx +597 -0
- package/src/content/docs/commands.mdx +323 -0
- package/src/content/docs/config.mdx +683 -0
- package/src/content/docs/custom-tools.mdx +170 -0
- package/src/content/docs/ecosystem.mdx +76 -0
- package/src/content/docs/enterprise.mdx +170 -0
- package/src/content/docs/formatters.mdx +130 -0
- package/src/content/docs/github.mdx +321 -0
- package/src/content/docs/gitlab.mdx +195 -0
- package/src/content/docs/ide.mdx +48 -0
- package/src/content/docs/index.mdx +359 -0
- package/src/content/docs/keybinds.mdx +191 -0
- package/src/content/docs/lsp.mdx +188 -0
- package/src/content/docs/mcp-servers.mdx +511 -0
- package/src/content/docs/models.mdx +223 -0
- package/src/content/docs/modes.mdx +331 -0
- package/src/content/docs/network.mdx +57 -0
- package/src/content/docs/permissions.mdx +237 -0
- package/src/content/docs/plugins.mdx +362 -0
- package/src/content/docs/providers.mdx +1889 -0
- package/src/content/docs/rules.mdx +180 -0
- package/src/content/docs/sdk.mdx +391 -0
- package/src/content/docs/server.mdx +286 -0
- package/src/content/docs/share.mdx +128 -0
- package/src/content/docs/skills.mdx +220 -0
- package/src/content/docs/themes.mdx +369 -0
- package/src/content/docs/tools.mdx +345 -0
- package/src/content/docs/troubleshooting.mdx +300 -0
- package/src/content/docs/tui.mdx +390 -0
- package/src/content/docs/web.mdx +136 -0
- package/src/content/docs/windows-wsl.mdx +113 -0
- package/src/content/docs/zen.mdx +251 -0
- package/src/content.config.ts +7 -0
- package/src/pages/[...slug].md.ts +18 -0
- package/src/pages/s/[id].astro +113 -0
- package/src/styles/custom.css +405 -0
- package/src/types/lang-map.d.ts +27 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: GitHub
|
|
3
|
+
description: Use NeoCode in GitHub issues and pull-requests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
NeoCode integrates with your GitHub workflow. Mention `/neocode` or `/oc` in your comment, and NeoCode will execute tasks within your GitHub Actions runner.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- **Triage issues**: Ask NeoCode to look into an issue and explain it to you.
|
|
13
|
+
- **Fix and implement**: Ask NeoCode to fix an issue or implement a feature. And it will work in a new branch and submits a PR with all the changes.
|
|
14
|
+
- **Secure**: NeoCode runs inside your GitHub's runners.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
Run the following command in a project that is in a GitHub repo:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
neocode github install
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
This will walk you through installing the GitHub app, creating the workflow, and setting up secrets.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
### Manual Setup
|
|
31
|
+
|
|
32
|
+
Or you can set it up manually.
|
|
33
|
+
|
|
34
|
+
1. **Install the GitHub app**
|
|
35
|
+
|
|
36
|
+
Head over to [**github.com/apps/neocode-agent**](https://github.com/apps/neocode-agent). Make sure it's installed on the target repository.
|
|
37
|
+
|
|
38
|
+
2. **Add the workflow**
|
|
39
|
+
|
|
40
|
+
Add the following workflow file to `.github/workflows/neocode.yml` in your repo. Make sure to set the appropriate `model` and required API keys in `env`.
|
|
41
|
+
|
|
42
|
+
```yml title=".github/workflows/neocode.yml" {24,26}
|
|
43
|
+
name: neocode
|
|
44
|
+
|
|
45
|
+
on:
|
|
46
|
+
issue_comment:
|
|
47
|
+
types: [created]
|
|
48
|
+
pull_request_review_comment:
|
|
49
|
+
types: [created]
|
|
50
|
+
|
|
51
|
+
jobs:
|
|
52
|
+
neocode:
|
|
53
|
+
if: |
|
|
54
|
+
contains(github.event.comment.body, '/oc') ||
|
|
55
|
+
contains(github.event.comment.body, '/neocode')
|
|
56
|
+
runs-on: ubuntu-latest
|
|
57
|
+
permissions:
|
|
58
|
+
id-token: write
|
|
59
|
+
steps:
|
|
60
|
+
- name: Checkout repository
|
|
61
|
+
uses: actions/checkout@v6
|
|
62
|
+
with:
|
|
63
|
+
fetch-depth: 1
|
|
64
|
+
persist-credentials: false
|
|
65
|
+
|
|
66
|
+
- name: Run NeoCode
|
|
67
|
+
uses: neopilot-ai/neocode/github@latest
|
|
68
|
+
env:
|
|
69
|
+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
70
|
+
with:
|
|
71
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
72
|
+
# share: true
|
|
73
|
+
# github_token: xxxx
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
3. **Store the API keys in secrets**
|
|
77
|
+
|
|
78
|
+
In your organization or project **settings**, expand **Secrets and variables** on the left and select **Actions**. And add the required API keys.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Configuration
|
|
83
|
+
|
|
84
|
+
- `model`: The model to use with NeoCode. Takes the format of `provider/model`. This is **required**.
|
|
85
|
+
- `agent`: The agent to use. Must be a primary agent. Falls back to `default_agent` from config or `"build"` if not found.
|
|
86
|
+
- `share`: Whether to share the NeoCode session. Defaults to **true** for public repositories.
|
|
87
|
+
- `prompt`: Optional custom prompt to override the default behavior. Use this to customize how NeoCode processes requests.
|
|
88
|
+
- `token`: Optional GitHub access token for performing operations such as creating comments, committing changes, and opening pull requests. By default, NeoCode uses the installation access token from the NeoCode GitHub App, so commits, comments, and pull requests appear as coming from the app.
|
|
89
|
+
|
|
90
|
+
Alternatively, you can use the GitHub Action runner's [built-in `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) without installing the NeoCode GitHub App. Just make sure to grant the required permissions in your workflow:
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
permissions:
|
|
94
|
+
id-token: write
|
|
95
|
+
contents: write
|
|
96
|
+
pull-requests: write
|
|
97
|
+
issues: write
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
You can also use a [personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) if preferred.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Supported Events
|
|
105
|
+
|
|
106
|
+
NeoCode can be triggered by the following GitHub events:
|
|
107
|
+
|
|
108
|
+
| Event Type | Triggered By | Details |
|
|
109
|
+
| ----------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
110
|
+
| `issue_comment` | Comment on an issue or PR | Mention `/neocode` or `/oc` in your comment. NeoCode reads context and can create branches, open PRs, or reply. |
|
|
111
|
+
| `pull_request_review_comment` | Comment on specific code lines in a PR | Mention `/neocode` or `/oc` while reviewing code. NeoCode receives file path, line numbers, and diff context. |
|
|
112
|
+
| `issues` | Issue opened or edited | Automatically trigger NeoCode when issues are created or modified. Requires `prompt` input. |
|
|
113
|
+
| `pull_request` | PR opened or updated | Automatically trigger NeoCode when PRs are opened, synchronized, or reopened. Useful for automated reviews. |
|
|
114
|
+
| `schedule` | Cron-based schedule | Run NeoCode on a schedule. Requires `prompt` input. Output goes to logs and PRs (no issue to comment on). |
|
|
115
|
+
| `workflow_dispatch` | Manual trigger from GitHub UI | Trigger NeoCode on demand via Actions tab. Requires `prompt` input. Output goes to logs and PRs. |
|
|
116
|
+
|
|
117
|
+
### Schedule Example
|
|
118
|
+
|
|
119
|
+
Run NeoCode on a schedule to perform automated tasks:
|
|
120
|
+
|
|
121
|
+
```yaml title=".github/workflows/neocode-scheduled.yml"
|
|
122
|
+
name: Scheduled NeoCode Task
|
|
123
|
+
|
|
124
|
+
on:
|
|
125
|
+
schedule:
|
|
126
|
+
- cron: "0 9 * * 1" # Every Monday at 9am UTC
|
|
127
|
+
|
|
128
|
+
jobs:
|
|
129
|
+
neocode:
|
|
130
|
+
runs-on: ubuntu-latest
|
|
131
|
+
permissions:
|
|
132
|
+
id-token: write
|
|
133
|
+
contents: write
|
|
134
|
+
pull-requests: write
|
|
135
|
+
issues: write
|
|
136
|
+
steps:
|
|
137
|
+
- name: Checkout repository
|
|
138
|
+
uses: actions/checkout@v6
|
|
139
|
+
with:
|
|
140
|
+
persist-credentials: false
|
|
141
|
+
|
|
142
|
+
- name: Run NeoCode
|
|
143
|
+
uses: neopilot-ai/neocode/github@latest
|
|
144
|
+
env:
|
|
145
|
+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
146
|
+
with:
|
|
147
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
148
|
+
prompt: |
|
|
149
|
+
Review the codebase for any TODO comments and create a summary.
|
|
150
|
+
If you find issues worth addressing, open an issue to track them.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
For scheduled events, the `prompt` input is **required** since there's no comment to extract instructions from. Scheduled workflows run without a user context to permission-check, so the workflow must grant `contents: write` and `pull-requests: write` if you expect NeoCode to create branches or PRs.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### Pull Request Example
|
|
158
|
+
|
|
159
|
+
Automatically review PRs when they are opened or updated:
|
|
160
|
+
|
|
161
|
+
```yaml title=".github/workflows/neocode-review.yml"
|
|
162
|
+
name: neocode-review
|
|
163
|
+
|
|
164
|
+
on:
|
|
165
|
+
pull_request:
|
|
166
|
+
types: [opened, synchronize, reopened, ready_for_review]
|
|
167
|
+
|
|
168
|
+
jobs:
|
|
169
|
+
review:
|
|
170
|
+
runs-on: ubuntu-latest
|
|
171
|
+
permissions:
|
|
172
|
+
id-token: write
|
|
173
|
+
contents: read
|
|
174
|
+
pull-requests: read
|
|
175
|
+
issues: read
|
|
176
|
+
steps:
|
|
177
|
+
- uses: actions/checkout@v6
|
|
178
|
+
with:
|
|
179
|
+
persist-credentials: false
|
|
180
|
+
- uses: neopilot-ai/neocode/github@latest
|
|
181
|
+
env:
|
|
182
|
+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
183
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
184
|
+
with:
|
|
185
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
186
|
+
use_github_token: true
|
|
187
|
+
prompt: |
|
|
188
|
+
Review this pull request:
|
|
189
|
+
- Check for code quality issues
|
|
190
|
+
- Look for potential bugs
|
|
191
|
+
- Suggest improvements
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
For `pull_request` events, if no `prompt` is provided, NeoCode defaults to reviewing the pull request.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### Issues Triage Example
|
|
199
|
+
|
|
200
|
+
Automatically triage new issues. This example filters to accounts older than 30 days to reduce spam:
|
|
201
|
+
|
|
202
|
+
```yaml title=".github/workflows/neocode-triage.yml"
|
|
203
|
+
name: Issue Triage
|
|
204
|
+
|
|
205
|
+
on:
|
|
206
|
+
issues:
|
|
207
|
+
types: [opened]
|
|
208
|
+
|
|
209
|
+
jobs:
|
|
210
|
+
triage:
|
|
211
|
+
runs-on: ubuntu-latest
|
|
212
|
+
permissions:
|
|
213
|
+
id-token: write
|
|
214
|
+
contents: write
|
|
215
|
+
pull-requests: write
|
|
216
|
+
issues: write
|
|
217
|
+
steps:
|
|
218
|
+
- name: Check account age
|
|
219
|
+
id: check
|
|
220
|
+
uses: actions/github-script@v7
|
|
221
|
+
with:
|
|
222
|
+
script: |
|
|
223
|
+
const user = await github.rest.users.getByUsername({
|
|
224
|
+
username: context.payload.issue.user.login
|
|
225
|
+
});
|
|
226
|
+
const created = new Date(user.data.created_at);
|
|
227
|
+
const days = (Date.now() - created) / (1000 * 60 * 60 * 24);
|
|
228
|
+
return days >= 30;
|
|
229
|
+
result-encoding: string
|
|
230
|
+
|
|
231
|
+
- uses: actions/checkout@v6
|
|
232
|
+
if: steps.check.outputs.result == 'true'
|
|
233
|
+
with:
|
|
234
|
+
persist-credentials: false
|
|
235
|
+
|
|
236
|
+
- uses: neopilot-ai/neocode/github@latest
|
|
237
|
+
if: steps.check.outputs.result == 'true'
|
|
238
|
+
env:
|
|
239
|
+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
240
|
+
with:
|
|
241
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
242
|
+
prompt: |
|
|
243
|
+
Review this issue. If there's a clear fix or relevant docs:
|
|
244
|
+
- Provide documentation links
|
|
245
|
+
- Add error handling guidance for code examples
|
|
246
|
+
Otherwise, do not comment.
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
For `issues` events, the `prompt` input is **required** since there's no comment to extract instructions from.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Custom prompts
|
|
254
|
+
|
|
255
|
+
Override the default prompt to customize NeoCode's behavior for your workflow.
|
|
256
|
+
|
|
257
|
+
```yaml title=".github/workflows/neocode.yml"
|
|
258
|
+
- uses: neopilot-ai/neocode/github@latest
|
|
259
|
+
with:
|
|
260
|
+
model: anthropic/claude-sonnet-4-5
|
|
261
|
+
prompt: |
|
|
262
|
+
Review this pull request:
|
|
263
|
+
- Check for code quality issues
|
|
264
|
+
- Look for potential bugs
|
|
265
|
+
- Suggest improvements
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
This is useful for enforcing specific review criteria, coding standards, or focus areas relevant to your project.
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Examples
|
|
273
|
+
|
|
274
|
+
Here are some examples of how you can use NeoCode in GitHub.
|
|
275
|
+
|
|
276
|
+
- **Explain an issue**
|
|
277
|
+
|
|
278
|
+
Add this comment in a GitHub issue.
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
/neocode explain this issue
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
NeoCode will read the entire thread, including all comments, and reply with a clear explanation.
|
|
285
|
+
|
|
286
|
+
- **Fix an issue**
|
|
287
|
+
|
|
288
|
+
In a GitHub issue, say:
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
/neocode fix this
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
And NeoCode will create a new branch, implement the changes, and open a PR with the changes.
|
|
295
|
+
|
|
296
|
+
- **Review PRs and make changes**
|
|
297
|
+
|
|
298
|
+
Leave the following comment on a GitHub PR.
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
Delete the attachment from S3 when the note is removed /oc
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
NeoCode will implement the requested change and commit it to the same PR.
|
|
305
|
+
|
|
306
|
+
- **Review specific code lines**
|
|
307
|
+
|
|
308
|
+
Leave a comment directly on code lines in the PR's "Files" tab. NeoCode automatically detects the file, line numbers, and diff context to provide precise responses.
|
|
309
|
+
|
|
310
|
+
```
|
|
311
|
+
[Comment on specific lines in Files tab]
|
|
312
|
+
/oc add error handling here
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
When commenting on specific lines, NeoCode receives:
|
|
316
|
+
- The exact file being reviewed
|
|
317
|
+
- The specific lines of code
|
|
318
|
+
- The surrounding diff context
|
|
319
|
+
- Line number information
|
|
320
|
+
|
|
321
|
+
This allows for more targeted requests without needing to specify file paths or line numbers manually.
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: GitLab
|
|
3
|
+
description: Use NeoCode in GitLab issues and merge requests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
NeoCode integrates with your GitLab workflow through your GitLab CI/CD pipeline or with GitLab Duo.
|
|
7
|
+
|
|
8
|
+
In both cases, NeoCode will run on your GitLab runners.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## GitLab CI
|
|
13
|
+
|
|
14
|
+
NeoCode works in a regular GitLab pipeline. You can build it into a pipeline as a [CI component](https://docs.gitlab.com/ee/ci/components/)
|
|
15
|
+
|
|
16
|
+
Here we are using a community-created CI/CD component for NeoCode — [nagyv/gitlab-neocode](https://gitlab.com/nagyv/gitlab-neocode).
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- **Use custom configuration per job**: Configure NeoCode with a custom configuration directory, for example `./config/#custom-directory` to enable or disable functionality per NeoCode invocation.
|
|
23
|
+
- **Minimal setup**: The CI component sets up NeoCode in the background, you only need to create the NeoCode configuration and the initial prompt.
|
|
24
|
+
- **Flexible**: The CI component supports several inputs for customizing its behavior
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
### Setup
|
|
29
|
+
|
|
30
|
+
1. Store your NeoCode authentication JSON as a File type CI environment variables under **Settings** > **CI/CD** > **Variables**. Make sure to mark them as "Masked and hidden".
|
|
31
|
+
2. Add the following to your `.gitlab-ci.yml` file.
|
|
32
|
+
|
|
33
|
+
```yaml title=".gitlab-ci.yml"
|
|
34
|
+
include:
|
|
35
|
+
- component: $CI_SERVER_FQDN/nagyv/gitlab-neocode/neocode@2
|
|
36
|
+
inputs:
|
|
37
|
+
config_dir: ${CI_PROJECT_DIR}/neocode-config
|
|
38
|
+
auth_json: $NEOCODE_AUTH_JSON # The variable name for your NeoCode authentication JSON
|
|
39
|
+
command: optional-custom-command
|
|
40
|
+
message: "Your prompt here"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
For more inputs and use cases [check out the docs](https://gitlab.com/explore/catalog/nagyv/gitlab-neocode) for this component.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## GitLab Duo
|
|
48
|
+
|
|
49
|
+
NeoCode integrates with your GitLab workflow.
|
|
50
|
+
Mention `@neocode` in a comment, and NeoCode will execute tasks within your GitLab CI pipeline.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### Features
|
|
55
|
+
|
|
56
|
+
- **Triage issues**: Ask NeoCode to look into an issue and explain it to you.
|
|
57
|
+
- **Fix and implement**: Ask NeoCode to fix an issue or implement a feature.
|
|
58
|
+
It will create a new branch and raise a merge request with the changes.
|
|
59
|
+
- **Secure**: NeoCode runs on your GitLab runners.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### Setup
|
|
64
|
+
|
|
65
|
+
NeoCode runs in your GitLab CI/CD pipeline, here's what you'll need to set it up:
|
|
66
|
+
|
|
67
|
+
:::tip
|
|
68
|
+
Check out the [**GitLab docs**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/) for up to date instructions.
|
|
69
|
+
:::
|
|
70
|
+
|
|
71
|
+
1. Configure your GitLab environment
|
|
72
|
+
2. Set up CI/CD
|
|
73
|
+
3. Get an AI model provider API key
|
|
74
|
+
4. Create a service account
|
|
75
|
+
5. Configure CI/CD variables
|
|
76
|
+
6. Create a flow config file, here's an example:
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
|
|
80
|
+
<summary>Flow configuration</summary>
|
|
81
|
+
|
|
82
|
+
```yaml
|
|
83
|
+
image: node:22-slim
|
|
84
|
+
commands:
|
|
85
|
+
- echo "Installing neocode"
|
|
86
|
+
- npm install --global neocode-ai
|
|
87
|
+
- echo "Installing glab"
|
|
88
|
+
- export GITLAB_TOKEN=$GITLAB_TOKEN_NEOCODE
|
|
89
|
+
- apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
|
|
90
|
+
- curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
|
|
91
|
+
- apt-get install --yes glab
|
|
92
|
+
- echo "Configuring glab"
|
|
93
|
+
- echo $GITLAB_HOST
|
|
94
|
+
- echo "Creating NeoCode auth configuration"
|
|
95
|
+
- mkdir --parents ~/.local/share/neocode
|
|
96
|
+
- |
|
|
97
|
+
cat > ~/.local/share/neocode/auth.json << EOF
|
|
98
|
+
{
|
|
99
|
+
"anthropic": {
|
|
100
|
+
"type": "api",
|
|
101
|
+
"key": "$ANTHROPIC_API_KEY"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
EOF
|
|
105
|
+
- echo "Configuring git"
|
|
106
|
+
- git config --global user.email "neocode@gitlab.com"
|
|
107
|
+
- git config --global user.name "NeoCode"
|
|
108
|
+
- echo "Testing glab"
|
|
109
|
+
- glab issue list
|
|
110
|
+
- echo "Running NeoCode"
|
|
111
|
+
- |
|
|
112
|
+
neocode run "
|
|
113
|
+
You are an AI assistant helping with GitLab operations.
|
|
114
|
+
|
|
115
|
+
Context: $AI_FLOW_CONTEXT
|
|
116
|
+
Task: $AI_FLOW_INPUT
|
|
117
|
+
Event: $AI_FLOW_EVENT
|
|
118
|
+
|
|
119
|
+
Please execute the requested task using the available GitLab tools.
|
|
120
|
+
Be thorough in your analysis and provide clear explanations.
|
|
121
|
+
|
|
122
|
+
<important>
|
|
123
|
+
Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands.
|
|
124
|
+
|
|
125
|
+
If you are asked to summarize an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it.
|
|
126
|
+
You don't need to commit or push up changes, those will be done automatically based on the file changes you make.
|
|
127
|
+
</important>
|
|
128
|
+
"
|
|
129
|
+
- git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
|
|
130
|
+
- echo "Checking for git changes and pushing if any exist"
|
|
131
|
+
- |
|
|
132
|
+
if ! git diff --quiet || ! git diff --cached --quiet || [ --not --zero "$(git ls-files --others --exclude-standard)" ]; then
|
|
133
|
+
echo "Git changes detected, adding and pushing..."
|
|
134
|
+
git add .
|
|
135
|
+
if git diff --cached --quiet; then
|
|
136
|
+
echo "No staged changes to commit"
|
|
137
|
+
else
|
|
138
|
+
echo "Committing changes to branch: $CI_WORKLOAD_REF"
|
|
139
|
+
git commit --message "Codex changes"
|
|
140
|
+
echo "Pushing changes up to $CI_WORKLOAD_REF"
|
|
141
|
+
git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF
|
|
142
|
+
echo "Changes successfully pushed"
|
|
143
|
+
fi
|
|
144
|
+
else
|
|
145
|
+
echo "No git changes detected, skipping push"
|
|
146
|
+
fi
|
|
147
|
+
variables:
|
|
148
|
+
- ANTHROPIC_API_KEY
|
|
149
|
+
- GITLAB_TOKEN_NEOCODE
|
|
150
|
+
- GITLAB_HOST
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
</details>
|
|
154
|
+
|
|
155
|
+
You can refer to the [GitLab CLI agents docs](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/) for detailed instructions.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### Examples
|
|
160
|
+
|
|
161
|
+
Here are some examples of how you can use NeoCode in GitLab.
|
|
162
|
+
|
|
163
|
+
:::tip
|
|
164
|
+
You can configure to use a different trigger phrase than `@neocode`.
|
|
165
|
+
:::
|
|
166
|
+
|
|
167
|
+
- **Explain an issue**
|
|
168
|
+
|
|
169
|
+
Add this comment in a GitLab issue.
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
@neocode explain this issue
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
NeoCode will read the issue and reply with a clear explanation.
|
|
176
|
+
|
|
177
|
+
- **Fix an issue**
|
|
178
|
+
|
|
179
|
+
In a GitLab issue, say:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
@neocode fix this
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
NeoCode will create a new branch, implement the changes, and open a merge request with the changes.
|
|
186
|
+
|
|
187
|
+
- **Review merge requests**
|
|
188
|
+
|
|
189
|
+
Leave the following comment on a GitLab merge request.
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
@neocode review this merge request
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
NeoCode will review the merge request and provide feedback.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: IDE
|
|
3
|
+
description: The NeoCode extension for VS Code, Cursor, and other IDEs
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
NeoCode integrates with VS Code, Cursor, or any IDE that supports a terminal. Just run `neocode` in the terminal to get started.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
- **Quick Launch**: Use `Cmd+Esc` (Mac) or `Ctrl+Esc` (Windows/Linux) to open NeoCode in a split terminal view, or focus an existing terminal session if one is already running.
|
|
13
|
+
- **New Session**: Use `Cmd+Shift+Esc` (Mac) or `Ctrl+Shift+Esc` (Windows/Linux) to start a new NeoCode terminal session, even if one is already open. You can also click the NeoCode button in the UI.
|
|
14
|
+
- **Context Awareness**: Automatically share your current selection or tab with NeoCode.
|
|
15
|
+
- **File Reference Shortcuts**: Use `Cmd+Option+K` (Mac) or `Alt+Ctrl+K` (Linux/Windows) to insert file references. For example, `@File#L37-42`.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
To install NeoCode on VS Code and popular forks like Cursor, Windsurf, VSCodium:
|
|
22
|
+
|
|
23
|
+
1. Open VS Code
|
|
24
|
+
2. Open the integrated terminal
|
|
25
|
+
3. Run `neocode` - the extension installs automatically
|
|
26
|
+
|
|
27
|
+
If on the other hand you want to use your own IDE when you run `/editor` or `/export` from the TUI, you'll need to set `export EDITOR="code --wait"`. [Learn more](/docs/tui/#editor-setup).
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
### Manual Install
|
|
32
|
+
|
|
33
|
+
Search for **NeoCode** in the Extension Marketplace and click **Install**.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
### Troubleshooting
|
|
38
|
+
|
|
39
|
+
If the extension fails to install automatically:
|
|
40
|
+
|
|
41
|
+
- Ensure you’re running `neocode` in the integrated terminal.
|
|
42
|
+
- Confirm the CLI for your IDE is installed:
|
|
43
|
+
- For VS Code: `code` command
|
|
44
|
+
- For Cursor: `cursor` command
|
|
45
|
+
- For Windsurf: `windsurf` command
|
|
46
|
+
- For VSCodium: `codium` command
|
|
47
|
+
- If not, run `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux) and search for "Shell Command: Install 'code' command in PATH" (or the equivalent for your IDE)
|
|
48
|
+
- Ensure VS Code has permission to install extensions
|