@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.
Files changed (86) hide show
  1. package/README.md +54 -0
  2. package/astro.config.mjs +145 -0
  3. package/config.mjs +14 -0
  4. package/package.json +41 -0
  5. package/public/robots.txt +6 -0
  6. package/public/theme.json +183 -0
  7. package/src/assets/lander/check.svg +2 -0
  8. package/src/assets/lander/copy.svg +2 -0
  9. package/src/assets/lander/screenshot-github.png +0 -0
  10. package/src/assets/lander/screenshot-splash.png +0 -0
  11. package/src/assets/lander/screenshot-vscode.png +0 -0
  12. package/src/assets/lander/screenshot.png +0 -0
  13. package/src/assets/logo-dark.svg +20 -0
  14. package/src/assets/logo-light.svg +20 -0
  15. package/src/assets/logo-ornate-dark.svg +18 -0
  16. package/src/assets/logo-ornate-light.svg +18 -0
  17. package/src/assets/web/web-homepage-active-session.png +0 -0
  18. package/src/assets/web/web-homepage-new-session.png +0 -0
  19. package/src/assets/web/web-homepage-see-servers.png +0 -0
  20. package/src/components/Head.astro +50 -0
  21. package/src/components/Header.astro +128 -0
  22. package/src/components/Hero.astro +11 -0
  23. package/src/components/Lander.astro +713 -0
  24. package/src/components/Share.tsx +634 -0
  25. package/src/components/SiteTitle.astro +59 -0
  26. package/src/components/icons/custom.tsx +87 -0
  27. package/src/components/icons/index.tsx +4454 -0
  28. package/src/components/share/common.tsx +77 -0
  29. package/src/components/share/content-bash.module.css +85 -0
  30. package/src/components/share/content-bash.tsx +67 -0
  31. package/src/components/share/content-code.module.css +26 -0
  32. package/src/components/share/content-code.tsx +32 -0
  33. package/src/components/share/content-diff.module.css +153 -0
  34. package/src/components/share/content-diff.tsx +231 -0
  35. package/src/components/share/content-error.module.css +64 -0
  36. package/src/components/share/content-error.tsx +24 -0
  37. package/src/components/share/content-markdown.module.css +154 -0
  38. package/src/components/share/content-markdown.tsx +75 -0
  39. package/src/components/share/content-text.module.css +63 -0
  40. package/src/components/share/content-text.tsx +37 -0
  41. package/src/components/share/copy-button.module.css +30 -0
  42. package/src/components/share/copy-button.tsx +28 -0
  43. package/src/components/share/part.module.css +428 -0
  44. package/src/components/share/part.tsx +780 -0
  45. package/src/components/share.module.css +832 -0
  46. package/src/content/docs/1-0.mdx +67 -0
  47. package/src/content/docs/acp.mdx +156 -0
  48. package/src/content/docs/agents.mdx +720 -0
  49. package/src/content/docs/cli.mdx +597 -0
  50. package/src/content/docs/commands.mdx +323 -0
  51. package/src/content/docs/config.mdx +683 -0
  52. package/src/content/docs/custom-tools.mdx +170 -0
  53. package/src/content/docs/ecosystem.mdx +76 -0
  54. package/src/content/docs/enterprise.mdx +170 -0
  55. package/src/content/docs/formatters.mdx +130 -0
  56. package/src/content/docs/github.mdx +321 -0
  57. package/src/content/docs/gitlab.mdx +195 -0
  58. package/src/content/docs/ide.mdx +48 -0
  59. package/src/content/docs/index.mdx +359 -0
  60. package/src/content/docs/keybinds.mdx +191 -0
  61. package/src/content/docs/lsp.mdx +188 -0
  62. package/src/content/docs/mcp-servers.mdx +511 -0
  63. package/src/content/docs/models.mdx +223 -0
  64. package/src/content/docs/modes.mdx +331 -0
  65. package/src/content/docs/network.mdx +57 -0
  66. package/src/content/docs/permissions.mdx +237 -0
  67. package/src/content/docs/plugins.mdx +362 -0
  68. package/src/content/docs/providers.mdx +1889 -0
  69. package/src/content/docs/rules.mdx +180 -0
  70. package/src/content/docs/sdk.mdx +391 -0
  71. package/src/content/docs/server.mdx +286 -0
  72. package/src/content/docs/share.mdx +128 -0
  73. package/src/content/docs/skills.mdx +220 -0
  74. package/src/content/docs/themes.mdx +369 -0
  75. package/src/content/docs/tools.mdx +345 -0
  76. package/src/content/docs/troubleshooting.mdx +300 -0
  77. package/src/content/docs/tui.mdx +390 -0
  78. package/src/content/docs/web.mdx +136 -0
  79. package/src/content/docs/windows-wsl.mdx +113 -0
  80. package/src/content/docs/zen.mdx +251 -0
  81. package/src/content.config.ts +7 -0
  82. package/src/pages/[...slug].md.ts +18 -0
  83. package/src/pages/s/[id].astro +113 -0
  84. package/src/styles/custom.css +405 -0
  85. package/src/types/lang-map.d.ts +27 -0
  86. package/tsconfig.json +9 -0
@@ -0,0 +1,223 @@
1
+ ---
2
+ title: Models
3
+ description: Configuring an LLM provider and model.
4
+ ---
5
+
6
+ NeoCode uses the [AI SDK](https://ai-sdk.dev/) and [Models.dev](https://models.dev) to support **75+ LLM providers** and it supports running local models.
7
+
8
+ ---
9
+
10
+ ## Providers
11
+
12
+ Most popular providers are preloaded by default. If you've added the credentials for a provider through the `/connect` command, they'll be available when you start NeoCode.
13
+
14
+ Learn more about [providers](/docs/providers).
15
+
16
+ ---
17
+
18
+ ## Select a model
19
+
20
+ Once you've configured your provider you can select the model you want by typing in:
21
+
22
+ ```bash frame="none"
23
+ /models
24
+ ```
25
+
26
+ ---
27
+
28
+ ## Recommended models
29
+
30
+ There are a lot of models out there, with new models coming out every week.
31
+
32
+ :::tip
33
+ Consider using one of the models we recommend.
34
+ :::
35
+
36
+ However, there are only a few of them that are good at both generating code and tool calling.
37
+
38
+ Here are several models that work well with NeoCode, in no particular order. (This is not an exhaustive list nor is it necessarily up to date):
39
+
40
+ - GPT 5.2
41
+ - GPT 5.1 Codex
42
+ - Claude Opus 4.5
43
+ - Claude Sonnet 4.5
44
+ - Minimax M2.1
45
+ - Gemini 3 Pro
46
+
47
+ ---
48
+
49
+ ## Set a default
50
+
51
+ To set one of these as the default model, you can set the `model` key in your
52
+ NeoCode config.
53
+
54
+ ```json title="neocode.json" {3}
55
+ {
56
+ "$schema": "https://neo.khulnasoft.com/config.json",
57
+ "model": "lmstudio/google/gemma-3n-e4b"
58
+ }
59
+ ```
60
+
61
+ Here the full ID is `provider_id/model_id`. For example, if you're using [NeoCode Zen](/docs/zen), you would use `neocode/gpt-5.1-codex` for GPT 5.1 Codex.
62
+
63
+ If you've configured a [custom provider](/docs/providers#custom), the `provider_id` is key from the `provider` part of your config, and the `model_id` is the key from `provider.models`.
64
+
65
+ ---
66
+
67
+ ## Configure models
68
+
69
+ You can globally configure a model's options through the config.
70
+
71
+ ```jsonc title="neocode.jsonc" {7-12,19-24}
72
+ {
73
+ "$schema": "https://neo.khulnasoft.com/config.json",
74
+ "provider": {
75
+ "openai": {
76
+ "models": {
77
+ "gpt-5": {
78
+ "options": {
79
+ "reasoningEffort": "high",
80
+ "textVerbosity": "low",
81
+ "reasoningSummary": "auto",
82
+ "include": ["reasoning.encrypted_content"],
83
+ },
84
+ },
85
+ },
86
+ },
87
+ "anthropic": {
88
+ "models": {
89
+ "claude-sonnet-4-5-20250929": {
90
+ "options": {
91
+ "thinking": {
92
+ "type": "enabled",
93
+ "budgetTokens": 16000,
94
+ },
95
+ },
96
+ },
97
+ },
98
+ },
99
+ },
100
+ }
101
+ ```
102
+
103
+ Here we're configuring global settings for two built-in models: `gpt-5` when accessed via the `openai` provider, and `claude-sonnet-4-20250514` when accessed via the `anthropic` provider.
104
+ The built-in provider and model names can be found on [Models.dev](https://models.dev).
105
+
106
+ You can also configure these options for any agents that you are using. The agent config overrides any global options here. [Learn more](/docs/agents/#additional).
107
+
108
+ You can also define custom variants that extend built-in ones. Variants let you configure different settings for the same model without creating duplicate entries:
109
+
110
+ ```jsonc title="neocode.jsonc" {6-21}
111
+ {
112
+ "$schema": "https://neo.khulnasoft.com/config.json",
113
+ "provider": {
114
+ "neocode": {
115
+ "models": {
116
+ "gpt-5": {
117
+ "variants": {
118
+ "high": {
119
+ "reasoningEffort": "high",
120
+ "textVerbosity": "low",
121
+ "reasoningSummary": "auto",
122
+ },
123
+ "low": {
124
+ "reasoningEffort": "low",
125
+ "textVerbosity": "low",
126
+ "reasoningSummary": "auto",
127
+ },
128
+ },
129
+ },
130
+ },
131
+ },
132
+ },
133
+ }
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Variants
139
+
140
+ Many models support multiple variants with different configurations. NeoCode ships with built-in default variants for popular providers.
141
+
142
+ ### Built-in variants
143
+
144
+ NeoCode ships with default variants for many providers:
145
+
146
+ **Anthropic**:
147
+
148
+ - `high` - High thinking budget (default)
149
+ - `max` - Maximum thinking budget
150
+
151
+ **OpenAI**:
152
+
153
+ Varies by model but roughly:
154
+
155
+ - `none` - No reasoning
156
+ - `minimal` - Minimal reasoning effort
157
+ - `low` - Low reasoning effort
158
+ - `medium` - Medium reasoning effort
159
+ - `high` - High reasoning effort
160
+ - `xhigh` - Extra high reasoning effort
161
+
162
+ **Google**:
163
+
164
+ - `low` - Lower effort/token budget
165
+ - `high` - Higher effort/token budget
166
+
167
+ :::tip
168
+ This list is not comprehensive. Many other providers have built-in defaults too.
169
+ :::
170
+
171
+ ### Custom variants
172
+
173
+ You can override existing variants or add your own:
174
+
175
+ ```jsonc title="neocode.jsonc" {7-18}
176
+ {
177
+ "$schema": "https://neo.khulnasoft.com/config.json",
178
+ "provider": {
179
+ "openai": {
180
+ "models": {
181
+ "gpt-5": {
182
+ "variants": {
183
+ "thinking": {
184
+ "reasoningEffort": "high",
185
+ "textVerbosity": "low",
186
+ },
187
+ "fast": {
188
+ "disabled": true,
189
+ },
190
+ },
191
+ },
192
+ },
193
+ },
194
+ },
195
+ }
196
+ ```
197
+
198
+ ### Cycle variants
199
+
200
+ Use the keybind `variant_cycle` to quickly switch between variants. [Learn more](/docs/keybinds).
201
+
202
+ ---
203
+
204
+ ## Loading models
205
+
206
+ When NeoCode starts up, it checks for models in the following priority order:
207
+
208
+ 1. The `--model` or `-m` command line flag. The format is the same as in the config file: `provider_id/model_id`.
209
+
210
+ 2. The model list in the NeoCode config.
211
+
212
+ ```json title="neocode.json"
213
+ {
214
+ "$schema": "https://neo.khulnasoft.com/config.json",
215
+ "model": "anthropic/claude-sonnet-4-20250514"
216
+ }
217
+ ```
218
+
219
+ The format here is `provider/model`.
220
+
221
+ 3. The last used model.
222
+
223
+ 4. The first model using an internal priority.
@@ -0,0 +1,331 @@
1
+ ---
2
+ title: Modes
3
+ description: Different modes for different use cases.
4
+ ---
5
+
6
+ :::caution
7
+ Modes are now configured through the `agent` option in the neocode config. The
8
+ `mode` option is now deprecated. [Learn more](/docs/agents).
9
+ :::
10
+
11
+ Modes in neocode allow you to customize the behavior, tools, and prompts for different use cases.
12
+
13
+ It comes with two built-in modes: **build** and **plan**. You can customize
14
+ these or configure your own through the neocode config.
15
+
16
+ You can switch between modes during a session or configure them in your config file.
17
+
18
+ ---
19
+
20
+ ## Built-in
21
+
22
+ neocode comes with two built-in modes.
23
+
24
+ ---
25
+
26
+ ### Build
27
+
28
+ Build is the **default** mode with all tools enabled. This is the standard mode for development work where you need full access to file operations and system commands.
29
+
30
+ ---
31
+
32
+ ### Plan
33
+
34
+ A restricted mode designed for planning and analysis. In plan mode, the following tools are disabled by default:
35
+
36
+ - `write` - Cannot create new files
37
+ - `edit` - Cannot modify existing files, except for files located at `.neocode/plans/*.md` to detail the plan itself
38
+ - `patch` - Cannot apply patches
39
+ - `bash` - Cannot execute shell commands
40
+
41
+ This mode is useful when you want the AI to analyze code, suggest changes, or create plans without making any actual modifications to your codebase.
42
+
43
+ ---
44
+
45
+ ## Switching
46
+
47
+ You can switch between modes during a session using the _Tab_ key. Or your configured `switch_mode` keybind.
48
+
49
+ See also: [Formatters](/docs/formatters) for information about code formatting configuration.
50
+
51
+ ---
52
+
53
+ ## Configure
54
+
55
+ You can customize the built-in modes or create your own through configuration. Modes can be configured in two ways:
56
+
57
+ ### JSON Configuration
58
+
59
+ Configure modes in your `neocode.json` config file:
60
+
61
+ ```json title="neocode.json"
62
+ {
63
+ "$schema": "https://neo.khulnasoft.com/config.json",
64
+ "mode": {
65
+ "build": {
66
+ "model": "anthropic/claude-sonnet-4-20250514",
67
+ "prompt": "{file:./prompts/build.txt}",
68
+ "tools": {
69
+ "write": true,
70
+ "edit": true,
71
+ "bash": true
72
+ }
73
+ },
74
+ "plan": {
75
+ "model": "anthropic/claude-haiku-4-20250514",
76
+ "tools": {
77
+ "write": false,
78
+ "edit": false,
79
+ "bash": false
80
+ }
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ ### Markdown Configuration
87
+
88
+ You can also define modes using markdown files. Place them in:
89
+
90
+ - Global: `~/.config/neocode/modes/`
91
+ - Project: `.neocode/modes/`
92
+
93
+ ```markdown title="~/.config/neocode/modes/review.md"
94
+ ---
95
+ model: anthropic/claude-sonnet-4-20250514
96
+ temperature: 0.1
97
+ tools:
98
+ write: false
99
+ edit: false
100
+ bash: false
101
+ ---
102
+
103
+ You are in code review mode. Focus on:
104
+
105
+ - Code quality and best practices
106
+ - Potential bugs and edge cases
107
+ - Performance implications
108
+ - Security considerations
109
+
110
+ Provide constructive feedback without making direct changes.
111
+ ```
112
+
113
+ The markdown file name becomes the mode name (e.g., `review.md` creates a `review` mode).
114
+
115
+ Let's look at these configuration options in detail.
116
+
117
+ ---
118
+
119
+ ### Model
120
+
121
+ Use the `model` config to override the default model for this mode. Useful for using different models optimized for different tasks. For example, a faster model for planning, a more capable model for implementation.
122
+
123
+ ```json title="neocode.json"
124
+ {
125
+ "mode": {
126
+ "plan": {
127
+ "model": "anthropic/claude-haiku-4-20250514"
128
+ }
129
+ }
130
+ }
131
+ ```
132
+
133
+ ---
134
+
135
+ ### Temperature
136
+
137
+ Control the randomness and creativity of the AI's responses with the `temperature` config. Lower values make responses more focused and deterministic, while higher values increase creativity and variability.
138
+
139
+ ```json title="neocode.json"
140
+ {
141
+ "mode": {
142
+ "plan": {
143
+ "temperature": 0.1
144
+ },
145
+ "creative": {
146
+ "temperature": 0.8
147
+ }
148
+ }
149
+ }
150
+ ```
151
+
152
+ Temperature values typically range from 0.0 to 1.0:
153
+
154
+ - **0.0-0.2**: Very focused and deterministic responses, ideal for code analysis and planning
155
+ - **0.3-0.5**: Balanced responses with some creativity, good for general development tasks
156
+ - **0.6-1.0**: More creative and varied responses, useful for brainstorming and exploration
157
+
158
+ ```json title="neocode.json"
159
+ {
160
+ "mode": {
161
+ "analyze": {
162
+ "temperature": 0.1,
163
+ "prompt": "{file:./prompts/analysis.txt}"
164
+ },
165
+ "build": {
166
+ "temperature": 0.3
167
+ },
168
+ "brainstorm": {
169
+ "temperature": 0.7,
170
+ "prompt": "{file:./prompts/creative.txt}"
171
+ }
172
+ }
173
+ }
174
+ ```
175
+
176
+ If no temperature is specified, neocode uses model-specific defaults (typically 0 for most models, 0.55 for Qwen models).
177
+
178
+ ---
179
+
180
+ ### Prompt
181
+
182
+ Specify a custom system prompt file for this mode with the `prompt` config. The prompt file should contain instructions specific to the mode's purpose.
183
+
184
+ ```json title="neocode.json"
185
+ {
186
+ "mode": {
187
+ "review": {
188
+ "prompt": "{file:./prompts/code-review.txt}"
189
+ }
190
+ }
191
+ }
192
+ ```
193
+
194
+ This path is relative to where the config file is located. So this works for
195
+ both the global neocode config and the project specific config.
196
+
197
+ ---
198
+
199
+ ### Tools
200
+
201
+ Control which tools are available in this mode with the `tools` config. You can enable or disable specific tools by setting them to `true` or `false`.
202
+
203
+ ```json
204
+ {
205
+ "mode": {
206
+ "readonly": {
207
+ "tools": {
208
+ "write": false,
209
+ "edit": false,
210
+ "bash": false,
211
+ "read": true,
212
+ "grep": true,
213
+ "glob": true
214
+ }
215
+ }
216
+ }
217
+ }
218
+ ```
219
+
220
+ If no tools are specified, all tools are enabled by default.
221
+
222
+ ---
223
+
224
+ #### Available tools
225
+
226
+ Here are all the tools can be controlled through the mode config.
227
+
228
+ | Tool | Description |
229
+ | ----------- | ----------------------- |
230
+ | `bash` | Execute shell commands |
231
+ | `edit` | Modify existing files |
232
+ | `write` | Create new files |
233
+ | `read` | Read file contents |
234
+ | `grep` | Search file contents |
235
+ | `glob` | Find files by pattern |
236
+ | `list` | List directory contents |
237
+ | `patch` | Apply patches to files |
238
+ | `todowrite` | Manage todo lists |
239
+ | `todoread` | Read todo lists |
240
+ | `webfetch` | Fetch web content |
241
+
242
+ ---
243
+
244
+ ## Custom modes
245
+
246
+ You can create your own custom modes by adding them to the configuration. Here are examples using both approaches:
247
+
248
+ ### Using JSON configuration
249
+
250
+ ```json title="neocode.json" {4-14}
251
+ {
252
+ "$schema": "https://neo.khulnasoft.com/config.json",
253
+ "mode": {
254
+ "docs": {
255
+ "prompt": "{file:./prompts/documentation.txt}",
256
+ "tools": {
257
+ "write": true,
258
+ "edit": true,
259
+ "bash": false,
260
+ "read": true,
261
+ "grep": true,
262
+ "glob": true
263
+ }
264
+ }
265
+ }
266
+ }
267
+ ```
268
+
269
+ ### Using markdown files
270
+
271
+ Create mode files in `.neocode/modes/` for project-specific modes or `~/.config/neocode/modes/` for global modes:
272
+
273
+ ```markdown title=".neocode/modes/debug.md"
274
+ ---
275
+ temperature: 0.1
276
+ tools:
277
+ bash: true
278
+ read: true
279
+ grep: true
280
+ write: false
281
+ edit: false
282
+ ---
283
+
284
+ You are in debug mode. Your primary goal is to help investigate and diagnose issues.
285
+
286
+ Focus on:
287
+
288
+ - Understanding the problem through careful analysis
289
+ - Using bash commands to inspect system state
290
+ - Reading relevant files and logs
291
+ - Searching for patterns and anomalies
292
+ - Providing clear explanations of findings
293
+
294
+ Do not make any changes to files. Only investigate and report.
295
+ ```
296
+
297
+ ```markdown title="~/.config/neocode/modes/refactor.md"
298
+ ---
299
+ model: anthropic/claude-sonnet-4-20250514
300
+ temperature: 0.2
301
+ tools:
302
+ edit: true
303
+ read: true
304
+ grep: true
305
+ glob: true
306
+ ---
307
+
308
+ You are in refactoring mode. Focus on improving code quality without changing functionality.
309
+
310
+ Priorities:
311
+
312
+ - Improve code readability and maintainability
313
+ - Apply consistent naming conventions
314
+ - Reduce code duplication
315
+ - Optimize performance where appropriate
316
+ - Ensure all tests continue to pass
317
+ ```
318
+
319
+ ---
320
+
321
+ ### Use cases
322
+
323
+ Here are some common use cases for different modes.
324
+
325
+ - **Build mode**: Full development work with all tools enabled
326
+ - **Plan mode**: Analysis and planning without making changes
327
+ - **Review mode**: Code review with read-only access plus documentation tools
328
+ - **Debug mode**: Focused on investigation with bash and read tools enabled
329
+ - **Docs mode**: Documentation writing with file operations but no system commands
330
+
331
+ You might also find different models are good for different use cases.
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: Network
3
+ description: Configure proxies and custom certificates.
4
+ ---
5
+
6
+ NeoCode supports standard proxy environment variables and custom certificates for enterprise network environments.
7
+
8
+ ---
9
+
10
+ ## Proxy
11
+
12
+ NeoCode respects standard proxy environment variables.
13
+
14
+ ```bash
15
+ # HTTPS proxy (recommended)
16
+ export HTTPS_PROXY=https://proxy.example.com:8080
17
+
18
+ # HTTP proxy (if HTTPS not available)
19
+ export HTTP_PROXY=http://proxy.example.com:8080
20
+
21
+ # Bypass proxy for local server (required)
22
+ export NO_PROXY=localhost,127.0.0.1
23
+ ```
24
+
25
+ :::caution
26
+ The TUI communicates with a local HTTP server. You must bypass the proxy for this connection to prevent routing loops.
27
+ :::
28
+
29
+ You can configure the server's port and hostname using [CLI flags](/docs/cli#run).
30
+
31
+ ---
32
+
33
+ ### Authenticate
34
+
35
+ If your proxy requires basic authentication, include credentials in the URL.
36
+
37
+ ```bash
38
+ export HTTPS_PROXY=http://username:password@proxy.example.com:8080
39
+ ```
40
+
41
+ :::caution
42
+ Avoid hardcoding passwords. Use environment variables or secure credential storage.
43
+ :::
44
+
45
+ For proxies requiring advanced authentication like NTLM or Kerberos, consider using an LLM Gateway that supports your authentication method.
46
+
47
+ ---
48
+
49
+ ## Custom certificates
50
+
51
+ If your enterprise uses custom CAs for HTTPS connections, configure NeoCode to trust them.
52
+
53
+ ```bash
54
+ export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem
55
+ ```
56
+
57
+ This works for both proxy connections and direct API access.