@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,300 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Troubleshooting
|
|
3
|
+
description: Common issues and how to resolve them.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
To debug issues with NeoCode, start by checking the logs and local data it stores on disk.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Logs
|
|
11
|
+
|
|
12
|
+
Log files are written to:
|
|
13
|
+
|
|
14
|
+
- **macOS/Linux**: `~/.local/share/neocode/log/`
|
|
15
|
+
- **Windows**: Press `WIN+R` and paste `%USERPROFILE%\.local\share\neocode\log`
|
|
16
|
+
|
|
17
|
+
Log files are named with timestamps (e.g., `2025-01-09T123456.log`) and the most recent 10 log files are kept.
|
|
18
|
+
|
|
19
|
+
You can set the log level with the `--log-level` command-line option to get more detailed debug information. For example, `neocode --log-level DEBUG`.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Storage
|
|
24
|
+
|
|
25
|
+
neocode stores session data and other application data on disk at:
|
|
26
|
+
|
|
27
|
+
- **macOS/Linux**: `~/.local/share/neocode/`
|
|
28
|
+
- **Windows**: Press `WIN+R` and paste `%USERPROFILE%\.local\share\neocode`
|
|
29
|
+
|
|
30
|
+
This directory contains:
|
|
31
|
+
|
|
32
|
+
- `auth.json` - Authentication data like API keys, OAuth tokens
|
|
33
|
+
- `log/` - Application logs
|
|
34
|
+
- `project/` - Project-specific data like session and message data
|
|
35
|
+
- If the project is within a Git repo, it is stored in `./<project-slug>/storage/`
|
|
36
|
+
- If it is not a Git repo, it is stored in `./global/storage/`
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Desktop app
|
|
41
|
+
|
|
42
|
+
NeoCode Desktop runs a local NeoCode server (the `neocode-cli` sidecar) in the background. Most issues are caused by a misbehaving plugin, a corrupted cache, or a bad server setting.
|
|
43
|
+
|
|
44
|
+
### Quick checks
|
|
45
|
+
|
|
46
|
+
- Fully quit and relaunch the app.
|
|
47
|
+
- If the app shows an error screen, click **Restart** and copy the error details.
|
|
48
|
+
- macOS only: `NeoCode` menu -> **Reload Webview** (helps if the UI is blank/frozen).
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### Disable plugins
|
|
53
|
+
|
|
54
|
+
If the desktop app is crashing on launch, hanging, or behaving strangely, start by disabling plugins.
|
|
55
|
+
|
|
56
|
+
#### Check the global config
|
|
57
|
+
|
|
58
|
+
Open your global config file and look for a `plugin` key.
|
|
59
|
+
|
|
60
|
+
- **macOS/Linux**: `~/.config/neocode/neocode.jsonc` (or `~/.config/neocode/neocode.json`)
|
|
61
|
+
- **macOS/Linux** (older installs): `~/.local/share/neocode/neocode.jsonc`
|
|
62
|
+
- **Windows**: Press `WIN+R` and paste `%USERPROFILE%\.config\neocode\neocode.jsonc`
|
|
63
|
+
|
|
64
|
+
If you have plugins configured, temporarily disable them by removing the key or setting it to an empty array:
|
|
65
|
+
|
|
66
|
+
```jsonc
|
|
67
|
+
{
|
|
68
|
+
"$schema": "https://neo.khulnasoft.com/config.json",
|
|
69
|
+
"plugin": [],
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
#### Check plugin directories
|
|
74
|
+
|
|
75
|
+
NeoCode can also load local plugins from disk. Temporarily move these out of the way (or rename the folder) and restart the desktop app:
|
|
76
|
+
|
|
77
|
+
- **Global plugins**
|
|
78
|
+
- **macOS/Linux**: `~/.config/neocode/plugins/`
|
|
79
|
+
- **Windows**: Press `WIN+R` and paste `%USERPROFILE%\.config\neocode\plugins`
|
|
80
|
+
- **Project plugins** (only if you use per-project config)
|
|
81
|
+
- `<your-project>/.neocode/plugins/`
|
|
82
|
+
|
|
83
|
+
If the app starts working again, re-enable plugins one at a time to find which one is causing the issue.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### Clear the cache
|
|
88
|
+
|
|
89
|
+
If disabling plugins doesn't help (or a plugin install is stuck), clear the cache so NeoCode can rebuild it.
|
|
90
|
+
|
|
91
|
+
1. Quit NeoCode Desktop completely.
|
|
92
|
+
2. Delete the cache directory:
|
|
93
|
+
|
|
94
|
+
- **macOS**: Finder -> `Cmd+Shift+G` -> paste `~/.cache/neocode`
|
|
95
|
+
- **Linux**: delete `~/.cache/neocode` (or run `rm -rf ~/.cache/neocode`)
|
|
96
|
+
- **Windows**: Press `WIN+R` and paste `%USERPROFILE%\.cache\neocode`
|
|
97
|
+
|
|
98
|
+
3. Restart NeoCode Desktop.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Fix server connection issues
|
|
103
|
+
|
|
104
|
+
NeoCode Desktop can either start its own local server (default) or connect to a server URL you configured.
|
|
105
|
+
|
|
106
|
+
If you see a **"Connection Failed"** dialog (or the app never gets past the splash screen), check for a custom server URL.
|
|
107
|
+
|
|
108
|
+
#### Clear the desktop default server URL
|
|
109
|
+
|
|
110
|
+
From the Home screen, click the server name (with the status dot) to open the Server picker. In the **Default server** section, click **Clear**.
|
|
111
|
+
|
|
112
|
+
#### Remove `server.port` / `server.hostname` from your config
|
|
113
|
+
|
|
114
|
+
If your `neocode.json(c)` contains a `server` section, temporarily remove it and restart the desktop app.
|
|
115
|
+
|
|
116
|
+
#### Check environment variables
|
|
117
|
+
|
|
118
|
+
If you have `NEOCODE_PORT` set in your environment, the desktop app will try to use that port for the local server.
|
|
119
|
+
|
|
120
|
+
- Unset `NEOCODE_PORT` (or pick a free port) and restart.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### Linux: Wayland / X11 issues
|
|
125
|
+
|
|
126
|
+
On Linux, some Wayland setups can cause blank windows or compositor errors.
|
|
127
|
+
|
|
128
|
+
- If you're on Wayland and the app is blank/crashing, try launching with `OC_ALLOW_WAYLAND=1`.
|
|
129
|
+
- If that makes things worse, remove it and try launching under an X11 session instead.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### Windows: WebView2 runtime
|
|
134
|
+
|
|
135
|
+
On Windows, NeoCode Desktop requires the Microsoft Edge **WebView2 Runtime**. If the app opens to a blank window or won't start, install/update WebView2 and try again.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### Windows: General performance issues
|
|
140
|
+
|
|
141
|
+
If you're experiencing slow performance, file access issues, or terminal problems on Windows, try using [WSL (Windows Subsystem for Linux)](/docs/windows-wsl). WSL provides a Linux environment that works more seamlessly with NeoCode's features.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### Notifications not showing
|
|
146
|
+
|
|
147
|
+
NeoCode Desktop only shows system notifications when:
|
|
148
|
+
|
|
149
|
+
- notifications are enabled for NeoCode in your OS settings, and
|
|
150
|
+
- the app window is not focused.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### Reset desktop app storage (last resort)
|
|
155
|
+
|
|
156
|
+
If the app won't start and you can't clear settings from inside the UI, reset the desktop app's saved state.
|
|
157
|
+
|
|
158
|
+
1. Quit NeoCode Desktop.
|
|
159
|
+
2. Find and delete these files (they live in the NeoCode Desktop app data directory):
|
|
160
|
+
|
|
161
|
+
- `neocode.settings.dat` (desktop default server URL)
|
|
162
|
+
- `neocode.global.dat` and `neocode.workspace.*.dat` (UI state like recent servers/projects)
|
|
163
|
+
|
|
164
|
+
To find the directory quickly:
|
|
165
|
+
|
|
166
|
+
- **macOS**: Finder -> `Cmd+Shift+G` -> `~/Library/Application Support` (then search for the filenames above)
|
|
167
|
+
- **Linux**: search under `~/.local/share` for the filenames above
|
|
168
|
+
- **Windows**: Press `WIN+R` -> `%APPDATA%` (then search for the filenames above)
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Getting help
|
|
173
|
+
|
|
174
|
+
If you're experiencing issues with NeoCode:
|
|
175
|
+
|
|
176
|
+
1. **Report issues on GitHub**
|
|
177
|
+
|
|
178
|
+
The best way to report bugs or request features is through our GitHub repository:
|
|
179
|
+
|
|
180
|
+
[**github.com/neopilot-ai/neocode/issues**](https://github.com/neopilot-ai/neocode/issues)
|
|
181
|
+
|
|
182
|
+
Before creating a new issue, search existing issues to see if your problem has already been reported.
|
|
183
|
+
|
|
184
|
+
2. **Join our Discord**
|
|
185
|
+
|
|
186
|
+
For real-time help and community discussion, join our Discord server:
|
|
187
|
+
|
|
188
|
+
[**neo.khulnasoft.com/discord**](https://neo.khulnasoft.com/discord)
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Common issues
|
|
193
|
+
|
|
194
|
+
Here are some common issues and how to resolve them.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### NeoCode won't start
|
|
199
|
+
|
|
200
|
+
1. Check the logs for error messages
|
|
201
|
+
2. Try running with `--print-logs` to see output in the terminal
|
|
202
|
+
3. Ensure you have the latest version with `neocode upgrade`
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
### Authentication issues
|
|
207
|
+
|
|
208
|
+
1. Try re-authenticating with the `/connect` command in the TUI
|
|
209
|
+
2. Check that your API keys are valid
|
|
210
|
+
3. Ensure your network allows connections to the provider's API
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### Model not available
|
|
215
|
+
|
|
216
|
+
1. Check that you've authenticated with the provider
|
|
217
|
+
2. Verify the model name in your config is correct
|
|
218
|
+
3. Some models may require specific access or subscriptions
|
|
219
|
+
|
|
220
|
+
If you encounter `ProviderModelNotFoundError` you are most likely incorrectly
|
|
221
|
+
referencing a model somewhere.
|
|
222
|
+
Models should be referenced like so: `<providerId>/<modelId>`
|
|
223
|
+
|
|
224
|
+
Examples:
|
|
225
|
+
|
|
226
|
+
- `openai/gpt-4.1`
|
|
227
|
+
- `openrouter/google/gemini-2.5-flash`
|
|
228
|
+
- `neocode/kimi-k2`
|
|
229
|
+
|
|
230
|
+
To figure out what models you have access to, run `neocode models`
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### ProviderInitError
|
|
235
|
+
|
|
236
|
+
If you encounter a ProviderInitError, you likely have an invalid or corrupted configuration.
|
|
237
|
+
|
|
238
|
+
To resolve this:
|
|
239
|
+
|
|
240
|
+
1. First, verify your provider is set up correctly by following the [providers guide](/docs/providers)
|
|
241
|
+
2. If the issue persists, try clearing your stored configuration:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
rm -rf ~/.local/share/neocode
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
On Windows, press `WIN+R` and delete: `%USERPROFILE%\.local\share\neocode`
|
|
248
|
+
|
|
249
|
+
3. Re-authenticate with your provider using the `/connect` command in the TUI.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
### AI_APICallError and provider package issues
|
|
254
|
+
|
|
255
|
+
If you encounter API call errors, this may be due to outdated provider packages. neocode dynamically installs provider packages (OpenAI, Anthropic, Google, etc.) as needed and caches them locally.
|
|
256
|
+
|
|
257
|
+
To resolve provider package issues:
|
|
258
|
+
|
|
259
|
+
1. Clear the provider package cache:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
rm -rf ~/.cache/neocode
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
On Windows, press `WIN+R` and delete: `%USERPROFILE%\.cache\neocode`
|
|
266
|
+
|
|
267
|
+
2. Restart neocode to reinstall the latest provider packages
|
|
268
|
+
|
|
269
|
+
This will force neocode to download the most recent versions of provider packages, which often resolves compatibility issues with model parameters and API changes.
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
### Copy/paste not working on Linux
|
|
274
|
+
|
|
275
|
+
Linux users need to have one of the following clipboard utilities installed for copy/paste functionality to work:
|
|
276
|
+
|
|
277
|
+
**For X11 systems:**
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
apt install -y xclip
|
|
281
|
+
# or
|
|
282
|
+
apt install -y xsel
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**For Wayland systems:**
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
apt install -y wl-clipboard
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**For headless environments:**
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
apt install -y xvfb
|
|
295
|
+
# and run:
|
|
296
|
+
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
|
|
297
|
+
export DISPLAY=:99.0
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
neocode will detect if you're using Wayland and prefer `wl-clipboard`, otherwise it will try to find clipboard tools in order of: `xclip` and `xsel`.
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: TUI
|
|
3
|
+
description: Using the NeoCode terminal user interface.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Tabs, TabItem } from "@astrojs/starlight/components"
|
|
7
|
+
|
|
8
|
+
NeoCode provides an interactive terminal interface or TUI for working on your projects with an LLM.
|
|
9
|
+
|
|
10
|
+
Running NeoCode starts the TUI for the current directory.
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
neocode
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Or you can start it for a specific working directory.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
neocode /path/to/project
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Once you're in the TUI, you can prompt it with a message.
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
Give me a quick summary of the codebase.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## File references
|
|
31
|
+
|
|
32
|
+
You can reference files in your messages using `@`. This does a fuzzy file search in the current working directory.
|
|
33
|
+
|
|
34
|
+
:::tip
|
|
35
|
+
You can also use `@` to reference files in your messages.
|
|
36
|
+
:::
|
|
37
|
+
|
|
38
|
+
```text "@packages/functions/src/api/index.ts"
|
|
39
|
+
How is auth handled in @packages/functions/src/api/index.ts?
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The content of the file is added to the conversation automatically.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Bash commands
|
|
47
|
+
|
|
48
|
+
Start a message with `!` to run a shell command.
|
|
49
|
+
|
|
50
|
+
```bash frame="none"
|
|
51
|
+
!ls -la
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The output of the command is added to the conversation as a tool result.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Commands
|
|
59
|
+
|
|
60
|
+
When using the NeoCode TUI, you can type `/` followed by a command name to quickly execute actions. For example:
|
|
61
|
+
|
|
62
|
+
```bash frame="none"
|
|
63
|
+
/help
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Most commands also have keybind using `ctrl+x` as the leader key, where `ctrl+x` is the default leader key. [Learn more](/docs/keybinds).
|
|
67
|
+
|
|
68
|
+
Here are all available slash commands:
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### connect
|
|
73
|
+
|
|
74
|
+
Add a provider to NeoCode. Allows you to select from available providers and add their API keys.
|
|
75
|
+
|
|
76
|
+
```bash frame="none"
|
|
77
|
+
/connect
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### compact
|
|
83
|
+
|
|
84
|
+
Compact the current session. _Alias_: `/summarize`
|
|
85
|
+
|
|
86
|
+
```bash frame="none"
|
|
87
|
+
/compact
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Keybind:** `ctrl+x c`
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### details
|
|
95
|
+
|
|
96
|
+
Toggle tool execution details.
|
|
97
|
+
|
|
98
|
+
```bash frame="none"
|
|
99
|
+
/details
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Keybind:** `ctrl+x d`
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### editor
|
|
107
|
+
|
|
108
|
+
Open external editor for composing messages. Uses the editor set in your `EDITOR` environment variable. [Learn more](#editor-setup).
|
|
109
|
+
|
|
110
|
+
```bash frame="none"
|
|
111
|
+
/editor
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Keybind:** `ctrl+x e`
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### exit
|
|
119
|
+
|
|
120
|
+
Exit NeoCode. _Aliases_: `/quit`, `/q`
|
|
121
|
+
|
|
122
|
+
```bash frame="none"
|
|
123
|
+
/exit
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Keybind:** `ctrl+x q`
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### export
|
|
131
|
+
|
|
132
|
+
Export current conversation to Markdown and open in your default editor. Uses the editor set in your `EDITOR` environment variable. [Learn more](#editor-setup).
|
|
133
|
+
|
|
134
|
+
```bash frame="none"
|
|
135
|
+
/export
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Keybind:** `ctrl+x x`
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### help
|
|
143
|
+
|
|
144
|
+
Show the help dialog.
|
|
145
|
+
|
|
146
|
+
```bash frame="none"
|
|
147
|
+
/help
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Keybind:** `ctrl+x h`
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### init
|
|
155
|
+
|
|
156
|
+
Create or update `AGENTS.md` file. [Learn more](/docs/rules).
|
|
157
|
+
|
|
158
|
+
```bash frame="none"
|
|
159
|
+
/init
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Keybind:** `ctrl+x i`
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### models
|
|
167
|
+
|
|
168
|
+
List available models.
|
|
169
|
+
|
|
170
|
+
```bash frame="none"
|
|
171
|
+
/models
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Keybind:** `ctrl+x m`
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### new
|
|
179
|
+
|
|
180
|
+
Start a new session. _Alias_: `/clear`
|
|
181
|
+
|
|
182
|
+
```bash frame="none"
|
|
183
|
+
/new
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Keybind:** `ctrl+x n`
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### redo
|
|
191
|
+
|
|
192
|
+
Redo a previously undone message. Only available after using `/undo`.
|
|
193
|
+
|
|
194
|
+
:::tip
|
|
195
|
+
Any file changes will also be restored.
|
|
196
|
+
:::
|
|
197
|
+
|
|
198
|
+
Internally, this uses Git to manage the file changes. So your project **needs to
|
|
199
|
+
be a Git repository**.
|
|
200
|
+
|
|
201
|
+
```bash frame="none"
|
|
202
|
+
/redo
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Keybind:** `ctrl+x r`
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
### sessions
|
|
210
|
+
|
|
211
|
+
List and switch between sessions. _Aliases_: `/resume`, `/continue`
|
|
212
|
+
|
|
213
|
+
```bash frame="none"
|
|
214
|
+
/sessions
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**Keybind:** `ctrl+x l`
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### share
|
|
222
|
+
|
|
223
|
+
Share current session. [Learn more](/docs/share).
|
|
224
|
+
|
|
225
|
+
```bash frame="none"
|
|
226
|
+
/share
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Keybind:** `ctrl+x s`
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
### themes
|
|
234
|
+
|
|
235
|
+
List available themes.
|
|
236
|
+
|
|
237
|
+
```bash frame="none"
|
|
238
|
+
/theme
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Keybind:** `ctrl+x t`
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### thinking
|
|
246
|
+
|
|
247
|
+
Toggle the visibility of thinking/reasoning blocks in the conversation. When enabled, you can see the model's reasoning process for models that support extended thinking.
|
|
248
|
+
|
|
249
|
+
:::note
|
|
250
|
+
This command only controls whether thinking blocks are **displayed** - it does not enable or disable the model's reasoning capabilities. To toggle actual reasoning capabilities, use `ctrl+t` to cycle through model variants.
|
|
251
|
+
:::
|
|
252
|
+
|
|
253
|
+
```bash frame="none"
|
|
254
|
+
/thinking
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
### undo
|
|
260
|
+
|
|
261
|
+
Undo last message in the conversation. Removes the most recent user message, all subsequent responses, and any file changes.
|
|
262
|
+
|
|
263
|
+
:::tip
|
|
264
|
+
Any file changes made will also be reverted.
|
|
265
|
+
:::
|
|
266
|
+
|
|
267
|
+
Internally, this uses Git to manage the file changes. So your project **needs to
|
|
268
|
+
be a Git repository**.
|
|
269
|
+
|
|
270
|
+
```bash frame="none"
|
|
271
|
+
/undo
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Keybind:** `ctrl+x u`
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
### unshare
|
|
279
|
+
|
|
280
|
+
Unshare current session. [Learn more](/docs/share#un-sharing).
|
|
281
|
+
|
|
282
|
+
```bash frame="none"
|
|
283
|
+
/unshare
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Editor setup
|
|
289
|
+
|
|
290
|
+
Both the `/editor` and `/export` commands use the editor specified in your `EDITOR` environment variable.
|
|
291
|
+
|
|
292
|
+
<Tabs>
|
|
293
|
+
<TabItem label="Linux/macOS">
|
|
294
|
+
```bash
|
|
295
|
+
# Example for nano or vim
|
|
296
|
+
export EDITOR=nano
|
|
297
|
+
export EDITOR=vim
|
|
298
|
+
|
|
299
|
+
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
300
|
+
# include --wait
|
|
301
|
+
export EDITOR="code --wait"
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
To make it permanent, add this to your shell profile;
|
|
305
|
+
`~/.bashrc`, `~/.zshrc`, etc.
|
|
306
|
+
|
|
307
|
+
</TabItem>
|
|
308
|
+
|
|
309
|
+
<TabItem label="Windows (CMD)">
|
|
310
|
+
```bash
|
|
311
|
+
set EDITOR=notepad
|
|
312
|
+
|
|
313
|
+
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
314
|
+
# include --wait
|
|
315
|
+
set EDITOR=code --wait
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
To make it permanent, use **System Properties** > **Environment
|
|
319
|
+
Variables**.
|
|
320
|
+
|
|
321
|
+
</TabItem>
|
|
322
|
+
|
|
323
|
+
<TabItem label="Windows (PowerShell)">
|
|
324
|
+
```powershell
|
|
325
|
+
$env:EDITOR = "notepad"
|
|
326
|
+
|
|
327
|
+
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
328
|
+
# include --wait
|
|
329
|
+
$env:EDITOR = "code --wait"
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
To make it permanent, add this to your PowerShell profile.
|
|
333
|
+
|
|
334
|
+
</TabItem>
|
|
335
|
+
</Tabs>
|
|
336
|
+
|
|
337
|
+
Popular editor options include:
|
|
338
|
+
|
|
339
|
+
- `code` - Visual Studio Code
|
|
340
|
+
- `cursor` - Cursor
|
|
341
|
+
- `windsurf` - Windsurf
|
|
342
|
+
- `nvim` - Neovim editor
|
|
343
|
+
- `vim` - Vim editor
|
|
344
|
+
- `nano` - Nano editor
|
|
345
|
+
- `notepad` - Windows Notepad
|
|
346
|
+
- `subl` - Sublime Text
|
|
347
|
+
|
|
348
|
+
:::note
|
|
349
|
+
Some editors like VS Code need to be started with the `--wait` flag.
|
|
350
|
+
:::
|
|
351
|
+
|
|
352
|
+
Some editors need command-line arguments to run in blocking mode. The `--wait` flag makes the editor process block until closed.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Configure
|
|
357
|
+
|
|
358
|
+
You can customize TUI behavior through your NeoCode config file.
|
|
359
|
+
|
|
360
|
+
```json title="neocode.json"
|
|
361
|
+
{
|
|
362
|
+
"$schema": "https://neo.khulnasoft.com/config.json",
|
|
363
|
+
"tui": {
|
|
364
|
+
"scroll_speed": 3,
|
|
365
|
+
"scroll_acceleration": {
|
|
366
|
+
"enabled": true
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Options
|
|
373
|
+
|
|
374
|
+
- `scroll_acceleration` - Enable macOS-style scroll acceleration for smooth, natural scrolling. When enabled, scroll speed increases with rapid scrolling gestures and stays precise for slower movements. **This setting takes precedence over `scroll_speed` and overrides it when enabled.**
|
|
375
|
+
- `scroll_speed` - Controls how fast the TUI scrolls when using scroll commands (minimum: `1`). Defaults to `3`. **Note: This is ignored if `scroll_acceleration.enabled` is set to `true`.**
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## Customization
|
|
380
|
+
|
|
381
|
+
You can customize various aspects of the TUI view using the command palette (`ctrl+x h` or `/help`). These settings persist across restarts.
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
#### Username display
|
|
386
|
+
|
|
387
|
+
Toggle whether your username appears in chat messages. Access this through:
|
|
388
|
+
|
|
389
|
+
- Command palette: Search for "username" or "hide username"
|
|
390
|
+
- The setting persists automatically and will be remembered across TUI sessions
|