@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,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web
|
|
3
|
+
description: Using NeoCode in your browser.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
NeoCode can run as a web application in your browser, providing the same powerful AI coding experience without needing a terminal.
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
## Getting Started
|
|
11
|
+
|
|
12
|
+
Start the web interface by running:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
neocode web
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
This starts a local server on `127.0.0.1` with a random available port and automatically opens NeoCode in your default browser.
|
|
19
|
+
|
|
20
|
+
:::caution
|
|
21
|
+
If `NEOCODE_SERVER_PASSWORD` is not set, the server will be unsecured. This is fine for local use but should be set for network access.
|
|
22
|
+
:::
|
|
23
|
+
|
|
24
|
+
:::tip[Windows Users]
|
|
25
|
+
For the best experience, run `neocode web` from [WSL](/docs/windows-wsl) rather than PowerShell. This ensures proper file system access and terminal integration.
|
|
26
|
+
:::
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Configuration
|
|
31
|
+
|
|
32
|
+
You can configure the web server using command line flags or in your [config file](/docs/config).
|
|
33
|
+
|
|
34
|
+
### Port
|
|
35
|
+
|
|
36
|
+
By default, NeoCode picks an available port. You can specify a port:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
neocode web --port 4096
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Hostname
|
|
43
|
+
|
|
44
|
+
By default, the server binds to `127.0.0.1` (localhost only). To make NeoCode accessible on your network:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
neocode web --hostname 0.0.0.0
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
When using `0.0.0.0`, NeoCode will display both local and network addresses:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Local access: http://localhost:4096
|
|
54
|
+
Network access: http://192.168.1.100:4096
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### mDNS Discovery
|
|
58
|
+
|
|
59
|
+
Enable mDNS to make your server discoverable on the local network:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
neocode web --mdns
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
This automatically sets the hostname to `0.0.0.0` and advertises the server as `neocode.local`.
|
|
66
|
+
|
|
67
|
+
### CORS
|
|
68
|
+
|
|
69
|
+
To allow additional domains for CORS (useful for custom frontends):
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
neocode web --cors https://example.com
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Authentication
|
|
76
|
+
|
|
77
|
+
To protect access, set a password using the `NEOCODE_SERVER_PASSWORD` environment variable:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
NEOCODE_SERVER_PASSWORD=secret neocode web
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The username defaults to `neocode` but can be changed with `NEOCODE_SERVER_USERNAME`.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Using the Web Interface
|
|
88
|
+
|
|
89
|
+
Once started, the web interface provides access to your NeoCode sessions.
|
|
90
|
+
|
|
91
|
+
### Sessions
|
|
92
|
+
|
|
93
|
+
View and manage your sessions from the homepage. You can see active sessions and start new ones.
|
|
94
|
+
|
|
95
|
+

|
|
96
|
+
|
|
97
|
+
### Server Status
|
|
98
|
+
|
|
99
|
+
Click "See Servers" to view connected servers and their status.
|
|
100
|
+
|
|
101
|
+

|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Attaching a Terminal
|
|
106
|
+
|
|
107
|
+
You can attach a terminal TUI to a running web server:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Start the web server
|
|
111
|
+
neocode web --port 4096
|
|
112
|
+
|
|
113
|
+
# In another terminal, attach the TUI
|
|
114
|
+
neocode attach http://localhost:4096
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
This allows you to use both the web interface and terminal simultaneously, sharing the same sessions and state.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Config File
|
|
122
|
+
|
|
123
|
+
You can also configure server settings in your `neocode.json` config file:
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"server": {
|
|
128
|
+
"port": 4096,
|
|
129
|
+
"hostname": "0.0.0.0",
|
|
130
|
+
"mdns": true,
|
|
131
|
+
"cors": ["https://example.com"]
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Command line flags take precedence over config file settings.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Windows (WSL)
|
|
3
|
+
description: Run NeoCode on Windows using WSL for the best experience.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Steps } from "@astrojs/starlight/components"
|
|
7
|
+
|
|
8
|
+
While NeoCode can run directly on Windows, we recommend using [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) for the best experience. WSL provides a Linux environment that works seamlessly with NeoCode's features.
|
|
9
|
+
|
|
10
|
+
:::tip[Why WSL?]
|
|
11
|
+
WSL offers better file system performance, full terminal support, and compatibility with development tools that NeoCode relies on.
|
|
12
|
+
:::
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Setup
|
|
17
|
+
|
|
18
|
+
<Steps>
|
|
19
|
+
|
|
20
|
+
1. **Install WSL**
|
|
21
|
+
|
|
22
|
+
If you haven't already, [install WSL](https://learn.microsoft.com/en-us/windows/wsl/install) using the official Microsoft guide.
|
|
23
|
+
|
|
24
|
+
2. **Install NeoCode in WSL**
|
|
25
|
+
|
|
26
|
+
Once WSL is set up, open your WSL terminal and install NeoCode using one of the [installation methods](/docs/).
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
curl -fsSL https://raw.githubusercontent.com/neopilot-ai/neocode/refs/heads/dev/install | bash
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
3. **Use NeoCode from WSL**
|
|
33
|
+
|
|
34
|
+
Navigate to your project directory (access Windows files via `/mnt/c/`, `/mnt/d/`, etc.) and run NeoCode.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
cd /mnt/c/Users/YourName/project
|
|
38
|
+
neocode
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
</Steps>
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Desktop App + WSL Server
|
|
46
|
+
|
|
47
|
+
If you prefer using the NeoCode Desktop app but want to run the server in WSL:
|
|
48
|
+
|
|
49
|
+
1. **Start the server in WSL** with `--hostname 0.0.0.0` to allow external connections:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
neocode serve --hostname 0.0.0.0 --port 4096
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
2. **Connect the Desktop app** to `http://localhost:4096`
|
|
56
|
+
|
|
57
|
+
:::note
|
|
58
|
+
If `localhost` does not work in your setup, connect using the WSL IP address instead (from WSL: `hostname -I`) and use `http://<wsl-ip>:4096`.
|
|
59
|
+
:::
|
|
60
|
+
|
|
61
|
+
:::caution
|
|
62
|
+
When using `--hostname 0.0.0.0`, set `NEOCODE_SERVER_PASSWORD` to secure the server.
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
NEOCODE_SERVER_PASSWORD=your-password neocode serve --hostname 0.0.0.0
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
:::
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Web Client + WSL
|
|
73
|
+
|
|
74
|
+
For the best web experience on Windows:
|
|
75
|
+
|
|
76
|
+
1. **Run `neocode web` in the WSL terminal** rather than PowerShell:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
neocode web --hostname 0.0.0.0
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
2. **Access from your Windows browser** at `http://localhost:<port>` (NeoCode prints the URL)
|
|
83
|
+
|
|
84
|
+
Running `neocode web` from WSL ensures proper file system access and terminal integration while still being accessible from your Windows browser.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Accessing Windows Files
|
|
89
|
+
|
|
90
|
+
WSL can access all your Windows files through the `/mnt/` directory:
|
|
91
|
+
|
|
92
|
+
- `C:` drive → `/mnt/c/`
|
|
93
|
+
- `D:` drive → `/mnt/d/`
|
|
94
|
+
- And so on...
|
|
95
|
+
|
|
96
|
+
Example:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
cd /mnt/c/Users/YourName/Documents/project
|
|
100
|
+
neocode
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
:::tip
|
|
104
|
+
For the smoothest experience, consider cloning/copying your repo into the WSL filesystem (for example under `~/code/`) and running NeoCode there.
|
|
105
|
+
:::
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Tips
|
|
110
|
+
|
|
111
|
+
- Keep NeoCode running in WSL for projects stored on Windows drives - file access is seamless
|
|
112
|
+
- Use VS Code's [WSL extension](https://code.visualstudio.com/docs/remote/wsl) alongside NeoCode for an integrated development workflow
|
|
113
|
+
- Your NeoCode config and sessions are stored within the WSL environment at `~/.local/share/neocode/`
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Zen
|
|
3
|
+
description: Curated list of models provided by NeoCode.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import config from "../../../config.mjs"
|
|
7
|
+
export const console = config.console
|
|
8
|
+
export const email = `mailto:${config.email}`
|
|
9
|
+
|
|
10
|
+
NeoCode Zen is a list of tested and verified models provided by the NeoCode team.
|
|
11
|
+
|
|
12
|
+
:::note
|
|
13
|
+
NeoCode Zen is currently in beta.
|
|
14
|
+
:::
|
|
15
|
+
|
|
16
|
+
Zen works like any other provider in NeoCode. You login to NeoCode Zen and get
|
|
17
|
+
your API key. It's **completely optional** and you don't need to use it to use
|
|
18
|
+
NeoCode.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Background
|
|
23
|
+
|
|
24
|
+
There are a large number of models out there but only a few of
|
|
25
|
+
these models work well as coding agents. Additionally, most providers are
|
|
26
|
+
configured very differently; so you get very different performance and quality.
|
|
27
|
+
|
|
28
|
+
:::tip
|
|
29
|
+
We tested a select group of models and providers that work well with NeoCode.
|
|
30
|
+
:::
|
|
31
|
+
|
|
32
|
+
So if you are using a model through something like OpenRouter, you can never be
|
|
33
|
+
sure if you are getting the best version of the model you want.
|
|
34
|
+
|
|
35
|
+
To fix this, we did a couple of things:
|
|
36
|
+
|
|
37
|
+
1. We tested a select group of models and talked to their teams about how to
|
|
38
|
+
best run them.
|
|
39
|
+
2. We then worked with a few providers to make sure these were being served
|
|
40
|
+
correctly.
|
|
41
|
+
3. Finally, we benchmarked the combination of the model/provider and came up
|
|
42
|
+
with a list that we feel good recommending.
|
|
43
|
+
|
|
44
|
+
NeoCode Zen is an AI gateway that gives you access to these models.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## How it works
|
|
49
|
+
|
|
50
|
+
NeoCode Zen works like any other provider in NeoCode.
|
|
51
|
+
|
|
52
|
+
1. You sign in to **<a href={console}>NeoCode Zen</a>**, add your billing
|
|
53
|
+
details, and copy your API key.
|
|
54
|
+
2. You run the `/connect` command in the TUI, select NeoCode Zen, and paste your API key.
|
|
55
|
+
3. Run `/models` in the TUI to see the list of models we recommend.
|
|
56
|
+
|
|
57
|
+
You are charged per request and you can add credits to your account.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Endpoints
|
|
62
|
+
|
|
63
|
+
You can also access our models through the following API endpoints.
|
|
64
|
+
|
|
65
|
+
| Model | Model ID | Endpoint | AI SDK Package |
|
|
66
|
+
| ------------------ | ------------------ | --------------------------------------------------------- | --------------------------- |
|
|
67
|
+
| GPT 5.2 | gpt-5.2 | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
68
|
+
| GPT 5.2 Codex | gpt-5.2-codex | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
69
|
+
| GPT 5.1 | gpt-5.1 | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
70
|
+
| GPT 5.1 Codex | gpt-5.1-codex | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
71
|
+
| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
72
|
+
| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
73
|
+
| GPT 5 | gpt-5 | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
74
|
+
| GPT 5 Codex | gpt-5-codex | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
75
|
+
| GPT 5 Nano | gpt-5-nano | `https://neo.khulnasoft.com/zen/v1/responses` | `@ai-sdk/openai` |
|
|
76
|
+
| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://neo.khulnasoft.com/zen/v1/messages` | `@ai-sdk/anthropic` |
|
|
77
|
+
| Claude Sonnet 4 | claude-sonnet-4 | `https://neo.khulnasoft.com/zen/v1/messages` | `@ai-sdk/anthropic` |
|
|
78
|
+
| Claude Haiku 4.5 | claude-haiku-4-5 | `https://neo.khulnasoft.com/zen/v1/messages` | `@ai-sdk/anthropic` |
|
|
79
|
+
| Claude Haiku 3.5 | claude-3-5-haiku | `https://neo.khulnasoft.com/zen/v1/messages` | `@ai-sdk/anthropic` |
|
|
80
|
+
| Claude Opus 4.5 | claude-opus-4-5 | `https://neo.khulnasoft.com/zen/v1/messages` | `@ai-sdk/anthropic` |
|
|
81
|
+
| Claude Opus 4.1 | claude-opus-4-1 | `https://neo.khulnasoft.com/zen/v1/messages` | `@ai-sdk/anthropic` |
|
|
82
|
+
| Gemini 3 Pro | gemini-3-pro | `https://neo.khulnasoft.com/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
|
|
83
|
+
| Gemini 3 Flash | gemini-3-flash | `https://neo.khulnasoft.com/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
|
|
84
|
+
| MiniMax M2.1 | minimax-m2.1 | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
85
|
+
| MiniMax M2.1 Free | minimax-m2.1-free | `https://neo.khulnasoft.com/zen/v1/messages` | `@ai-sdk/anthropic` |
|
|
86
|
+
| GLM 4.7 | glm-4.7 | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
87
|
+
| GLM 4.7 Free | glm-4.7-free | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
88
|
+
| GLM 4.6 | glm-4.6 | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
89
|
+
| Kimi K2.5 | kimi-k2.5 | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
90
|
+
| Kimi K2.5 Free | kimi-k2.5-free | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
91
|
+
| Kimi K2 Thinking | kimi-k2-thinking | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
92
|
+
| Kimi K2 | kimi-k2 | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
93
|
+
| Qwen3 Coder 480B | qwen3-coder | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
94
|
+
| Big Pickle | big-pickle | `https://neo.khulnasoft.com/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
|
95
|
+
|
|
96
|
+
The [model id](/docs/config/#models) in your NeoCode config
|
|
97
|
+
uses the format `neocode/<model-id>`. For example, for GPT 5.2 Codex, you would
|
|
98
|
+
use `neocode/gpt-5.2-codex` in your config.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Models
|
|
103
|
+
|
|
104
|
+
You can fetch the full list of available models and their metadata from:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
https://neo.khulnasoft.com/zen/v1/models
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Pricing
|
|
113
|
+
|
|
114
|
+
We support a pay-as-you-go model. Below are the prices **per 1M tokens**.
|
|
115
|
+
|
|
116
|
+
| Model | Input | Output | Cached Read | Cached Write |
|
|
117
|
+
| --------------------------------- | ------ | ------ | ----------- | ------------ |
|
|
118
|
+
| Big Pickle | Free | Free | Free | - |
|
|
119
|
+
| MiniMax M2.1 Free | Free | Free | Free | - |
|
|
120
|
+
| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - |
|
|
121
|
+
| GLM 4.7 Free | Free | Free | Free | - |
|
|
122
|
+
| GLM 4.7 | $0.60 | $2.20 | $0.10 | - |
|
|
123
|
+
| GLM 4.6 | $0.60 | $2.20 | $0.10 | - |
|
|
124
|
+
| Kimi K2.5 Free | Free | Free | Free | - |
|
|
125
|
+
| Kimi K2.5 | $0.60 | $3.00 | $0.08 | - |
|
|
126
|
+
| Kimi K2 Thinking | $0.40 | $2.50 | - | - |
|
|
127
|
+
| Kimi K2 | $0.40 | $2.50 | - | - |
|
|
128
|
+
| Qwen3 Coder 480B | $0.45 | $1.50 | - | - |
|
|
129
|
+
| Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
|
|
130
|
+
| Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
|
|
131
|
+
| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
|
|
132
|
+
| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
|
|
133
|
+
| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 |
|
|
134
|
+
| Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 |
|
|
135
|
+
| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 |
|
|
136
|
+
| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 |
|
|
137
|
+
| Gemini 3 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
|
|
138
|
+
| Gemini 3 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
|
|
139
|
+
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
|
|
140
|
+
| GPT 5.2 | $1.75 | $14.00 | $0.175 | - |
|
|
141
|
+
| GPT 5.2 Codex | $1.75 | $14.00 | $0.175 | - |
|
|
142
|
+
| GPT 5.1 | $1.07 | $8.50 | $0.107 | - |
|
|
143
|
+
| GPT 5.1 Codex | $1.07 | $8.50 | $0.107 | - |
|
|
144
|
+
| GPT 5.1 Codex Max | $1.25 | $10.00 | $0.125 | - |
|
|
145
|
+
| GPT 5.1 Codex Mini | $0.25 | $2.00 | $0.025 | - |
|
|
146
|
+
| GPT 5 | $1.07 | $8.50 | $0.107 | - |
|
|
147
|
+
| GPT 5 Codex | $1.07 | $8.50 | $0.107 | - |
|
|
148
|
+
| GPT 5 Nano | Free | Free | Free | - |
|
|
149
|
+
|
|
150
|
+
You might notice _Claude Haiku 3.5_ in your usage history. This is a [low cost model](/docs/config/#models) that's used to generate the titles of your sessions.
|
|
151
|
+
|
|
152
|
+
:::note
|
|
153
|
+
Credit card fees are passed along at cost (4.4% + $0.30 per transaction); we don't charge anything beyond that.
|
|
154
|
+
:::
|
|
155
|
+
|
|
156
|
+
The free models:
|
|
157
|
+
|
|
158
|
+
- GLM 4.7 Free is available on NeoCode for a limited time. The team is using this time to collect feedback and improve the model.
|
|
159
|
+
- Kimi K2.5 Free is available on NeoCode for a limited time. The team is using this time to collect feedback and improve the model.
|
|
160
|
+
- MiniMax M2.1 Free is available on NeoCode for a limited time. The team is using this time to collect feedback and improve the model.
|
|
161
|
+
- Big Pickle is a stealth model that's free on NeoCode for a limited time. The team is using this time to collect feedback and improve the model.
|
|
162
|
+
|
|
163
|
+
<a href={email}>Contact us</a> if you have any questions.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### Auto-reload
|
|
168
|
+
|
|
169
|
+
If your balance goes below $5, Zen will automatically reload $20.
|
|
170
|
+
|
|
171
|
+
You can change the auto-reload amount. You can also disable auto-reload entirely.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
### Monthly limits
|
|
176
|
+
|
|
177
|
+
You can also set a monthly usage limit for the entire workspace and for each
|
|
178
|
+
member of your team.
|
|
179
|
+
|
|
180
|
+
For example, let's say you set a monthly usage limit to $20, Zen will not use
|
|
181
|
+
more than $20 in a month. But if you have auto-reload enabled, Zen might end up
|
|
182
|
+
charging you more than $20 if your balance goes below $5.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Privacy
|
|
187
|
+
|
|
188
|
+
All our models are hosted in the US. Our providers follow a zero-retention policy and do not use your data for model training, with the following exceptions:
|
|
189
|
+
|
|
190
|
+
- Big Pickle: During its free period, collected data may be used to improve the model.
|
|
191
|
+
- GLM 4.7 Free: During its free period, collected data may be used to improve the model.
|
|
192
|
+
- Kimi K2.5 Free: During its free period, collected data may be used to improve the model.
|
|
193
|
+
- MiniMax M2.1 Free: During its free period, collected data may be used to improve the model.
|
|
194
|
+
- OpenAI APIs: Requests are retained for 30 days in accordance with [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data).
|
|
195
|
+
- Anthropic APIs: Requests are retained for 30 days in accordance with [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage).
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## For Teams
|
|
200
|
+
|
|
201
|
+
Zen also works great for teams. You can invite teammates, assign roles, curate
|
|
202
|
+
the models your team uses, and more.
|
|
203
|
+
|
|
204
|
+
:::note
|
|
205
|
+
Workspaces are currently free for teams as a part of the beta.
|
|
206
|
+
:::
|
|
207
|
+
|
|
208
|
+
Managing your workspace is currently free for teams as a part of the beta. We'll be
|
|
209
|
+
sharing more details on the pricing soon.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
### Roles
|
|
214
|
+
|
|
215
|
+
You can invite teammates to your workspace and assign roles:
|
|
216
|
+
|
|
217
|
+
- **Admin**: Manage models, members, API keys, and billing
|
|
218
|
+
- **Member**: Manage only their own API keys
|
|
219
|
+
|
|
220
|
+
Admins can also set monthly spending limits for each member to keep costs under control.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
### Model access
|
|
225
|
+
|
|
226
|
+
Admins can enable or disable specific models for the workspace. Requests made to a disabled model will return an error.
|
|
227
|
+
|
|
228
|
+
This is useful for cases where you want to disable the use of a model that
|
|
229
|
+
collects data.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
### Bring your own key
|
|
234
|
+
|
|
235
|
+
You can use your own OpenAI or Anthropic API keys while still accessing other models in Zen.
|
|
236
|
+
|
|
237
|
+
When you use your own keys, tokens are billed directly by the provider, not by Zen.
|
|
238
|
+
|
|
239
|
+
For example, your organization might already have a key for OpenAI or Anthropic
|
|
240
|
+
and you want to use that instead of the one that Zen provides.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Goals
|
|
245
|
+
|
|
246
|
+
We created NeoCode Zen to:
|
|
247
|
+
|
|
248
|
+
1. **Benchmark** the best models/providers for coding agents.
|
|
249
|
+
2. Have access to the **highest quality** options and not downgrade performance or route to cheaper providers.
|
|
250
|
+
3. Pass along any **price drops** by selling at cost; so the only markup is to cover our processing fees.
|
|
251
|
+
4. Have **no lock-in** by allowing you to use it with any other coding agent. And always let you use any other provider with NeoCode as well.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { defineCollection } from "astro:content"
|
|
2
|
+
import { docsLoader } from "@astrojs/starlight/loaders"
|
|
3
|
+
import { docsSchema } from "@astrojs/starlight/schema"
|
|
4
|
+
|
|
5
|
+
export const collections = {
|
|
6
|
+
docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }),
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { APIRoute } from "astro"
|
|
2
|
+
import { getCollection } from "astro:content"
|
|
3
|
+
|
|
4
|
+
export const GET: APIRoute = async ({ params }) => {
|
|
5
|
+
const slug = params.slug || "index"
|
|
6
|
+
const docs = await getCollection("docs")
|
|
7
|
+
const doc = docs.find((d) => d.id === slug)
|
|
8
|
+
|
|
9
|
+
if (!doc) {
|
|
10
|
+
return new Response("Not found", { status: 404 })
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return new Response(doc.body, {
|
|
14
|
+
headers: {
|
|
15
|
+
"Content-Type": "text/plain; charset=utf-8",
|
|
16
|
+
},
|
|
17
|
+
})
|
|
18
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Base64 } from "js-base64";
|
|
3
|
+
|
|
4
|
+
import config from '../../../config.mjs'
|
|
5
|
+
import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
|
|
6
|
+
import Share from "../../components/Share.tsx";
|
|
7
|
+
|
|
8
|
+
const apiUrl = import.meta.env.VITE_API_URL;
|
|
9
|
+
|
|
10
|
+
const { id } = Astro.params;
|
|
11
|
+
const res = await fetch(`${apiUrl}/share_data?id=${id}`);
|
|
12
|
+
const data = await res.json();
|
|
13
|
+
|
|
14
|
+
if (!data.info) {
|
|
15
|
+
return new Response(null, {
|
|
16
|
+
status: 404,
|
|
17
|
+
statusText: 'Not found'
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const models: Set<string> = new Set();
|
|
22
|
+
const version = data.info.version ? `v${data.info.version}` : "v0.0.1";
|
|
23
|
+
|
|
24
|
+
Object.values(data.messages).forEach((d) => {
|
|
25
|
+
if (d.role === "assistant" && d.modelID) {
|
|
26
|
+
models.add(d.modelID);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const encodedTitle = encodeURIComponent(
|
|
31
|
+
Base64.encode(
|
|
32
|
+
// Convert to ASCII
|
|
33
|
+
encodeURIComponent(
|
|
34
|
+
// Truncate to fit S3's max key size
|
|
35
|
+
data.info.title.substring(0, 700),
|
|
36
|
+
)
|
|
37
|
+
)
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
const modelsArray = Array.from(models);
|
|
41
|
+
let modelParam;
|
|
42
|
+
if (modelsArray.length === 1) {
|
|
43
|
+
modelParam = modelsArray[0];
|
|
44
|
+
}
|
|
45
|
+
else if (modelsArray.length === 2) {
|
|
46
|
+
modelParam = encodeURIComponent(`${modelsArray[0]} & ${modelsArray[1]}`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
modelParam = encodeURIComponent(`${modelsArray[0]} & ${modelsArray.length - 1} others`);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const ogImage = `${config.socialCard}/neocode-share/${encodedTitle}.png?model=${modelParam}&version=${version}&id=${id}`;
|
|
53
|
+
---
|
|
54
|
+
<StarlightPage
|
|
55
|
+
hasSidebar={false}
|
|
56
|
+
frontmatter={{
|
|
57
|
+
title: data.info.title,
|
|
58
|
+
pagefind: false,
|
|
59
|
+
template: "splash",
|
|
60
|
+
tableOfContents: false,
|
|
61
|
+
head: [
|
|
62
|
+
{
|
|
63
|
+
tag: "meta",
|
|
64
|
+
attrs: {
|
|
65
|
+
name: "description",
|
|
66
|
+
content: "neocode - The AI coding agent built for the terminal.",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
tag: "meta",
|
|
71
|
+
attrs: {
|
|
72
|
+
name: "robots",
|
|
73
|
+
content: "noindex, nofollow, noarchive, nosnippet",
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
tag: "meta",
|
|
78
|
+
attrs: {
|
|
79
|
+
property: "og:image",
|
|
80
|
+
content: ogImage,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
tag: "meta",
|
|
85
|
+
attrs: {
|
|
86
|
+
name: "twitter:image",
|
|
87
|
+
content: ogImage,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
}}
|
|
92
|
+
>
|
|
93
|
+
<Share
|
|
94
|
+
id={id}
|
|
95
|
+
api={apiUrl}
|
|
96
|
+
info={data.info}
|
|
97
|
+
messages={data.messages}
|
|
98
|
+
client:only="solid"
|
|
99
|
+
/>
|
|
100
|
+
</StarlightPage>
|
|
101
|
+
|
|
102
|
+
<style is:global>
|
|
103
|
+
body > .page > .main-frame .main-pane > main > .content-panel:first-of-type {
|
|
104
|
+
display: none;
|
|
105
|
+
}
|
|
106
|
+
body > .page > .main-frame .main-pane > main {
|
|
107
|
+
padding: 0;
|
|
108
|
+
}
|
|
109
|
+
body > .page > .main-frame .main-pane > main > .content-panel + .content-panel {
|
|
110
|
+
border-top: none !important;
|
|
111
|
+
padding: 0;
|
|
112
|
+
}
|
|
113
|
+
</style>
|