ironcode-ai 1.19.2 → 1.20.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.
Files changed (2) hide show
  1. package/README.md +194 -158
  2. package/package.json +6 -6
package/README.md CHANGED
@@ -22,67 +22,6 @@
22
22
 
23
23
  ---
24
24
 
25
- ## What's New
26
-
27
- ### v1.18.0 — Chat Integrations Upgrade
28
-
29
- **New Discord Bot & Enhanced Telegram:**
30
-
31
- - **Discord Bot** — Full-featured Discord integration with slash commands, rich embeds, and file upload support (up to 25MB)
32
- - `/start`, `/new`, `/info`, `/sessions`, `/diff`, `/init` commands
33
- - 📸 Image & document upload
34
- - 🎤 Voice message transcription
35
- - ✨ Real-time response streaming
36
- - 👍 Reactions on completion
37
- - **Telegram Enhancement** — Added comprehensive file upload support
38
- - 📸 Image upload (screenshots, diagrams, mockups)
39
- - 📄 Document upload (code files, PDFs, up to 20MB)
40
- - 📦 Media groups (multiple files at once)
41
- - 🎤 Voice transcription via Groq Whisper
42
- - **Packages Available**:
43
- - `@ironcode-ai/telegram` — Telegram bot integration
44
- - `@ironcode-ai/discord` — Discord bot integration (NEW)
45
- - `@ironcode-ai/slack` — Slack bot integration
46
-
47
- ### v1.17.6 — AI SDK v6 ModelRef Migration
48
-
49
- **Completed ModelRef migration as part of AI SDK v6 upgrade:**
50
-
51
- - **Schema migration** — Migrated model references from object format `{ providerID: string, modelID: string }` to string-based `ModelRef` format (`"provider:model"`) throughout the codebase
52
- - **Parser/formatter utilities** — All code now uses `ProviderRegistry.parse(modelRef)` to extract components and `ProviderRegistry.format(providerID, modelID)` to create ModelRef strings
53
- - **Runtime compatibility** — Added `ensureModelRef()` helper to handle legacy object formats gracefully during transition
54
- - **Bug fixes** — Fixed `ProviderModelNotFoundError` with undefined values caused by incomplete migration; fixed `Provider.defaultModel()` to return strings consistently
55
-
56
- **Technical details:**
57
-
58
- - Updated schemas in `message-v2.ts`: User, Assistant, and SubtaskPart now use `model: z.string()` instead of separate modelID/providerID fields
59
- - Migrated 24 files including session handling, compaction, summary, task/plan tools, telegram bot, and SDK types
60
- - Zero breaking changes for end users
61
-
62
- ### v1.17.5 — Voice Message Support
63
-
64
- - **Voice messages** — Send voice messages to the Telegram bot; audio is automatically transcribed via Groq Whisper and forwarded to the agent
65
- - **BM25 improvements** — Updated `STOP_WORDS` to retain method-prefix tokens (`get`/`set`/`is`/`has`/`new`) for more accurate code search
66
-
67
- ### v1.17.3 — Rust Rule Engine Migration
68
-
69
- - **Permission Rule Engine** — `PermissionNext.evaluate()` and `disabled()` migrated to Rust; entire ruleset batched into a single FFI call instead of N JS roundtrips
70
- - **File Ignore Matching** — `FileIgnore.match()` migrated to Rust using `globset` compiled regex, faster than per-call `Bun.Glob` allocation
71
- - **Dead code removed** — `permission/arity.ts` (BashArity) removed, replaced by `extractPrefixFFI` (Rust)
72
-
73
- ### v1.17.2 — Telegram Enhancement
74
-
75
- - **`/init` command** — Analyze a project and generate `AGENTS.md` directly from the Telegram bot
76
- - **Code diff streaming** — `/diff` shows all changed files in the current session
77
- - **Session management UI** — `/sessions` with inline switch buttons
78
-
79
- ### v1.17.0 — AI SDK v6
80
-
81
- - Upgraded to AI SDK v6 with full support for new providers
82
- - Improved terminal UX
83
-
84
- ---
85
-
86
25
  ## What is IronCode?
87
26
 
88
27
  IronCode is a **high-performance CLI AI coding agent** — a fork of [OpenCode](https://github.com/anomalyco/opencode) that runs entirely on your machine. It rewrites performance-critical components in Rust for dramatically improved speed and memory efficiency.
@@ -95,28 +34,12 @@ IronCode is a **high-performance CLI AI coding agent** — a fork of [OpenCode](
95
34
  - 🔍 **Code Changes Panel** — Diff viewer with inline comments and hunk revert
96
35
  - 🔎 **Local Code Search** — BM25 + tree-sitter semantic search, offline, zero latency
97
36
  - 💬 **Chat Integrations** — Control IronCode from Telegram, Discord, or Slack
98
- - 📸 Image & file upload (screenshots, code files, PDFs)
99
- - 🎤 Voice message transcription
100
- - 📱 Code from anywhere, even mobile
101
37
  - 💻 **Built-in Terminal** — Fish-style autosuggest, tab completion, syntax highlighting
102
38
  - 📝 **External Editor** — Opens `$EDITOR`/nvim with auto-install if missing
39
+ - 🧩 **Built-in Skills** — Opinionated slash commands for product review, engineering, QA, and shipping
103
40
  - 🏠 **100% Local** — No cloud services, works completely offline
104
41
  - ⚡ **Blazing Fast** — Native Rust for all performance-critical operations
105
42
 
106
- ### Performance (Native Rust Components)
107
-
108
- | Operation | Speedup | Notes |
109
- | --------------------- | ---------------------------------- | ---------------------------------------------------------- |
110
- | PTY/Terminal | **15x faster** | Zero-copy ring buffer |
111
- | Edit Tool | **2–6x faster** | 9 smart replacement strategies |
112
- | Bash Parser | **50–100x faster** | Native tree-sitter vs WASM |
113
- | Archive extraction | **3–5x faster** | s-zip streaming reader |
114
- | Grep search | **90–99% less memory** | Streams GB-sized files |
115
- | File read | **1.5x faster, 99.7% less memory** | 64KB buffer + pre-allocation |
116
- | Git operations | **1.8x faster** | libgit2, no process spawning |
117
- | Permission evaluation | **N× fewer FFI calls** | Entire ruleset in 1 native call vs N roundtrips |
118
- | File ignore matching | **Faster glob matching** | Compiled `globset` regex vs per-call `Bun.Glob` allocation |
119
-
120
43
  ---
121
44
 
122
45
  ## Installation
@@ -172,121 +95,193 @@ ironcode auth login
172
95
  | `/init` | Create `AGENTS.md` for the project |
173
96
  | `Tab` | Switch between agents (build / plan) |
174
97
  | `Ctrl+T` | Cycle model variants (low/medium/high) |
175
- | `Ctrl+X I` | Git panel shortcut |
176
- | `Ctrl+X R` | Code changes panel shortcut |
177
98
 
178
- ### Model Variants & Thinking
99
+ ### Model Variants
179
100
 
180
- IronCode supports **model variants** that control the quality/speed tradeoff:
101
+ Press **`Ctrl+T`** to cycle between variants:
181
102
 
182
- - **low** Faster responses, lower cost, suitable for simple tasks
183
- - **medium** — Balanced performance and quality
184
- - **high** Best quality, includes extended thinking/reasoning output (default)
185
- - **thinking** Extended reasoning mode for complex problems
103
+ | Variant | Description |
104
+ |---------|-------------|
105
+ | `low` | Faster responses, lower cost |
106
+ | `medium` | Balanced performance and quality |
107
+ | `high 🧠` | Best quality with thinking enabled (default) |
108
+ | `thinking 🧠` | Extended reasoning for complex problems |
186
109
 
187
- Press **`Ctrl+T`** to cycle between available variants. The status bar shows the current variant with indicators:
110
+ ---
188
111
 
189
- - `high 🧠` — High quality with thinking enabled
190
- - `thinking 🧠` — Thinking variant with extended reasoning
191
- - `medium` — Medium quality
192
- - `low` — Low cost, faster responses
112
+ ## Skills
193
113
 
194
- **Thinking mode** shows the model's internal reasoning process before generating the final response, helping with complex problem-solving and understanding the model's decision-making process.
114
+ IronCode ships with **built-in skill workflows** opinionated slash commands that switch the agent into a specialist mode. Instead of one generic assistant, you get: founder, tech lead, paranoid reviewer, release engineer, QA tester.
195
115
 
196
- ---
116
+ | Skill | Mode | What it does |
117
+ |-------|------|-------------|
118
+ | `/ceo-review` | Founder | Rethink the problem. Find the 10-star product hiding inside the request. |
119
+ | `/eng-review` | Tech lead | Lock in architecture, data flow, failure modes, edge cases, and test matrix. |
120
+ | `/code-review` | Staff engineer | Find bugs that pass CI but blow up in production. |
121
+ | `/code-ship` | Release engineer | Format, typecheck, test, push, and open PR against `dev`. |
122
+ | `/qa-browse` | QA engineer | Playwright browser automation — navigate, screenshot, test forms, check console. |
197
123
 
198
- ## Chat Integrations
124
+ ### Workflow
199
125
 
200
- Control IronCode from your favorite messaging app — send tasks from your phone, upload files, and get live streaming responses.
126
+ ```
127
+ /ceo-review → /eng-review → (code) → /code-review → /code-ship → /qa-browse
128
+ product architecture build find bugs land it verify it
129
+ ```
130
+
131
+ ### Example
201
132
 
202
- ### Telegram Bot
133
+ ```
134
+ You: I want to add voice message transcription.
135
+ /ceo-review
203
136
 
204
- Full-featured Telegram integration with file upload and voice transcription.
137
+ IronCode: "Voice transcription" is not the feature. The real job is
138
+ letting users code from anywhere — even when they can't type.
205
139
 
206
- ```bash
207
- # Install
208
- bun install -g @ironcode-ai/telegram
140
+ A) SCOPE EXPANSION — voice commands, image upload, voice-to-diff
141
+ B) HOLD SCOPE — transcription only, production-ready
142
+ C) SCOPE REDUCTION — bare minimum Whisper API call
209
143
 
210
- # Configure
211
- ironcode-telegram setup
144
+ You: B
145
+
146
+ You: /eng-review
147
+ IronCode: [Architecture diagram, data flow, failure modes, test matrix]
148
+
149
+ You: (implement the plan)
150
+ You: /code-review
151
+ IronCode: Missing .catch() on Whisper API — unhandled rejection will crash the bot.
212
152
 
213
- # Run
214
- cd your-project
215
- ironcode-telegram
153
+ You: (fix it)
154
+ You: /code-ship
155
+ IronCode: ✅ Format → typecheck → test → push → PR created
156
+
157
+ You: /qa-browse http://localhost:3000
158
+ IronCode: [Screenshots, console check, form test] All pages load. Voice flow works.
216
159
  ```
217
160
 
218
- **Features:**
161
+ ### Custom Skills
219
162
 
220
- - 📸 Image upload (screenshots, diagrams, mockups)
221
- - 📄 Document upload (code files, PDFs, up to 20MB)
222
- - 📦 Media groups (multiple files at once)
223
- - 🎤 Voice transcription via Groq Whisper
224
- - ⚡ Real-time response streaming
225
- - 🔗 Session sharing with team
163
+ Create `.ironcode/skill/<name>/SKILL.md` with YAML frontmatter:
226
164
 
227
- **Commands:** `/new`, `/sessions`, `/info`, `/init`, `/diff`
165
+ ```yaml
166
+ ---
167
+ name: my-skill
168
+ description: What this skill does and when to use it.
169
+ ---
228
170
 
229
- See [`packages/telegram/README.md`](./packages/telegram/README.md) for full documentation.
171
+ # Instructions for the agent
230
172
 
231
- ### Discord Bot
173
+ Your prompt content here...
174
+ ```
232
175
 
233
- Modern Discord integration with slash commands and rich embeds.
176
+ Skills are automatically discovered no restart needed.
234
177
 
235
- ```bash
236
- # Install
237
- bun install -g @ironcode-ai/discord
178
+ ### Built-in Skill Auto-Install
238
179
 
239
- # Configure
240
- ironcode-discord setup
180
+ Built-in skills are embedded in the IronCode binary. On first run, they are extracted to `~/.ironcode/skill/`. If you customize a built-in skill (remove the `.builtin` marker), your version is preserved across upgrades.
181
+
182
+ ---
183
+
184
+ ## Agents
185
+
186
+ Switch between agents with `Tab`:
241
187
 
242
- # Run
243
- cd your-project
244
- ironcode-discord
188
+ | Agent | Access | Use for |
189
+ |-------|--------|---------|
190
+ | **build** | Full read/write | Development, implementation (default) |
191
+ | **plan** | Read-only | Analysis, code exploration, planning |
192
+
193
+ ---
194
+
195
+ ## Chat Integrations
196
+
197
+ Control IronCode from your favorite messaging app — send tasks from your phone, upload files, and get live streaming responses.
198
+
199
+ ### Telegram
200
+
201
+ ```bash
202
+ bun install -g @ironcode-ai/telegram
203
+ ironcode-telegram setup
204
+ cd your-project && ironcode-telegram
245
205
  ```
246
206
 
247
- **Features:**
207
+ 📸 Image upload · 📄 Document upload (20MB) · 🎤 Voice transcription · ⚡ Streaming · `/new` `/sessions` `/info` `/init` `/diff`
248
208
 
249
- - ⚡ Slash commands (`/start`, `/new`, `/info`, `/diff`, `/init`)
250
- - 📸 Image & file upload (up to 25MB)
251
- - 🎤 Voice message transcription
252
- - ✨ Rich embeds for better UX
253
- - 👍 Reactions on completion
254
- - 🔗 Session per channel
209
+ [`packages/telegram/README.md`](./packages/telegram/README.md)
255
210
 
256
- See [`packages/discord/README.md`](./packages/discord/README.md) for full documentation.
211
+ ### Discord
257
212
 
258
- ### Slack Bot
213
+ ```bash
214
+ bun install -g @ironcode-ai/discord
215
+ ironcode-discord setup
216
+ cd your-project && ironcode-discord
217
+ ```
218
+
219
+ ⚡ Slash commands · 📸 File upload (25MB) · 🎤 Voice transcription · ✨ Rich embeds · 👍 Reactions
259
220
 
260
- Slack integration with threaded conversations.
221
+ [`packages/discord/README.md`](./packages/discord/README.md)
222
+
223
+ ### Slack
261
224
 
262
225
  ```bash
263
- cd packages/slack
264
- bun dev
226
+ cd packages/slack && bun dev
265
227
  ```
266
228
 
267
- **Features:**
229
+ 💬 Threaded conversations · ⚡ Real-time tool notifications · 🤖 Socket mode
230
+
231
+ → [`packages/slack/README.md`](./packages/slack/README.md)
268
232
 
269
- - 💬 Threaded conversations
270
- - ⚡ Real-time tool notifications
271
- - 🔗 Session sharing
272
- - 🤖 Socket mode support
233
+ ---
234
+
235
+ ## Performance
236
+
237
+ Native Rust components via FFI:
273
238
 
274
- See [`packages/slack/README.md`](./packages/slack/README.md) for setup instructions.
239
+ | Operation | Speedup | Notes |
240
+ | --------------------- | ---------------------------------- | ---------------------------------------------- |
241
+ | PTY/Terminal | **15x faster** | Zero-copy ring buffer |
242
+ | Edit Tool | **2–6x faster** | 9 smart replacement strategies |
243
+ | Bash Parser | **50–100x faster** | Native tree-sitter vs WASM |
244
+ | Archive extraction | **3–5x faster** | s-zip streaming reader |
245
+ | Grep search | **90–99% less memory** | Streams GB-sized files |
246
+ | File read | **1.5x faster, 99.7% less memory** | 64KB buffer + pre-allocation |
247
+ | Git operations | **1.8x faster** | libgit2, no process spawning |
248
+ | Permission evaluation | **N× fewer FFI calls** | Entire ruleset in 1 native call |
249
+ | File ignore matching | **Faster glob matching** | Compiled `globset` regex |
275
250
 
276
251
  ---
277
252
 
278
- ## Agents
253
+ ## Architecture
279
254
 
280
- Switch between agents with the `Tab` key:
255
+ ```
256
+ ┌──────────────────────────────────────────────┐
257
+ │ IronCode CLI │
258
+ │ TypeScript + Bun │
259
+ ├──────────────────────────────────────────────┤
260
+ │ TUI │ Agents │ Skills │ Integrations │
261
+ │ │ build/ │ ceo/eng/ │ Telegram/ │
262
+ │ │ plan │ review/ │ Discord/Slack │
263
+ │ │ │ ship/qa │ │
264
+ ├──────────────────────────────────────────────┤
265
+ │ Native Performance Layer │
266
+ │ Rust via FFI │
267
+ │ PTY · Edit · Grep · Git · Bash · BM25 · │
268
+ │ Archive · Permission · Glob · Stats │
269
+ └──────────────────────────────────────────────┘
270
+ ```
281
271
 
282
- - **build** Full-access agent for development (default)
283
- - **plan** — Read-only agent for analysis and code exploration
272
+ | Layer | Tech | Packages |
273
+ |-------|------|----------|
274
+ | CLI/TUI | TypeScript + Bun | `packages/ironcode` |
275
+ | Native | Rust FFI | `packages/ironcode/native/tool` |
276
+ | Telegram | grammy + SDK + Groq Whisper | `@ironcode-ai/telegram` |
277
+ | Discord | discord.js + SDK | `@ironcode-ai/discord` |
278
+ | Slack | Bolt + SDK | `@ironcode-ai/slack` |
284
279
 
285
280
  ---
286
281
 
287
282
  ## Development
288
283
 
289
- **Requirements:** Bun 1.3.8, Rust (stable), Git
284
+ **Requirements:** Bun 1.3.8+, Rust (stable), Git
290
285
 
291
286
  ```bash
292
287
  git clone https://github.com/KSD-CO/IronCode.git
@@ -302,23 +297,64 @@ bun dev
302
297
 
303
298
  ---
304
299
 
305
- ## Architecture
300
+ ## Contributing
306
301
 
307
- - **CLI/TUI**: TypeScript + Bun
308
- - **Native Performance Layer**: Rust via FFI — PTY, edit, grep, glob, git, archive, bash parser, BM25 search, wildcard matching, RETE command prefix, permission rule engine, file ignore matching, system stats
309
- - **Telegram Bot**: `@ironcode-ai/telegram` grammy + `@ironcode-ai/sdk` + Groq Whisper for voice transcription
302
+ Contributions welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md).
303
+
304
+ Areas to help with: performance optimizations, bug fixes, documentation, new plugins, additional Rust components, new skills.
310
305
 
311
306
  ---
312
307
 
313
- ## Contributing
308
+ ## Changelog
314
309
 
315
- Contributions welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md).
310
+ <details>
311
+ <summary><strong>v1.18.0</strong> — Chat Integrations Upgrade</summary>
316
312
 
317
- Areas to help with: performance optimizations, bug fixes, documentation, new plugins, additional Rust components.
313
+ - **Discord Bot** Full-featured Discord integration with slash commands, rich embeds, file upload (25MB)
314
+ - **Telegram Enhancement** — Image upload, document upload, media groups, voice transcription via Groq Whisper
315
+ - **Packages:** `@ironcode-ai/telegram`, `@ironcode-ai/discord`, `@ironcode-ai/slack`
318
316
 
319
- ---
317
+ </details>
318
+
319
+ <details>
320
+ <summary><strong>v1.17.6</strong> — AI SDK v6 ModelRef Migration</summary>
321
+
322
+ - Migrated model references from object format to string-based `ModelRef` format (`"provider:model"`)
323
+ - Updated 24 files including session handling, compaction, summary, task/plan tools
324
+ - Zero breaking changes for end users
325
+
326
+ </details>
320
327
 
321
- ## Acknowledgments
328
+ <details>
329
+ <summary><strong>v1.17.5</strong> — Voice Message Support</summary>
330
+
331
+ - Voice messages in Telegram bot — auto-transcribed via Groq Whisper
332
+ - BM25 improvements — retain method-prefix tokens for more accurate code search
333
+
334
+ </details>
335
+
336
+ <details>
337
+ <summary><strong>v1.17.3</strong> — Rust Rule Engine Migration</summary>
338
+
339
+ - Permission rule engine migrated to Rust — entire ruleset in 1 FFI call
340
+ - File ignore matching migrated to Rust using `globset` compiled regex
341
+ - Removed dead code (`permission/arity.ts`)
342
+
343
+ </details>
344
+
345
+ <details>
346
+ <summary><strong>v1.17.2</strong> — Telegram Enhancement</summary>
347
+
348
+ - `/init` command — generate `AGENTS.md` from Telegram
349
+ - `/diff` — stream changed files
350
+ - `/sessions` — inline switch buttons
351
+
352
+ </details>
353
+
354
+ <details>
355
+ <summary><strong>v1.17.0</strong> — AI SDK v6</summary>
356
+
357
+ - Upgraded to AI SDK v6 with full support for new providers
358
+ - Improved terminal UX
322
359
 
323
- - **IronCode Team** — original open-source AI coding agent
324
- - All contributors to this fork
360
+ </details>
package/package.json CHANGED
@@ -6,13 +6,13 @@
6
6
  "scripts": {
7
7
  "postinstall": "bun ./postinstall.mjs || node ./postinstall.mjs"
8
8
  },
9
- "version": "1.19.2",
9
+ "version": "1.20.0",
10
10
  "license": "MIT",
11
11
  "optionalDependencies": {
12
- "ironcode-linux-x64-baseline": "1.19.2",
13
- "ironcode-linux-x64-modern": "1.19.2",
14
- "ironcode-linux-x64-baseline-musl": "1.19.2",
15
- "ironcode-windows-x64-modern": "1.19.2",
16
- "ironcode-darwin-arm64": "1.19.2"
12
+ "ironcode-linux-x64-baseline": "1.20.0",
13
+ "ironcode-linux-x64-modern": "1.20.0",
14
+ "ironcode-linux-x64-baseline-musl": "1.20.0",
15
+ "ironcode-windows-x64-modern": "1.20.0",
16
+ "ironcode-darwin-arm64": "1.20.0"
17
17
  }
18
18
  }