Documentation
Everything you need to know about using IronCode
Quick Start
Get up and running with IronCode in less than 5 minutes
1. Install IronCode (NPM)
Or Install via Homebrew (macOS/Linux)
$ brew install ironcode
3. Start IronCode in your project
$ ironcode
Installation
NPM (Recommended)
Homebrew (macOS/Linux)
Supported: macOS (Intel x64, Apple Silicon arm64), Linux (x64, arm64)
Direct Download (Standalone Binary)
Download pre-built executables from GitHub Releases
Linux (x64)
$ sudo mv ironcode /usr/local/bin/
macOS (Apple Silicon)
$ sudo mv ironcode /usr/local/bin/
Arch Linux (AUR)
Coming soon - AUR package will be available in the future
Usage
Basic Usage
$ ironcode --help
Configuration
IronCode requires API keys for AI models. Set them as environment variables:
Interactive Mode
Once started, IronCode provides an interactive terminal UI:
- Type your requests naturally in English
- Switch between agents with
Tabkey - Use
Ctrl+Cto cancel operations - Use
Ctrl+Dor typeexitto quit
Built‑in Skills
Skills are slash commands that switch IronCode into specialist modes. Type the command in the chat prompt and the agent becomes a different expert — founder, tech lead, QA tester, etc.
Quick Reference
| Command | Role | What it does |
|---|---|---|
| /ceo-review | Founder | Rethink the problem. Find the 10‑star product. Three modes: Expand, Hold, Reduce scope. |
| /eng-review | Tech Lead | Lock architecture, data flow, failure modes, edge cases, test matrix. |
| /tdd | Developer | RED‑GREEN‑REFACTOR: failing test → minimal code → refactor. No production code without a failing test. |
| /debug | Debugger | 4‑phase systematic debugging: root cause → pattern analysis → hypothesis → fix. 3‑fix rule escalates. |
| /verify | Gatekeeper | Run the command, read the output, then claim the result. Evidence before assertions. |
| /code-review | Staff Engineer | Two‑pass PR review: critical (type safety, injection, concurrency) + informational. |
| /code-ship | Release Engineer | Merge, test, typecheck, changelog, bisectable commits, push, PR — one command. |
| /browse | Browser Tool | Headless Chromium via Playwright. Navigate, click, fill forms, screenshot, assert states. |
| /qa | QA + Fix | Test web app, find bugs, auto‑fix with atomic commits, re‑verify. 4 modes. |
| /qa-only | QA Reporter | Same as /qa but never fixes — pure bug report with health score. |
| /qa-api | API Tester | REST/GraphQL testing. Auto‑discovers routes, tests with valid/invalid/edge‑case payloads. |
| /document-release | Technical Writer | Post‑ship doc update. Cross‑references diff against README, ARCHITECTURE, CHANGELOG. |
| /retro | Eng Manager | Weekly retro: commit analysis, session detection, per‑person praise and growth areas. |
Typical Workflow
You can use any skill standalone — the workflow is a suggestion, not a requirement.
QA Testing Guide
IronCode has 4 QA skills for different scenarios:
/qaWeb app with UI — finds bugs AND auto‑fixes them with atomic commits. Best for testing your own code.
/qa-onlyWeb app with UI — report only, never fixes. Best for auditing or reviewing someone else's code.
/qa-apiREST/GraphQL API without UI — tests endpoints with curl. Auto‑discovers routes from source code.
/browseRaw browser tool — navigate, click, screenshot. Use for ad‑hoc testing, not full QA runs.
QA Modes
Testing Authenticated Pages
Three ways to handle authentication during QA testing:
1. Auto‑login (form-based auth)
# Agent finds login form, fills email/password, clicks submit
# Tell it: "Sign in as [email protected] / password123"
Works for simple login forms without CAPTCHA.
2. Cookie import (best for CAPTCHA / SSO / OAuth)
# Step 2: Export cookies
# Chrome DevTools → Application → Cookies → copy as JSON
# Or use a browser extension like "EditThisCookie"
# Step 3: Tell the agent
You: /qa http://myapp.com
Import cookies from cookies.json
Bypasses CAPTCHA, 2FA, SSO completely — the agent uses your already‑authenticated session.
3. 2FA / OTP
The agent logs in normally, then pauses and asks you for the 2FA code. You type it, the agent continues testing.
💡 CAPTCHA / Cloudflare Protection
Headless browsers cannot solve CAPTCHAs. Use the cookie import method — login on your real browser, export cookies, and the agent skips CAPTCHA entirely. This works for reCAPTCHA, hCaptcha, Cloudflare Turnstile, and any other challenge.
Testing Authenticated APIs
Login with POST /api/auth/login {"email": "[email protected]", "password": "pass"}
Use the token from the response for all subsequent requests
Custom Skills
Create your own skills by adding a SKILL.md file to your project:
---
name: my-skill
description: What this skill does
---
# Instructions for the agent
Your prompt content here...
EOF
Skills are auto‑discovered — no restart needed. Type /my-skill in the chat and it works immediately.
How Built‑in Skills Work
- Embedded in binary — skills are compiled into the IronCode executable at build time
- Auto‑extracted — on first run, skills are written to
~/.ironcode/skill/with a.builtinmarker - Auto‑upgrade — when IronCode updates, built‑in skills are refreshed automatically
- Customizable — delete the
.builtinmarker file to prevent auto‑upgrade, then edit the SKILL.md freely
Git Source Control
IronCode includes a built-in Git UI accessible within the TUI
Open Git Panel
- •Press
Ctrl+XthenI(keybinding) - •Or type
/gitor/source-controlcommand
Status View - Stage & Commit
See all file changes (staged/unstaged)
↑↓orj/k: Navigate filesSpace: Stage/unstage selected fileEnter: View diffa: Stage all filesu: Unstage all filesr: Refresh statusp: Push to remote
Branches & Commits
Branches View
↑↓orj/k: Navigate branchesEnter: Checkout branch- Current branch marked with *
Commit View
- Type your commit message
Enter: Commit staged changesEsc: Cancel
Push Authentication
IronCode supports multiple authentication methods:
- SSH keys (id_rsa, id_ed25519) from ~/.ssh/
- SSH agent
- HTTPS with credential helper (GitHub CLI recommended)
For HTTPS with GitHub:
Performance
Memory Efficiency
IronCode includes automatic resource monitoring to keep memory usage under control:
- Default 300MB limit - Prevents excessive memory consumption
- Real-time monitoring - Checks every 5 seconds
- Auto-throttling - Automatically slows down at 95% memory
- 98% faster message processing - Selective cloning (254ms → 6ms)
Native Rust Components
Performance-critical operations rewritten in Rust:
PTY/Terminal
15.29x faster - 93.5% reduction
File Reading
1.2-1.6x faster, 99.7% memory savings
Grep Search
90-99% memory reduction
Edit Tool
2-6x faster with fuzzy matching
Archive Extraction
3-5x faster (ZIP files)
Git Operations
1.5-3x faster via libgit2
Key Benchmarks
| Operation | Speedup | Impact |
|---|---|---|
| PTY I/O | 15.29x | 58.15ms → 3.80ms |
| Edit Tool (10K lines) | 6.03x | 451ms → 75ms |
| Archive (500 files) | 5.2x | 740ms → 143ms |
| Glob Search (100 files) | 2.74x | 9.74ms → 3.55ms |
| Git Operations | 1.83x | 17.25ms → 9.43ms |
Development
Prerequisites
- Bun 1.3.8 (exact version required)
- Rust (latest stable)
- Git
Building From Source
$ cd IronCode
$ cargo build --release
$ cd ../../../..
$ bun run build
Compiled binary: packages/ironcode/dist/ironcode/bin/ironcode
Telegram Integration
Control IronCode remotely via Telegram. Send tasks from your phone, get real-time streaming output, and manage multiple sessions — all through a Telegram bot running on your machine.
Setup
1. Install IronCode and authenticate
$ ironcode auth login
2. Create a Telegram bot via BotFather
Open Telegram, search for @BotFather, send /newbot and follow the prompts. Copy the bot token.
3. Install the Telegram bot package
4. Configure with your bot token
Config is saved to ~/.config/ironcode/telegram.json
5. Start the bot from your project directory
$ ironcode-telegram
The bot starts an IronCode server in the current directory. Send messages from Telegram to control it.
Running on a Server (24/7)
Deploy the bot on a VPS or cloud instance so it's always available, even when your laptop is off.
Install & authenticate on the server
$ bun install -g @ironcode-ai/telegram
$ ironcode auth login
Clone project & setup bot
$ ironcode-telegram setup
Run with PM2 (recommended — auto-restart + survives reboots)
$ cd /app/my-project
$ pm2 start --name ironcode-telegram -- ironcode-telegram
$ pm2 save && pm2 startup
Or with systemd (Linux)
User=ubuntu
WorkingDirectory=/app/my-project
ExecStart=/usr/local/bin/ironcode-telegram
Restart=on-failure
WorkingDirectory = the project the bot works with. Run a separate instance per project.
Bot Commands
| Command | Description |
|---|---|
| /start | Welcome message and quick reference |
| /new | Start a new session |
| /sessions | List all sessions with inline buttons to switch |
| /info | Show current session ID and working directory |
| (any text) | Send a prompt to the AI agent — streams output live |
/sessions