HCode 2026.08.06.1

HCode is a lightweight agent written in Crystal

HCode — Vibe-code even on a potato

English · Русский · Español · 中文 · 日本語 · Português · हिन्दी · فارسی · Українська · Беларуская

~3 MB of RAM per agent at idle. One static binary. Zero runtime. GPL forever. A lighter-than-air AI agent by Orlov — Hydrogen-light: H for the lightest element, Code for what you ship.

Linux & MacOS

curl -fsSL https://raw.githubusercontent.com/ByOrlov/HCode/master/install.sh | bash

Windows

irm https://raw.githubusercontent.com/ByOrlov/HCode/master/install.ps1 | iex 

Crystal 1.14 · GPL-2.0-or-later · Native Binary · No Runtime


Memory, sorted

From featherweight to heavyweight.

# Agent Lang Idle RAM License Source
1 HCode Crystal ~3 MB GPL-2.0-or-later [1]
2 grok-build Rust ~20 MB Apache-2.0 [3]
3 Codex CLI Rust ~30 MB Apache-2.0 [2]
4 Goose Rust + TS ~50–100 MB (est) Apache-2.0 [4]
5 Claude Code TS / Node ~120 MB (grows) proprietary [7]
6 Aider Python ~150–250 MB(est) Apache-2.0 [6]
7 kimi-code TS / Node ~250 MB+ MIT [5]
8 opencode TS / Bun ~400 MB MIT [8]

The gap. HCode sits ~7× under the nearest Rust agent (grok-build), ~40× under the lightest Node agent (Claude Code), ~80× under kimi-code, and ~130× under opencode. The Node family spans an enormous range — from ~120 MB up to ~400 MB — because each one ships a V8 runtime per process and grows with use. The Rust agents (Codex, grok-build, Goose) are native and lean; HCode keeps pace with them on RAM and beats them on readability and license (see Why Crystal?).

Aider (est. ~150–250 MB) and kimi-code (~250 MB+) sit on the border of the same weight class — their relative order is within the margin.


Origin Story

I opened the system monitor and was horrified. Two opencode instances were eating 1 GB of RAM. Five kimi-code chats were doing the same — because each dragged a full Node.js runtime along for the ride.

I remembered 2007. My mother bought me 512 MB of RAM so I could play S.T.A.L.K.E.R.: Shadow of Chernobyl — a full 3D game that ran on a machine with 1 GB of RAM. And now, in 2026, we can't run two chats on 1 GB. What? The world has gone mad.

Worse — these "chats" are hard to call real software. They're software prototypes with features bolted on. Real software cannot be this horrifying on performance. And the scariest part: they are eternal prototypes. Eternal temporary solutions, shipped as finished products.

Then other developers reach for Rust to build agents. Rust is a language where you fight the compiler instead of building things — the opposite extreme. And the punchline: the Rust competitors sit at ~10× HCode's memory while idle.

So I took Moonshot-AI's TypeScript agent as a baseline and rewrote its logic in Crystal, with help from Kimi 2.6 and GLM 5. First results: ~3 MB idle versus kimi-code's ~200 MB. The core loop already worked. Peak consumption did climb afterward — up to ~130 MB — which is horrifying for a chat-notepad, but still less than kimi-code at idle.

That gap is what HCode exists to close.


Why it exists

Spin up five coding agents in parallel. Watch your RAM. Every agent that ships a Node.js runtime pays for it — per process, forever. Each HCode process sits around 3 MB resident while it waits for the next prompt — not 120, not 250, not 400 MB. Your editor keeps its memory budget. Your laptop stays cool. The OS stops swapping. You can finally run a swarm of agents on the machine you already own.

The Rust agents — Codex, grok-build, Goose — are native and lean too. Against them HCode's edge isn't RAM, it's readability and license. See The Landscape below.


Why Crystal?

We looked hard at Rust, Go, and TypeScript. Each forced a trade-off we did not want to live with. Crystal is the first language that let us keep all three wins at once.

  • 🦀 As safe as Rust, with syntax a human can read. Static typing, nil-safety, union types, generics, and a macro system — but the code reads like Ruby and runs like C. No borrow checker turning every refactor into a research problem. The two most-hyped native agents — OpenAI's Codex and xAI's grok-build — are both written in Rust, and their source proves the cost: fast and safe, but adding a tool means fighting lifetimes for a week. Crystal's tool layer is one file you read in an afternoon.
  • 🐹 As light as Go, without the boilerplate. CSP-style fibers and channels, sub-second compiles, single static binaries — but no if err != nil on every other line. You write the feature, not the ceremony.
  • 🟦 As capable as TypeScript, without a Node.js runtime per process. Crystal compiles ahead-of-time to a native LLVM binary. There is no V8 heap, no JIT warmup, no event loop duplicated inside every agent. Less memory copying, fewer system freezes, millisecond cold starts.

One language. Three wins. Zero runtime.


Build from source

If you prefer to build HCode yourself, you need Crystal ≥ 1.14 and ripgrep (rg):

# Install Crystal ≥ 1.14 — https://crystal-lang.org/install/
brew install crystal          # macOS
# sudo pacman -S crystal      # Arch
# see docs for Debian/Ubuntu/Windows

# Install ripgrep (required by the Grep and Glob tools)
brew install ripgrep          # macOS
# sudo apt-get install ripgrep  # Debian/Ubuntu
# sudo pacman -S ripgrep        # Arch

# Build
git clone https://github.com/ByOrlov/HCode
cd HCode
shards install
rake build            # → ./hcode (release flags)

# Smoke-test your credentials
./hcode --hi

# Headless — one-shot prompt, streams to stdout
./hcode -p "explain this repo's entry point"

# Interactive TUI
./hcode

Freedom

Memory is half the story. The other half: who owns the code, where you're allowed to run it, and where your prompts actually go.

Agent License Country-blocked Forced router BYO endpoint
Claude Code proprietary yes yes (Anthropic) no
Codex CLI Apache-2.0 yes yes (OpenAI) no
grok-build Apache-2.0 partial xAI default partial
Goose Apache-2.0 no no yes
Aider Apache-2.0 no no yes
opencode MIT no no yes
kimi-code MIT no Moonshot yes
HCode GPL-2.0-or-later no no yes

License

HCode is released under the GPL-2.0-or-later.

Copyright © 2026 Oleg Orlov orelcokolov@gmail.com · byorlov.com. All rights reserved. See LICENSE for the full text.

Why GPL-2.0, not MIT? opencode and kimi-code are both MIT — anyone can absorb them into a closed-source product and never give back. HCode is copyleft: every derivative must ship its source under the same terms. The community always has a free, usable version that cannot be re-closed.

Dual licensing. The copyright is held solely by the author so the project can additionally offer a separate commercial license to parties that need to avoid GPL copyleft (e.g. embedding HCode inside a closed-source product). To keep that option viable, outside contributions require a CLA that grants the author a license to relicense. See CONTRIBUTING.md.


Contributing

PRs welcome — please sign the CLA so the project can keep both the GPL and the commercial license viable. See CONTRIBUTING.md.

Repository

HCode

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 1
  • 6 days ago
  • July 18, 2026
License

Other

Links
Synced at

Wed, 19 Aug 2026 08:16:37 GMT

Languages