ironcode-ai 1.8.0 โ 1.10.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 +154 -42
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -22,6 +22,57 @@
|
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
+
## ๐ What's New
|
|
26
|
+
|
|
27
|
+
### February 2026 - Git Source Control UI
|
|
28
|
+
|
|
29
|
+
**Built-in Git UI for seamless version control within TUI:**
|
|
30
|
+
|
|
31
|
+
- ๐ฏ **Full Git Integration** - Stage, commit, push without leaving IronCode
|
|
32
|
+
- ๐ **Visual Status View** - See staged/unstaged changes with color-coded icons
|
|
33
|
+
- ๐ฟ **Branch Management** - Quick checkout between branches
|
|
34
|
+
- ๐ **Inline Commit** - Type commit messages directly in TUI
|
|
35
|
+
- ๐ **Syntax-Highlighted Diffs** - Review changes with color-coded diffs
|
|
36
|
+
- โก **Multi-Auth Push** - Supports SSH keys, SSH agent, and HTTPS with credential helper
|
|
37
|
+
- ๐จ **Intuitive UI** - Keyboard shortcuts (p: push, a: stage all, Space: stage/unstage)
|
|
38
|
+
|
|
39
|
+
**Open Git panel with `Ctrl+X` then `I` or `/git` command**
|
|
40
|
+
|
|
41
|
+
### February 2026 - Streaming Optimizations
|
|
42
|
+
|
|
43
|
+
**Massive performance and memory improvements through streaming patterns:**
|
|
44
|
+
|
|
45
|
+
#### File Read Optimization
|
|
46
|
+
|
|
47
|
+
- โก **1.17-1.56x faster** across all file sizes
|
|
48
|
+
- ๐พ **99.7% memory savings** on large files (39MB โ 0.13MB for 100K lines)
|
|
49
|
+
- ๐ 64KB buffer with pre-allocated capacity eliminates reallocation
|
|
50
|
+
- โ
**100% identical results** - zero breaking changes
|
|
51
|
+
|
|
52
|
+
#### Grep Search Optimization
|
|
53
|
+
|
|
54
|
+
- ๐พ **90-99% memory reduction** when searching large files
|
|
55
|
+
- ๐ Stream lines instead of loading entire files
|
|
56
|
+
- โก Early exit after 1000 matches for efficiency
|
|
57
|
+
- ๐ฏ Can search **GB-sized files** without running out of memory
|
|
58
|
+
- โ
**100% identical results** - verified with comprehensive tests
|
|
59
|
+
|
|
60
|
+
**Why streaming matters:**
|
|
61
|
+
|
|
62
|
+
- Search 100 files ร 1MB each: **100MB โ 10MB memory** usage
|
|
63
|
+
- No data loss - regex matches on full line content before display truncation
|
|
64
|
+
- Scales to much larger codebases on memory-constrained systems
|
|
65
|
+
|
|
66
|
+
### Previous Updates
|
|
67
|
+
|
|
68
|
+
- **Memory optimization** - 97.6% faster message processing (254ms โ 6ms) - Feb 2026
|
|
69
|
+
- **Resource monitoring** - Automatic throttling with 300MB default limit - Feb 2026
|
|
70
|
+
- **PTY/Terminal native** - 15.29x speedup, powers Bash tool - Feb 2026
|
|
71
|
+
- **Edit tool optimization** - 2-6x faster with 9 smart strategies
|
|
72
|
+
- **Archive extraction** - 3-5x faster with s-zip native
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
25
76
|
## What is IronCode?
|
|
26
77
|
|
|
27
78
|
IronCode is a **high-performance CLI fork** of [OpenCode](https://github.com/anomalyco/opencode) - an AI coding agent that runs entirely on your machine. This fork focuses on the command-line experience, removes cloud dependencies, and **rewrites performance-critical components in Rust** for dramatically improved speed and efficiency.
|
|
@@ -29,6 +80,7 @@ IronCode is a **high-performance CLI fork** of [OpenCode](https://github.com/ano
|
|
|
29
80
|
### Key Features
|
|
30
81
|
|
|
31
82
|
- โจ๏ธ **CLI-First**: Powerful terminal UI optimized for command-line workflows
|
|
83
|
+
- ๐ฏ **Git Source Control**: Full Git integration - stage, commit, diff, push without leaving TUI
|
|
32
84
|
- ๐ **100% Local**: No cloud services, works completely offline
|
|
33
85
|
- ๐ **Privacy First**: Your code never leaves your machine
|
|
34
86
|
- ๐ฏ **Lightweight**: Stripped down to core functionality - CLI only
|
|
@@ -95,51 +147,61 @@ IronCode rewrites key operations in native Rust with **measured real-world perfo
|
|
|
95
147
|
| **File Listing** | 15.80 ms | 11.50 ms | **1.37x faster** | Native ignore crate |
|
|
96
148
|
| **File Glob (100 files)** | 9.74 ms | 3.55 ms | **2.74x faster** | Zero spawn overhead |
|
|
97
149
|
| **Grep Search** | 34.84 ms | 19.35 ms | **1.80x faster** | Pattern: "function" |
|
|
150
|
+
| **Grep (streaming)** | N/A | Similar | **90-99% memory** | Can search GB files |
|
|
98
151
|
| **VCS Info (git)** | 17.25 ms | 9.43 ms | **1.83x faster** | libgit2, no spawning |
|
|
99
152
|
| **Archive (small, 10)** | 5.48 ms | 1.93 ms | **2.8x faster** | s-zip vs unzip |
|
|
100
153
|
| **Archive (medium, 100)** | 90.43 ms | 18.07 ms | **5.0x faster** | s-zip vs unzip |
|
|
101
154
|
| **Archive (large, 500)** | 740.29 ms | 142.88 ms | **5.2x faster** | s-zip vs unzip |
|
|
102
|
-
| **Read (
|
|
103
|
-
| **Read (
|
|
104
|
-
| **Read (
|
|
105
|
-
| **
|
|
106
|
-
| **
|
|
155
|
+
| **Read (1K lines)** | 0.06 ms | 0.04 ms | **1.50x faster** | 64KB buffer + capacity |
|
|
156
|
+
| **Read (10K lines)** | 0.34 ms | 0.29 ms | **1.17x faster** | Pre-allocation |
|
|
157
|
+
| **Read (50K lines)** | 1.45 ms | 0.97 ms | **1.49x faster** | Streaming optimized |
|
|
158
|
+
| **Read (100K lines)** | 3.71 ms | 2.38 ms | **1.56x faster** | 99.7% memory savings |
|
|
159
|
+
| **Read (500K lines)** | 31.50 ms | 21.55 ms | **1.46x faster** | 30MB file |
|
|
160
|
+
| **Git Status** | ~15-20 ms | 9.43 ms | **1.83x faster** | libgit2, no spawn |
|
|
161
|
+
| **Git Stage/Unstage** | ~10-15 ms | <5 ms | **2-3x faster** | Native operations |
|
|
162
|
+
| **Git Commit** | ~15-20 ms | <10 ms | **2x faster** | Direct libgit2 |
|
|
163
|
+
| **Git Branch List** | ~10 ms | <5 ms | **2x faster** | No process spawn |
|
|
164
|
+
| **Git Diff** | ~20-30 ms | ~15 ms | **1.5x faster** | Streaming diff |
|
|
107
165
|
|
|
108
166
|
**Key Insights:**
|
|
109
167
|
|
|
110
168
|
- ๐ฏ **PTY/Terminal**: **15.29x faster** (exceeded 10x target!) - Native ring buffer, zero-copy reads
|
|
169
|
+
- โ
**File Read**: **1.17-1.56x faster** with **99.7% memory savings** (39MB โ 0.13MB for 100K lines) - 64KB buffer + pre-allocation
|
|
170
|
+
- โ
**Grep Search**: **90-99% memory reduction** with streaming - Can search GB-sized files without OOM
|
|
111
171
|
- โ
**Edit Tool**: 2-6x faster across all file sizes with all 9 smart replacement strategies
|
|
112
172
|
- โ
**Bash Parser**: 50-100x faster using native tree-sitter vs WASM (0.020ms per command, no initialization overhead)
|
|
113
173
|
- โ
**Glob/Grep**: 1.8-2.7x faster by eliminating process spawn overhead
|
|
114
174
|
- โ
**VCS Info**: 1.83x faster using libgit2 directly (no process spawning, 45% latency reduction)
|
|
115
175
|
- โ
**Archive Extraction**: 3-5x faster using s-zip vs shell commands (unzip/PowerShell)
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
- ๐ฏ **Lesson**: FFI overhead (~50ยตs) remains; only use Rust when compute > overhead
|
|
119
|
-
- ๐ง **Decision**: We use raw Rust FFI for consistency across native tool suite
|
|
176
|
+
- ๐ **Memory**: Streaming patterns use only 64KB buffer regardless of file size
|
|
177
|
+
- ๐ฏ **Lesson**: Pre-allocation + streaming + larger buffers = faster I/O with dramatically less memory
|
|
120
178
|
|
|
121
179
|
**Native Rust Components:**
|
|
122
180
|
|
|
123
181
|
- โ
**PTY/Terminal**: Full terminal session management with 2MB ring buffer, zero-copy streaming (15.29x faster) - Powers all Bash tool operations
|
|
182
|
+
- โ
**Git Source Control**: Complete Git operations via libgit2 (status, stage, commit, push, branch, diff) - 1.5-3x faster than subprocess
|
|
183
|
+
- โ
**File Reading**: Streaming read with 64KB buffer and pre-allocation (1.2-1.6x faster, 99.7% memory savings)
|
|
184
|
+
- โ
**Grep Search**: Streaming line-by-line search (90-99% memory reduction, scales to GB files)
|
|
124
185
|
- โ
**Edit Tool**: 9 smart replacement strategies with fuzzy matching (complex compute justifies FFI)
|
|
125
186
|
- โ
**File Listing**: Native ignore crate for fast directory traversal (eliminates process spawn)
|
|
126
187
|
- โ
**File Search (Glob)**: Pattern matching with gitignore support (eliminates process spawn)
|
|
127
|
-
- โ
**Code Search (Grep)**: Regex search across large codebases (eliminates process spawn)
|
|
128
188
|
- โ
**Archive Extraction**: ZIP file extraction using s-zip streaming reader (3-5x faster, cross-platform)
|
|
129
189
|
- โ
**Bash Parser**: Native tree-sitter bash command parsing (50-100x faster than WASM, 0.020ms per command)
|
|
130
|
-
- โ
**File I/O**: Native read/write with optimized raw FFI
|
|
131
190
|
- โ
**Directory Listing**: Fast recursive directory traversal
|
|
132
191
|
- โ
**VCS Info**: Lightning-fast git repository information (libgit2 vs subprocess)
|
|
133
192
|
- โ
**System Stats**: CPU and memory monitoring
|
|
134
193
|
|
|
135
194
|
**Benefits:**
|
|
136
195
|
|
|
196
|
+
- ๐ **1.2-1.6x faster** file reading with 64KB buffer and pre-allocation
|
|
197
|
+
- ๐พ **99.7% memory savings** on large files (39MB โ 0.13MB for 100K lines)
|
|
198
|
+
- ๐ **90-99% memory reduction** for grep search - can search GB-sized files
|
|
137
199
|
- ๐ **Up to 6x faster** text editing with 9 smart replacement strategies (Levenshtein, fuzzy matching)
|
|
138
200
|
- ๐ **Up to 5x faster** archive extraction (ZIP files) with cross-platform native code
|
|
139
201
|
- ๐ **83% less time** on large file edits (10K lines: 451ms โ 75ms)
|
|
140
202
|
- โก **1.83x faster** git operations using libgit2 (no process spawning)
|
|
141
203
|
- ๐ฏ **2-3x faster** glob/grep by eliminating process spawn overhead
|
|
142
|
-
- ๐ **Optimized I/O**:
|
|
204
|
+
- ๐ **Optimized I/O**: Streaming patterns with single-allocation for minimal memory footprint
|
|
143
205
|
- ๐ง **Consistent tooling**: Native Rust across all file operations for predictable performance
|
|
144
206
|
- ๐ **Cross-platform**: No external dependencies (unzip/PowerShell) for archive extraction
|
|
145
207
|
|
|
@@ -166,11 +228,12 @@ IronCode rewrites key operations in native Rust with **measured real-world perfo
|
|
|
166
228
|
**Enhanced:**
|
|
167
229
|
|
|
168
230
|
- ๐ **Native Rust performance** for compute-heavy operations (2-6x faster)
|
|
231
|
+
- ๐พ **Streaming file reads** with 99.7% memory savings (1.2-1.6x faster)
|
|
169
232
|
- โก **Eliminated process spawns** for glob/grep (2-3x speedup)
|
|
170
233
|
- ๐๏ธ **Fast archive extraction** with s-zip (3-5x faster, cross-platform native)
|
|
171
234
|
- ๐ **Faster edits** (2-6x improvement, scales with file size)
|
|
172
235
|
- ๐ฅ **Smart edit strategies** with fuzzy matching and Levenshtein similarity
|
|
173
|
-
- ๐ **Optimized I/O**:
|
|
236
|
+
- ๐ **Optimized I/O**: Streaming read with 64KB buffer and pre-allocation
|
|
174
237
|
- ๐ง **Consistent native tooling**: All file operations use Rust for predictable performance
|
|
175
238
|
- ๐ฏ **Memory efficiency**: Automatic resource monitoring with 300MB default limit
|
|
176
239
|
- ๐ฆ **Auto-throttling**: Prevents memory spikes and system crashes
|
|
@@ -194,20 +257,36 @@ npx ironcode-ai
|
|
|
194
257
|
|
|
195
258
|
### Homebrew (macOS/Linux)
|
|
196
259
|
|
|
260
|
+
IronCode is available through a Homebrew tap. The formula automatically installs the appropriate binary for your platform.
|
|
261
|
+
|
|
197
262
|
```bash
|
|
198
263
|
# Add the tap
|
|
199
|
-
brew tap KSD-CO/tap
|
|
264
|
+
brew tap KSD-CO/tap https://github.com/KSD-CO/homebrew-tap
|
|
200
265
|
|
|
201
266
|
# Install IronCode
|
|
202
267
|
brew install ironcode
|
|
203
268
|
|
|
269
|
+
# Verify installation
|
|
270
|
+
ironcode --version
|
|
271
|
+
|
|
204
272
|
# Update to latest version
|
|
205
273
|
brew upgrade ironcode
|
|
206
274
|
```
|
|
207
275
|
|
|
208
|
-
|
|
276
|
+
**Supported Platforms:**
|
|
209
277
|
|
|
210
|
-
|
|
278
|
+
- macOS (Intel x64)
|
|
279
|
+
- macOS (Apple Silicon arm64)
|
|
280
|
+
- Linux (x64)
|
|
281
|
+
- Linux (arm64)
|
|
282
|
+
|
|
283
|
+
The Homebrew formula is auto-generated from releases and maintained at [github.com/KSD-CO/homebrew-tap](https://github.com/KSD-CO/homebrew-tap/blob/main/ironcode.rb).
|
|
284
|
+
|
|
285
|
+
### Direct Download (Standalone Binary)
|
|
286
|
+
|
|
287
|
+
For users who prefer not to use package managers, download the pre-built CLI binary directly from [GitHub Releases](https://github.com/KSD-CO/IronCode/releases).
|
|
288
|
+
|
|
289
|
+
These are **standalone executables** that require no additional installation - just download, extract, and run:
|
|
211
290
|
|
|
212
291
|
**Linux (x64):**
|
|
213
292
|
|
|
@@ -314,6 +393,59 @@ Once started, IronCode provides an interactive terminal UI:
|
|
|
314
393
|
- Use `Ctrl+C` to cancel operations
|
|
315
394
|
- Use `Ctrl+D` or type `exit` to quit
|
|
316
395
|
|
|
396
|
+
### Git Source Control
|
|
397
|
+
|
|
398
|
+
IronCode includes a built-in Git UI accessible within the TUI:
|
|
399
|
+
|
|
400
|
+
**Open Git Panel:**
|
|
401
|
+
|
|
402
|
+
- Press `Ctrl+X` then `I` (keybinding)
|
|
403
|
+
- Or type `/git` or `/source-control` command
|
|
404
|
+
|
|
405
|
+
**Features:**
|
|
406
|
+
|
|
407
|
+
- **Status View** - See all file changes (staged/unstaged)
|
|
408
|
+
- `โโ` or `j/k`: Navigate files
|
|
409
|
+
- `Space`: Stage/unstage selected file
|
|
410
|
+
- `Enter`: View diff
|
|
411
|
+
- `a`: Stage all files
|
|
412
|
+
- `u`: Unstage all files
|
|
413
|
+
- `r`: Refresh status
|
|
414
|
+
- `p`: Push to remote
|
|
415
|
+
- **Branches View** - Switch between branches
|
|
416
|
+
- `โโ` or `j/k`: Navigate branches
|
|
417
|
+
- `Enter`: Checkout branch
|
|
418
|
+
- Current branch marked with `*`
|
|
419
|
+
- **Commit View** - Create commits
|
|
420
|
+
- Type your commit message
|
|
421
|
+
- `Enter`: Commit staged changes
|
|
422
|
+
- `Esc`: Cancel
|
|
423
|
+
- **Diff View** - Review changes
|
|
424
|
+
- Syntax-highlighted diffs (green +, red -, blue line numbers)
|
|
425
|
+
- `h` or `Backspace`: Return to status view
|
|
426
|
+
|
|
427
|
+
**Push Authentication:**
|
|
428
|
+
|
|
429
|
+
IronCode supports multiple authentication methods:
|
|
430
|
+
|
|
431
|
+
- SSH keys (id_rsa, id_ed25519) from `~/.ssh/`
|
|
432
|
+
- SSH agent
|
|
433
|
+
- HTTPS with credential helper (GitHub CLI recommended)
|
|
434
|
+
|
|
435
|
+
For HTTPS authentication with GitHub:
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
# Install GitHub CLI if not already installed
|
|
439
|
+
brew install gh # macOS
|
|
440
|
+
# or: sudo apt install gh # Linux
|
|
441
|
+
|
|
442
|
+
# Authenticate
|
|
443
|
+
gh auth login
|
|
444
|
+
|
|
445
|
+
# Configure git to use gh for credentials
|
|
446
|
+
git config --global credential.helper '!gh auth git-credential'
|
|
447
|
+
```
|
|
448
|
+
|
|
317
449
|
---
|
|
318
450
|
|
|
319
451
|
## Agents
|
|
@@ -471,6 +603,9 @@ Contributions are welcome! Please read [CONTRIBUTING.md](./CONTRIBUTING.md) befo
|
|
|
471
603
|
|
|
472
604
|
**Recent Contributions:**
|
|
473
605
|
|
|
606
|
+
- โ
**Git Source Control UI** (Full TUI integration with libgit2 - Feb 2026)
|
|
607
|
+
- โ
**Streaming read optimization** (1.2-1.6x faster, 99.7% memory savings - Feb 2026)
|
|
608
|
+
- โ
**Grep streaming optimization** (90-99% memory reduction, GB-file capability - Feb 2026)
|
|
474
609
|
- โ
**Memory optimization deployed to production** (97.6% faster message processing - Feb 2026)
|
|
475
610
|
- โ
**Resource monitoring system** (automatic throttling, 300MB default limit - Feb 2026)
|
|
476
611
|
- โ
**Native PTY/Terminal deployed to production** (15.29x speedup, powers Bash tool - Feb 2026)
|
|
@@ -509,6 +644,9 @@ bun ./script/test-integration.ts # Integration tests
|
|
|
509
644
|
# PTY/Terminal benchmark (15.29x speedup)
|
|
510
645
|
bun script/bench-pty.ts
|
|
511
646
|
|
|
647
|
+
# File read benchmark (1.2-1.6x speedup, 99.7% memory savings)
|
|
648
|
+
# See STREAMING-READ-OPTIMIZATION.md for details
|
|
649
|
+
|
|
512
650
|
# Rust micro-benchmarks
|
|
513
651
|
cd packages/ironcode/native/tool
|
|
514
652
|
cargo bench --bench edit_bench
|
|
@@ -553,33 +691,7 @@ _Benchmarked on IronCode repository (dev branch, 100 iterations)_
|
|
|
553
691
|
|
|
554
692
|
---
|
|
555
693
|
|
|
556
|
-
## Upstream Sync
|
|
557
|
-
|
|
558
|
-
This fork periodically syncs with [upstream OpenCode](https://github.com/anomalyco/opencode) to incorporate new features and bug fixes.
|
|
559
|
-
|
|
560
|
-
```bash
|
|
561
|
-
# To sync with upstream
|
|
562
|
-
git remote add upstream https://github.com/anomalyco/opencode.git
|
|
563
|
-
git fetch upstream
|
|
564
|
-
git merge upstream/dev
|
|
565
|
-
```
|
|
566
|
-
|
|
567
|
-
---
|
|
568
|
-
|
|
569
|
-
## License
|
|
570
|
-
|
|
571
|
-
This project maintains the same license as [OpenCode](https://github.com/anomalyco/opencode).
|
|
572
|
-
|
|
573
|
-
---
|
|
574
|
-
|
|
575
694
|
## Acknowledgments
|
|
576
695
|
|
|
577
696
|
- **OpenCode Team**: For creating the original open-source AI coding agent
|
|
578
697
|
- All contributors to this fork
|
|
579
|
-
|
|
580
|
-
---
|
|
581
|
-
|
|
582
|
-
## Links
|
|
583
|
-
|
|
584
|
-
- [Upstream OpenCode](https://github.com/anomalyco/opencode)
|
|
585
|
-
- [IronCode Documentation](https://ironcode.cloud/docs)
|
package/package.json
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"postinstall": "bun ./postinstall.mjs || node ./postinstall.mjs"
|
|
8
8
|
},
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.10.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"optionalDependencies": {
|
|
12
|
-
"ironcode-darwin-arm64": "1.
|
|
13
|
-
"ironcode-windows-x64": "1.
|
|
14
|
-
"ironcode-linux-x64": "1.
|
|
12
|
+
"ironcode-darwin-arm64": "1.10.0",
|
|
13
|
+
"ironcode-windows-x64": "1.10.0",
|
|
14
|
+
"ironcode-linux-x64": "1.10.0"
|
|
15
15
|
}
|
|
16
16
|
}
|