ironcode-ai 1.19.2 → 1.20.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 (2) hide show
  1. package/README.md +208 -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** — 9 opinionated slash commands: plan review, code review, QA, ship, retro, and more
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,207 @@ 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
100
+
101
+ Press **`Ctrl+T`** to cycle between variants:
179
102
 
180
- IronCode supports **model variants** that control the quality/speed tradeoff:
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 |
181
109
 
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
110
+ ---
186
111
 
187
- Press **`Ctrl+T`** to cycle between available variants. The status bar shows the current variant with indicators:
112
+ ## Skills
188
113
 
189
- - `high 🧠`High quality with thinking enabled
190
- - `thinking 🧠` — Thinking variant with extended reasoning
191
- - `medium` — Medium quality
192
- - `low` — Low cost, faster responses
114
+ IronCode ships with **9 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, technical writer, and engineering manager.
193
115
 
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.
116
+ | Skill | Mode | What it does |
117
+ |-------|------|-------------|
118
+ | `/ceo-review` | Founder / CEO | Rethink the problem. Find the 10-star product hiding inside the request. Three modes: Scope Expansion, Hold Scope, Scope Reduction. |
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. Two-pass: critical + informational. |
121
+ | `/code-ship` | Release engineer | Merge, test, typecheck, review, changelog, bisectable commits, push, and PR — one command. |
122
+ | `/browse` | QA engineer | Headless Chromium via Playwright. Navigate, click, fill forms, screenshot, assert states, test responsive layouts. |
123
+ | `/qa` | QA + fix engineer | Test app, find bugs, fix them with atomic commits, re-verify. Four modes: diff-aware, full, quick, regression. |
124
+ | `/qa-only` | QA reporter | Report-only QA. Same methodology as `/qa` but never fixes anything. Pure bug report with health score. |
125
+ | `/document-release` | Technical writer | Post-ship doc update. Cross-references diff against README, ARCHITECTURE, CONTRIBUTING, CHANGELOG. |
126
+ | `/retro` | Engineering manager | Team-aware weekly retro: commit analysis, session detection, per-person praise and growth areas. |
195
127
 
196
- ---
128
+ ### Workflow
197
129
 
198
- ## Chat Integrations
130
+ ```
131
+ /ceo-review → /eng-review → (code) → /code-review → /code-ship → /qa → /document-release → /retro
132
+ product architecture build find bugs land it verify update docs reflect
133
+ ```
199
134
 
200
- Control IronCode from your favorite messaging app — send tasks from your phone, upload files, and get live streaming responses.
135
+ ### Example
201
136
 
202
- ### Telegram Bot
137
+ ```
138
+ You: I want to add voice message transcription.
139
+ /ceo-review
203
140
 
204
- Full-featured Telegram integration with file upload and voice transcription.
141
+ IronCode: "Voice transcription" is not the feature. The real job is
142
+ letting users code from anywhere — even when they can't type.
205
143
 
206
- ```bash
207
- # Install
208
- bun install -g @ironcode-ai/telegram
144
+ A) SCOPE EXPANSION — voice commands, image upload, voice-to-diff
145
+ B) HOLD SCOPE — transcription only, production-ready
146
+ C) SCOPE REDUCTION — bare minimum Whisper API call
209
147
 
210
- # Configure
211
- ironcode-telegram setup
148
+ You: B
149
+
150
+ You: /eng-review
151
+ IronCode: [Architecture diagram, data flow, failure modes, test matrix]
152
+
153
+ You: (implement the plan)
154
+ You: /code-review
155
+ IronCode: Missing .catch() on Whisper API — unhandled rejection will crash the bot.
156
+
157
+ You: (fix it)
158
+ You: /code-ship
159
+ IronCode: ✅ Format → typecheck → test → push → PR created
212
160
 
213
- # Run
214
- cd your-project
215
- ironcode-telegram
161
+ You: /qa http://localhost:3000
162
+ IronCode: [Screenshots, console check, form test] All pages load. Voice flow works.
163
+ Health score: 92/100. 1 medium issue found and fixed.
164
+
165
+ You: /document-release
166
+ IronCode: README.md: added voice transcription to features table.
167
+ CHANGELOG.md: polished voice. All docs up to date.
168
+
169
+ You: /retro
170
+ IronCode: Week of Mar 10: 23 commits, 1.8k LOC, 42% tests, peak: 10pm
171
+ Your biggest ship: voice transcription pipeline.
172
+ Streak: 12 consecutive days.
216
173
  ```
217
174
 
218
- **Features:**
175
+ ### Custom Skills
219
176
 
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
177
+ Create `.ironcode/skill/<name>/SKILL.md` with YAML frontmatter:
226
178
 
227
- **Commands:** `/new`, `/sessions`, `/info`, `/init`, `/diff`
179
+ ```yaml
180
+ ---
181
+ name: my-skill
182
+ description: What this skill does and when to use it.
183
+ ---
228
184
 
229
- See [`packages/telegram/README.md`](./packages/telegram/README.md) for full documentation.
185
+ # Instructions for the agent
230
186
 
231
- ### Discord Bot
187
+ Your prompt content here...
188
+ ```
232
189
 
233
- Modern Discord integration with slash commands and rich embeds.
190
+ Skills are automatically discovered no restart needed.
234
191
 
235
- ```bash
236
- # Install
237
- bun install -g @ironcode-ai/discord
192
+ ### Built-in Skill Auto-Install
238
193
 
239
- # Configure
240
- ironcode-discord setup
194
+ 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.
195
+
196
+ ---
197
+
198
+ ## Agents
241
199
 
242
- # Run
243
- cd your-project
244
- ironcode-discord
200
+ Switch between agents with `Tab`:
201
+
202
+ | Agent | Access | Use for |
203
+ |-------|--------|---------|
204
+ | **build** | Full read/write | Development, implementation (default) |
205
+ | **plan** | Read-only | Analysis, code exploration, planning |
206
+
207
+ ---
208
+
209
+ ## Chat Integrations
210
+
211
+ Control IronCode from your favorite messaging app — send tasks from your phone, upload files, and get live streaming responses.
212
+
213
+ ### Telegram
214
+
215
+ ```bash
216
+ bun install -g @ironcode-ai/telegram
217
+ ironcode-telegram setup
218
+ cd your-project && ironcode-telegram
245
219
  ```
246
220
 
247
- **Features:**
221
+ 📸 Image upload · 📄 Document upload (20MB) · 🎤 Voice transcription · ⚡ Streaming · `/new` `/sessions` `/info` `/init` `/diff`
248
222
 
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
223
+ [`packages/telegram/README.md`](./packages/telegram/README.md)
255
224
 
256
- See [`packages/discord/README.md`](./packages/discord/README.md) for full documentation.
225
+ ### Discord
257
226
 
258
- ### Slack Bot
227
+ ```bash
228
+ bun install -g @ironcode-ai/discord
229
+ ironcode-discord setup
230
+ cd your-project && ironcode-discord
231
+ ```
259
232
 
260
- Slack integration with threaded conversations.
233
+ Slash commands · 📸 File upload (25MB) · 🎤 Voice transcription · ✨ Rich embeds · 👍 Reactions
234
+
235
+ → [`packages/discord/README.md`](./packages/discord/README.md)
236
+
237
+ ### Slack
261
238
 
262
239
  ```bash
263
- cd packages/slack
264
- bun dev
240
+ cd packages/slack && bun dev
265
241
  ```
266
242
 
267
- **Features:**
243
+ 💬 Threaded conversations · ⚡ Real-time tool notifications · 🤖 Socket mode
268
244
 
269
- - 💬 Threaded conversations
270
- - ⚡ Real-time tool notifications
271
- - 🔗 Session sharing
272
- - 🤖 Socket mode support
245
+ [`packages/slack/README.md`](./packages/slack/README.md)
273
246
 
274
- See [`packages/slack/README.md`](./packages/slack/README.md) for setup instructions.
247
+ ---
248
+
249
+ ## Performance
250
+
251
+ Native Rust components via FFI:
252
+
253
+ | Operation | Speedup | Notes |
254
+ | --------------------- | ---------------------------------- | ---------------------------------------------- |
255
+ | PTY/Terminal | **15x faster** | Zero-copy ring buffer |
256
+ | Edit Tool | **2–6x faster** | 9 smart replacement strategies |
257
+ | Bash Parser | **50–100x faster** | Native tree-sitter vs WASM |
258
+ | Archive extraction | **3–5x faster** | s-zip streaming reader |
259
+ | Grep search | **90–99% less memory** | Streams GB-sized files |
260
+ | File read | **1.5x faster, 99.7% less memory** | 64KB buffer + pre-allocation |
261
+ | Git operations | **1.8x faster** | libgit2, no process spawning |
262
+ | Permission evaluation | **N× fewer FFI calls** | Entire ruleset in 1 native call |
263
+ | File ignore matching | **Faster glob matching** | Compiled `globset` regex |
275
264
 
276
265
  ---
277
266
 
278
- ## Agents
267
+ ## Architecture
279
268
 
280
- Switch between agents with the `Tab` key:
269
+ ```
270
+ ┌──────────────────────────────────────────────┐
271
+ │ IronCode CLI │
272
+ │ TypeScript + Bun │
273
+ ├──────────────────────────────────────────────┤
274
+ │ TUI │ Agents │ Skills │ Integrations │
275
+ │ │ build/ │ ceo/eng/ │ Telegram/ │
276
+ │ │ plan │ review/ │ Discord/Slack │
277
+ │ │ │ ship/qa │ │
278
+ ├──────────────────────────────────────────────┤
279
+ │ Native Performance Layer │
280
+ │ Rust via FFI │
281
+ │ PTY · Edit · Grep · Git · Bash · BM25 · │
282
+ │ Archive · Permission · Glob · Stats │
283
+ └──────────────────────────────────────────────┘
284
+ ```
281
285
 
282
- - **build** Full-access agent for development (default)
283
- - **plan** — Read-only agent for analysis and code exploration
286
+ | Layer | Tech | Packages |
287
+ |-------|------|----------|
288
+ | CLI/TUI | TypeScript + Bun | `packages/ironcode` |
289
+ | Native | Rust FFI | `packages/ironcode/native/tool` |
290
+ | Telegram | grammy + SDK + Groq Whisper | `@ironcode-ai/telegram` |
291
+ | Discord | discord.js + SDK | `@ironcode-ai/discord` |
292
+ | Slack | Bolt + SDK | `@ironcode-ai/slack` |
284
293
 
285
294
  ---
286
295
 
287
296
  ## Development
288
297
 
289
- **Requirements:** Bun 1.3.8, Rust (stable), Git
298
+ **Requirements:** Bun 1.3.8+, Rust (stable), Git
290
299
 
291
300
  ```bash
292
301
  git clone https://github.com/KSD-CO/IronCode.git
@@ -302,23 +311,64 @@ bun dev
302
311
 
303
312
  ---
304
313
 
305
- ## Architecture
314
+ ## Contributing
306
315
 
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
316
+ Contributions welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md).
317
+
318
+ Areas to help with: performance optimizations, bug fixes, documentation, new plugins, additional Rust components, new skills.
310
319
 
311
320
  ---
312
321
 
313
- ## Contributing
322
+ ## Changelog
314
323
 
315
- Contributions welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md).
324
+ <details>
325
+ <summary><strong>v1.18.0</strong> — Chat Integrations Upgrade</summary>
316
326
 
317
- Areas to help with: performance optimizations, bug fixes, documentation, new plugins, additional Rust components.
327
+ - **Discord Bot** Full-featured Discord integration with slash commands, rich embeds, file upload (25MB)
328
+ - **Telegram Enhancement** — Image upload, document upload, media groups, voice transcription via Groq Whisper
329
+ - **Packages:** `@ironcode-ai/telegram`, `@ironcode-ai/discord`, `@ironcode-ai/slack`
318
330
 
319
- ---
331
+ </details>
332
+
333
+ <details>
334
+ <summary><strong>v1.17.6</strong> — AI SDK v6 ModelRef Migration</summary>
335
+
336
+ - Migrated model references from object format to string-based `ModelRef` format (`"provider:model"`)
337
+ - Updated 24 files including session handling, compaction, summary, task/plan tools
338
+ - Zero breaking changes for end users
339
+
340
+ </details>
320
341
 
321
- ## Acknowledgments
342
+ <details>
343
+ <summary><strong>v1.17.5</strong> — Voice Message Support</summary>
344
+
345
+ - Voice messages in Telegram bot — auto-transcribed via Groq Whisper
346
+ - BM25 improvements — retain method-prefix tokens for more accurate code search
347
+
348
+ </details>
349
+
350
+ <details>
351
+ <summary><strong>v1.17.3</strong> — Rust Rule Engine Migration</summary>
352
+
353
+ - Permission rule engine migrated to Rust — entire ruleset in 1 FFI call
354
+ - File ignore matching migrated to Rust using `globset` compiled regex
355
+ - Removed dead code (`permission/arity.ts`)
356
+
357
+ </details>
358
+
359
+ <details>
360
+ <summary><strong>v1.17.2</strong> — Telegram Enhancement</summary>
361
+
362
+ - `/init` command — generate `AGENTS.md` from Telegram
363
+ - `/diff` — stream changed files
364
+ - `/sessions` — inline switch buttons
365
+
366
+ </details>
367
+
368
+ <details>
369
+ <summary><strong>v1.17.0</strong> — AI SDK v6</summary>
370
+
371
+ - Upgraded to AI SDK v6 with full support for new providers
372
+ - Improved terminal UX
322
373
 
323
- - **IronCode Team** — original open-source AI coding agent
324
- - All contributors to this fork
374
+ </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.1",
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.1",
13
+ "ironcode-linux-x64-modern": "1.20.1",
14
+ "ironcode-linux-x64-baseline-musl": "1.20.1",
15
+ "ironcode-windows-x64-modern": "1.20.1",
16
+ "ironcode-darwin-arm64": "1.20.1"
17
17
  }
18
18
  }