novacode 0.2.0 → 0.4.0
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 +15 -34
- package/package.json +2 -3
- package/src/main.ts +11 -9
package/README.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# NovaCode
|
|
2
2
|
|
|
3
|
-
Open-source, multi-provider coding agent.
|
|
3
|
+
Open-source, multi-provider coding agent.
|
|
4
4
|
|
|
5
5
|
> **Currently in early development.**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<img width="1164" height="720" alt="result" src="https://github.com/user-attachments/assets/a456c41a-ec19-4a4d-b3b7-180e6b83acc3" />
|
|
8
8
|
|
|
9
|
+
## Install
|
|
9
10
|
Requires [Bun](https://bun.sh) >= 1.3.
|
|
10
11
|
|
|
11
12
|
```bash
|
|
@@ -22,21 +23,18 @@ You can also run without installing using `bunx novacode`.
|
|
|
22
23
|
|
|
23
24
|
## Quick Start
|
|
24
25
|
|
|
25
|
-
### 1. Launch
|
|
26
|
+
### 1. Launch nova
|
|
26
27
|
|
|
27
28
|
```bash
|
|
28
29
|
nova
|
|
29
30
|
```
|
|
30
31
|
|
|
31
|
-
`novacode` and `nova` are the same command — use whichever you prefer.
|
|
32
|
-
|
|
33
32
|
### 2. First-run setup
|
|
34
33
|
|
|
35
|
-
On first launch,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
3. **Pick a default model** — choose from the provider's available models
|
|
34
|
+
On first launch, nova walks you through a quick setup:
|
|
35
|
+
1. **Pick a provider**
|
|
36
|
+
2. **Enter your API key**
|
|
37
|
+
3. **Pick a default model**
|
|
40
38
|
|
|
41
39
|
That's it. You're ready to go.
|
|
42
40
|
|
|
@@ -57,33 +55,16 @@ nova "explain the auth module in this project"
|
|
|
57
55
|
nova "fix the type error in src/utils.ts"
|
|
58
56
|
```
|
|
59
57
|
|
|
60
|
-
### 4.
|
|
58
|
+
### 4. Flags & commands
|
|
61
59
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
nova
|
|
65
|
-
|
|
66
|
-
nova
|
|
67
|
-
nova --api-key <key> # override API key
|
|
68
|
-
nova -s <session-id> # resume a previous session
|
|
69
|
-
nova session list # list saved sessions
|
|
70
|
-
nova session delete <id> # delete a session
|
|
71
|
-
nova -v # show version
|
|
72
|
-
nova -h # show help
|
|
73
|
-
```
|
|
60
|
+
Available flags: `--provider`, `--model`, `--api-key`, `-s` (resume session)
|
|
61
|
+
|
|
62
|
+
Session commands: `nova session list`, `nova session delete <id>`
|
|
63
|
+
|
|
64
|
+
Run `nova -h` or type `/help` in interactive mode to see everything.
|
|
74
65
|
|
|
75
66
|
### Supported Providers
|
|
76
67
|
|
|
77
68
|
GLM (Z.AI), Gemini (Google), DeepSeek, OpenAI
|
|
78
69
|
|
|
79
|
-
You can set API keys via environment variables or let the onboarding wizard store them in `~/.novacode/auth.json`.
|
|
80
|
-
|
|
81
|
-
## Build from Source
|
|
82
70
|
|
|
83
|
-
```bash
|
|
84
|
-
git clone https://github.com/rwitesh/novacode.git
|
|
85
|
-
cd novacode
|
|
86
|
-
bun install
|
|
87
|
-
bun run dev # run with watch mode
|
|
88
|
-
bun run build # compile to binary
|
|
89
|
-
```
|
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "novacode",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Open-source multi-provider coding agent. Bun-native.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "src/main.ts",
|
|
7
7
|
"bin": {
|
|
8
|
-
"novacode": "src/main.ts",
|
|
9
8
|
"nova": "src/main.ts"
|
|
10
9
|
},
|
|
11
10
|
"files": [
|
|
@@ -20,7 +19,7 @@
|
|
|
20
19
|
"lint:fix": "biome check --write .",
|
|
21
20
|
"format": "biome format --write .",
|
|
22
21
|
"typecheck": "tsc --noEmit",
|
|
23
|
-
"build": "bun build src/main.ts --compile --outfile
|
|
22
|
+
"build": "bun build src/main.ts --compile --outfile nova",
|
|
24
23
|
"check": "bun run typecheck && bun run lint && bun test",
|
|
25
24
|
"prepublishOnly": "bun run check"
|
|
26
25
|
},
|
package/src/main.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
1
2
|
/**
|
|
2
|
-
* Entry point for the
|
|
3
|
+
* Entry point for the nova CLI.
|
|
3
4
|
* Handles configuration, CLI flags, and switches between interactive/print modes.
|
|
4
5
|
*/
|
|
6
|
+
import { join } from "node:path"
|
|
5
7
|
import { parseArgs } from "node:util"
|
|
6
8
|
import { Agent } from "./agent/agent.ts"
|
|
7
9
|
import { buildSystemPrompt } from "./agent/prompt.ts"
|
|
@@ -45,19 +47,19 @@ async function main() {
|
|
|
45
47
|
const { flags, args } = parseCli()
|
|
46
48
|
|
|
47
49
|
if (flags.version) {
|
|
48
|
-
const pkg = await Bun.file("package.json").json()
|
|
49
|
-
console.log(`
|
|
50
|
+
const pkg = await Bun.file(join(import.meta.dir, "..", "package.json")).json()
|
|
51
|
+
console.log(`nova ${pkg.version}`)
|
|
50
52
|
process.exit(0)
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
if (flags.help) {
|
|
54
|
-
console.log(`
|
|
56
|
+
console.log(`nova — open-source coding agent
|
|
55
57
|
|
|
56
58
|
Usage:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
nova Interactive mode
|
|
60
|
+
nova "prompt" Print mode (non-interactive)
|
|
61
|
+
nova session <cmd> Session management (list, delete)
|
|
62
|
+
nova --session <id> Resume a session
|
|
61
63
|
|
|
62
64
|
Options:
|
|
63
65
|
-h, --help Show help
|
|
@@ -103,7 +105,7 @@ Options:
|
|
|
103
105
|
|
|
104
106
|
if (!apiKey) {
|
|
105
107
|
console.error(
|
|
106
|
-
`No API key for ${provider.name}. Set ${provider.envKey} or run
|
|
108
|
+
`No API key for ${provider.name}. Set ${provider.envKey} or run nova for onboarding.`,
|
|
107
109
|
)
|
|
108
110
|
process.exit(1)
|
|
109
111
|
}
|