@vln.codes__/icode 1.1.0 → 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 +28 -55
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
# iCode (packages/icode)
|
|
2
2
|
|
|
3
3
|
**iCode** is a professional terminal-based coding agent built on **OpenCode AI**,
|
|
4
|
-
designed from the beginning for **
|
|
4
|
+
designed from the beginning for **English**-speaking developers.
|
|
5
5
|
|
|
6
|
-
- **
|
|
7
|
-
- **EjoChat** as
|
|
6
|
+
- **English-first** developer experience (UI, prompts, explanations).
|
|
7
|
+
- **EjoChat** as an optional language-intelligence service.
|
|
8
8
|
- **OpenCode** remains the coding engine (files, terminal, Git, tools, commands).
|
|
9
9
|
- Streams output, slash commands, semantic colors with ASCII/monochrome fallback.
|
|
10
10
|
|
|
11
|
-
> iCode
|
|
12
|
-
>
|
|
13
|
-
> code, syntax, identifiers, paths, and commands unchanged.
|
|
11
|
+
> iCode keeps every technical identifier, file path, command, URL, and code
|
|
12
|
+
> snippet exactly as the user wrote them, while explaining in English.
|
|
14
13
|
|
|
15
14
|
---
|
|
16
15
|
|
|
@@ -43,8 +42,7 @@ icode --help
|
|
|
43
42
|
| macOS (Darwin) | x64, arm64 |
|
|
44
43
|
| Windows | x64, arm64 |
|
|
45
44
|
|
|
46
|
-
On first run you'll be asked to connect an AI provider (`icode providers`)
|
|
47
|
-
and, optionally, set an EjoChat API key for Kinyarwanda language intelligence.
|
|
45
|
+
On first run you'll be asked to connect an AI provider (`icode providers`).
|
|
48
46
|
|
|
49
47
|
---
|
|
50
48
|
|
|
@@ -53,8 +51,6 @@ and, optionally, set an EjoChat API key for Kinyarwanda language intelligence.
|
|
|
53
51
|
```
|
|
54
52
|
src/
|
|
55
53
|
cli/ renderer, prompt, spinner, theme, terminal, slashes, danger, shell
|
|
56
|
-
language/ kinyarwanda (dictionaries), detector, token-protector,
|
|
57
|
-
ejochat (Anthropic-compatible client), kinyarwanda-service
|
|
58
54
|
agent/ opencode (OpenCode SDK driver), context (project info)
|
|
59
55
|
config/ load ~/.config/icode/config.* + env
|
|
60
56
|
security/ secret detection & redaction
|
|
@@ -65,21 +61,12 @@ src/
|
|
|
65
61
|
|
|
66
62
|
```
|
|
67
63
|
USER INPUT
|
|
68
|
-
-> language detection
|
|
69
|
-
-> Kinyarwanda understanding (EjoChat)
|
|
70
|
-
-> intent extraction
|
|
71
64
|
-> OpenCode agent (code/tools)
|
|
72
65
|
-> tool execution
|
|
73
66
|
-> technical result
|
|
74
|
-
-> EjoChat Kinyarwanda explanation
|
|
75
67
|
-> CLI renderer
|
|
76
68
|
```
|
|
77
69
|
|
|
78
|
-
**The rule that matters:** EjoChat is the *language-intelligence* layer only. It
|
|
79
|
-
never runs coding tools. OpenCode owns the coding engine. Every string sent to
|
|
80
|
-
EjoChat passes through token protection and secret redaction, so technical
|
|
81
|
-
tokens are never corrupted and secrets are never exposed.
|
|
82
|
-
|
|
83
70
|
---
|
|
84
71
|
|
|
85
72
|
## Setup
|
|
@@ -90,29 +77,23 @@ Requires [Bun](https://bun.sh) and the workspace-installed dependencies:
|
|
|
90
77
|
bun install
|
|
91
78
|
```
|
|
92
79
|
|
|
93
|
-
Provide the EjoChat key (never hard-coded, never committed):
|
|
94
|
-
|
|
95
|
-
```sh
|
|
96
|
-
export EJOCHAT_API_KEY=ejochat_your_key_here
|
|
97
|
-
```
|
|
98
|
-
|
|
99
80
|
Optional config in `~/.config/icode/config.{json,jsonc,toml,yaml}` — see
|
|
100
81
|
`examples/`. All values are overridable via environment variables:
|
|
101
82
|
|
|
102
83
|
| Variable | Purpose |
|
|
103
84
|
| --------------------- | ------------------------------------------ |
|
|
104
|
-
| `EJOCHAT_API_KEY` |
|
|
85
|
+
| `EJOCHAT_API_KEY` | Optional, enables EjoChat summaries |
|
|
105
86
|
| `EJOCHAT_BASE_URL` | Default `https://api.ejolabs.com/api/v1` |
|
|
106
87
|
| `EJOCHAT_MODEL` | EjoChat model |
|
|
107
88
|
| `EJOCHAT_DISABLED` | `1` to disable EjoChat entirely |
|
|
108
|
-
| `ICODE_LANGUAGE` | `
|
|
89
|
+
| `ICODE_LANGUAGE` | `en` (default and only option) |
|
|
109
90
|
| `ICODE_DEBUG` | `1` to surface technical errors |
|
|
110
91
|
| `ICODE_ASCII` | `1` to force ASCII-only glyphs |
|
|
111
92
|
| `ICODE_NO_COLOR` | `1` to disable color |
|
|
112
93
|
|
|
113
94
|
### EjoChat API contract
|
|
114
95
|
|
|
115
|
-
This package
|
|
96
|
+
This package can optionally integrate with the official **EjoChat** API (by Ejo Labs):
|
|
116
97
|
|
|
117
98
|
- Endpoint: `POST https://api.ejolabs.com/api/v1/subiza` (configurable via
|
|
118
99
|
`EJOCHAT_BASE_URL`; the `/subiza` path is appended automatically).
|
|
@@ -135,36 +116,34 @@ bun run bin/icode.ts
|
|
|
135
116
|
Interactive prompt:
|
|
136
117
|
|
|
137
118
|
```
|
|
138
|
-
⚡ iCode >
|
|
119
|
+
⚡ iCode > explain this file
|
|
139
120
|
```
|
|
140
121
|
|
|
141
122
|
Single-shot mode:
|
|
142
123
|
|
|
143
124
|
```sh
|
|
144
|
-
bun run bin/icode.ts "
|
|
125
|
+
bun run bin/icode.ts "Fix the bug in this code."
|
|
145
126
|
```
|
|
146
127
|
|
|
147
|
-
### Slash commands
|
|
128
|
+
### Slash commands
|
|
148
129
|
|
|
149
|
-
| Command | Meaning
|
|
150
|
-
| ------------------- |
|
|
151
|
-
| `/help` |
|
|
152
|
-
| `/status` |
|
|
153
|
-
| `/model` |
|
|
154
|
-
| `/language
|
|
155
|
-
| `/config` |
|
|
156
|
-
| `/clear` |
|
|
157
|
-
| `/exit` |
|
|
158
|
-
| `/version` |
|
|
130
|
+
| Command | Meaning |
|
|
131
|
+
| ------------------- | ------------------------------------ |
|
|
132
|
+
| `/help` | Show all iCode commands. |
|
|
133
|
+
| `/status` | Show the status of the project. |
|
|
134
|
+
| `/model` | Show the model in use. |
|
|
135
|
+
| `/language en` | Set the interface language. |
|
|
136
|
+
| `/config` | Show where iCode stores its config. |
|
|
137
|
+
| `/clear` | Clear the terminal. |
|
|
138
|
+
| `/exit` | Exit iCode. |
|
|
139
|
+
| `/version` | Show the iCode version. |
|
|
159
140
|
|
|
160
141
|
---
|
|
161
142
|
|
|
162
|
-
## Language
|
|
143
|
+
## Language mode
|
|
163
144
|
|
|
164
|
-
- **`
|
|
165
|
-
|
|
166
|
-
- **`auto`**: detects whether the input is Kinyarwanda.
|
|
167
|
-
- **`en`**: English UI/explanations.
|
|
145
|
+
- **`en`** (default and only option): English UI/explanations. Code, syntax,
|
|
146
|
+
commands, and technical identifiers are never translated.
|
|
168
147
|
|
|
169
148
|
## Security
|
|
170
149
|
|
|
@@ -175,12 +154,6 @@ bun run bin/icode.ts "Kosora ikibazo kiri muri iyi code."
|
|
|
175
154
|
- If `EJOCHAT_API_KEY` is missing, iCode prints a warning and continues as a
|
|
176
155
|
normal coding agent — it never crashes (spec section 4).
|
|
177
156
|
|
|
178
|
-
## Technical token protection
|
|
179
|
-
|
|
180
|
-
`language/token-protector.ts` protects file paths, URLs, code blocks, inline
|
|
181
|
-
code, commands, env vars, and identifiers before Kinyarwanda processing, then
|
|
182
|
-
restores them — so language processing can never corrupt code or paths.
|
|
183
|
-
|
|
184
157
|
## Testing
|
|
185
158
|
|
|
186
159
|
```sh
|
|
@@ -200,7 +173,7 @@ bun typecheck # tsgo
|
|
|
200
173
|
assemble the npm packages with `bun run script/package.ts --version=<ver>`
|
|
201
174
|
from this directory.
|
|
202
175
|
- The repo also keeps a self-contained TypeScript reference implementation under
|
|
203
|
-
`src/` (
|
|
176
|
+
`src/` (English CLI built on OpenCode), used for development and tests.
|
|
204
177
|
The shipped product is the native binary, not this source.
|
|
205
178
|
|
|
206
179
|
## Credits
|
|
@@ -209,5 +182,5 @@ bun typecheck # tsgo
|
|
|
209
182
|
- The coding engine and underlying coding workflows are built on the
|
|
210
183
|
**OpenCode** engine (MIT, © 2025 opencode). iCode is not affiliated with the
|
|
211
184
|
OpenCode team. See the repository LICENSE (root and `packages/opencode`).
|
|
212
|
-
- **EjoChat** (by Ejo Labs) is used only as
|
|
213
|
-
layer and never runs coding tools.
|
|
185
|
+
- **EjoChat** (by Ejo Labs) is used only as an optional language-intelligence
|
|
186
|
+
layer and never runs coding tools.
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@vln.codes__/icode",
|
|
4
|
-
"version": "1.1.
|
|
5
|
-
"description": "iCode — a fast, native AI coding agent
|
|
4
|
+
"version": "1.1.1",
|
|
5
|
+
"description": "iCode — a fast, native AI coding agent. Install globally to run `icode`.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"bin": {
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"package": "bun run script/package.ts --version=$npm_package_version"
|
|
19
19
|
},
|
|
20
20
|
"optionalDependencies": {
|
|
21
|
-
"@vln.codes__/icode-linux-x64": "1.1.
|
|
22
|
-
"@vln.codes__/icode-linux-arm64": "1.1.
|
|
23
|
-
"@vln.codes__/icode-darwin-x64": "1.1.
|
|
24
|
-
"@vln.codes__/icode-darwin-arm64": "1.1.
|
|
25
|
-
"@vln.codes__/icode-windows-x64": "1.1.
|
|
26
|
-
"@vln.codes__/icode-windows-arm64": "1.1.
|
|
21
|
+
"@vln.codes__/icode-linux-x64": "1.1.1",
|
|
22
|
+
"@vln.codes__/icode-linux-arm64": "1.1.1",
|
|
23
|
+
"@vln.codes__/icode-darwin-x64": "1.1.1",
|
|
24
|
+
"@vln.codes__/icode-darwin-arm64": "1.1.1",
|
|
25
|
+
"@vln.codes__/icode-windows-x64": "1.1.1",
|
|
26
|
+
"@vln.codes__/icode-windows-arm64": "1.1.1"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@opencode-ai/script": "workspace:*",
|