{"slug": "a-coding-agent-that-fits-in-636-kb-no-node-no-python-no-npm", "title": "A coding agent that fits in 636 KB – no Node, no Python, no NPM", "summary": "Delta Agent, a coding agent released by developer descz, ships as a single C11 executable with no Node, Python, npm, pip or framework dependencies, measuring 636 KB and about 1.7 MB of private memory on Windows. The agent reads and writes files, runs shell commands, handles git with pre-change checkpoints, searches the web, speaks MCP over HTTP or stdio, and keeps durable memory and per-folder JSONL sessions, using models from the models.dev catalog. Only Windows 10/11 x64 is tested, with 283 end-to-end checks; Linux x86_64 builds and runs with 32 checks but its desktop features are untested, and macOS 11+ ships source only and was never tested, while the license prohibits selling or cloning and requires non-profit, credited public disclosure.", "body_md": "**License:** source is available for study and personal/internal use — **selling or cloning is\nprohibited**, and any public disclosure must be **non-profit** and **credited** to the project.\nSee [LICENSE](https://github.com/descz/delta/blob/main/LICENSE).\n\n**Delta Agent** is a coding agent that lives in your terminal.\nSite: **[descz.github.io/delta](https://descz.github.io/delta/)** · downloads: [Releases](https://github.com/descz/delta/releases/latest)\n\nYou talk in natural language and it does the work: reads and writes files, runs commands, handles git, searches the web, keeps memory and explains what it found — with the model you choose.\n\nIt is a **single executable written in C11, with no dependencies at all**: no Node, Python, npm, pip\nor framework installer. On Windows it is **636 KB** and about **1.7 MB of private memory**.\n\n| **Files** | reads, creates, edits precisely (exact-block `edit` ), searches the project, shows diffs | \n| **Shell** | runs commands, keeps background jobs, `/terminal` shows the output in a chat block | \n| **Git** | status, diff, log, commit and *checkpoint* before changing anything | \n| **Web** | downloads pages, extracts data, reads documentation — and speaks **MCP** over HTTP or stdio | \n| **Skills** | saved workflows in `SKILL.md` — six ship built in (code design, spreadsheets/PDF, docs, automation, verification, systematic debugging); indexed in the system prompt and read on demand | \n| **Memory** | durable facts across sessions, searchable by text | \n| **Project graph** | indexes symbols and imports once, then answers without re-reading every file | \n| **Models** | [models.dev](https://models.dev) catalog with hundreds of models and providers | \n| **Sessions** | per-folder history in JSONL with the thinking preserved; `delta` always starts a new chat,`delta continue` reopens that folder's last one | \n| **Streaming** | token by token, cut immediately when you send a message mid-turn | \n\nAll inside the terminal, with its own TUI: mouse selection and copy, rendered markdown (headings,\nlists, code, tables), OkLCH colors, themes, i18n (pt, en, es, zh, ja) and an installer with an HTML\nscreen served **by the executable itself**.\n\nDownload from [**Releases**](https://github.com/descz/delta/releases/latest). Each system has one file\nthat already is the installer:\n\n| system | file | how | \n|---|---|---|\n| **Windows 10/11 x64** | `Delta-windows-x64.zip` (or`Delta.exe` ) | double click → install window (HTML popup, native folder picker) | \n| **Linux x86_64** | `delta-linux-x86_64.run` | `chmod +x delta-linux-x86_64.run && ./delta-linux-x86_64.run` | \n| **macOS 11+** | `delta-macos-source.zip` | unzip and double click `INSTALAR-MAC.command` | \n\nThe installer asks **where to keep the data**, creates the folder, copies the binary, puts `delta` on\nthe `PATH` and creates the shortcut (taskbar on Windows, `.desktop` + GNOME favorites on Linux,\n`Delta.app` + Dock on macOS). Windows may warn on SmartScreen the first time (*More info → Run\nanyway*) because the binary is not code-signed.\n\nBeing explicit, because \"compiles\" is not \"works\":\n\n| platform | status | \n|---|---|\n| **Windows 10/11 x64** | **Tested** — the reference platform: 283 end-to-end checks (TUI, streaming, tools, installer, self-update), plus the installer and`delta update` exercised by hand. | \n| **Linux x86_64** | **Builds and runs** (gcc 13, WSL, 32 checks: build, core, replay, real streaming via curl, installer, self-update).**Not exercised on a desktop session** :`.desktop` entry, GNOME favorites and clipboard (`wl-copy` /`xclip` ) are untested. | \n| **macOS 11+** | **Source only, and not tested** — I have no Mac. The release ships the source plus`INSTALAR-MAC.command` , which checks Xcode Command Line Tools and builds locally; the native layer (`osascript` ,`.app` , Dock) was never executed. Treat it as a starting point, not as a supported binary. | \n\nThere is no ready-made macOS binary: the package ships the source and a `.command` that checks the\nXcode Command Line Tools (free), builds and opens the installer — there is no reliable cross-compile\nto Mach-O.\n\n``` bash\n$ delta\nsem chave de API · use /login para colar a chave do provedor\n\n/login                          # pick the provider, paste the key, get a default model\n/projects D:\\dev\\my-app         # where it works (saved for next time)\nread src/main.c and explain the flow\n```\n\nNext time, `delta` starts a **new chat** in that folder. To pick up the previous one — messages, tool calls and the model's\nthinking included — run `delta continue`.\n\nInside the app, `/new` starts a fresh session and `/clear` wipes the screen.\n\n| command | what it does | \n|---|---|\n| `/login``/logout` | connect/disconnect providers (one key per provider) | \n| `/models` | models from connected providers — the catalog is re-downloaded on every run (a model released mid-session shows up) and **only the providers you connected are kept** ;`/login` still sees the full list | \n| `/thinking` | reasoning effort (off → max, depending on the model) | \n| `/verbosity` | how much prose in the reply — `low` ,`normal` ,`high` ; reasoning and the work itself stay untouched | \n| `/projects <folder>` | set the working folder (saved in config) | \n| `/terminal <cmd>` | runs in your shell and shows the output in the chat | \n| `/undo [file]` | restores a file to its content before the last edit | \n| `/update` | installs the newest version from GitHub (the app warns at startup when one exists) | \n| `/subagentmodel` | model the subagents run on (it asks before creating one) | \n| `/deltagroup` | Delta group on Telegram — invite link, copied to the clipboard and clickable | \n| `/status``/session` | configuration, usage and session | \n| `/new``/clear``/reload``/quit` | new session, clear, reload, quit | \n| `/help` | all of it on screen | \n\n`delta --setup` reopens the installer: a small **HTML window** (Edge/Chrome app mode, no tabs) served by the\nexecutable on `127.0.0.1` with a random token — it closes with the window and never leaves a server behind.\nWithout a Chromium browser it falls back to a native terminal screen. `delta wiki` just prints the docs address.\n`delta update` does the same job without opening the app: `delta update --check` only reports, and\nthe command replaces the running executable in place (on Windows it is renamed, so the file can be\nswapped while it runs). The TUI checks for a new release once a day and shows a notice at startup;\nturn that off with `\"updateCheck\": false` in `config.json` or `DELTA_NO_UPDATE_CHECK=1`.\n\n| key | action | \n|---|---|\n| `Enter` /`Shift+Enter` | send / new line | \n| `Ctrl+C` | with a selection: copies it to the clipboard; otherwise stops the generation (never closes the app) | \n| `Ctrl+Q` | returns the last queued message to the editor | \n| `Ctrl+V` | paste text, image or file | \n| mouse | wheel scrolls the conversation; **drag selects** (white background, black text) and a plain click clears the selection | \n| `Esc` | goes back to the end of the conversation | \n\n**Typing while it works is supported**: the message appears in the chat marked *queued* and the agent\n**cuts the reply mid-stream** to read it — no waiting for the final message.\n\nA turn is: *prompt → model (streaming) → tool calls → result → next step*, until the model stops.\nDelta owns the loop and the tools; the model only asks.\n\n- **Own renderer** (`ui.c` ): cell grid with OkLCH colors (faithful port of OkLch/OkHsl), markdown →`Doc` of styled lines, tool boxes, multi-line editor with cursor. The transcript is rebuilt**incrementally** , block by block (`tr_y` /`tr_fast_from` ), keeping a frame at ~0.5 ms even in long\nconversations.\n- **Terminal** (`term.c` ): raw mode with`ReadConsoleInput` on Windows and`termios` on POSIX; mouse\n(click, wheel, drag), paste, resize, alternate screen and modified-key shortcuts.\n- **Network** (`provider.c` ): WinHTTP on Windows,`curl` on POSIX — SSE read line by line, with\nmid-stream*abort* when you step in.\n- **Agent** (`agent.c` ): typed history (`user` /`assistant` /`tool` ), tool calls with ids, JSONL v3\nsessions per folder, system prompt rebuilt every turn (with skills indexed and the project graph).\n- **Project graph** (`codegraph.c` ): indexes files, symbols and imports once into`~/.deltaCore/graphs/<slug>.graph` ; the agent queries it with the`graph` tool instead of reading\nthe whole codebase on every input.\n- **Tools** (`tools.c` ,`tools_ext.c` ): 40+ operations grouped in families (`fs` ,`shell` ,`git` ,`web` ,`skills` ,`mcp` ,`memory` ,`code` ,`assert` ,`agent` ,`extend` ), with timeouts, output\nlimits and console encoding conversion. Every write keeps an undo snapshot.\n- **Installer** (`setup.c` ): local HTTP server (Winsock/Berkeley) serving an embedded page\n(~13 KB, fonts in base64), opens the browser and performs the install — native folder picker,\nbinary copy,`PATH` , shortcuts and pinning.\n\nThe look (themes, color tokens, sizes) follows the same vocabulary as a modern editor: 56 theme\ntokens, plain `.json` files in `themes/`.\n\nOne folder, chosen at install time (default `C:\\Users\\<you>\\.deltaCore`):\n\n```\n.deltaCore/\n  config.json        provider, model, language, thinking, projectDir\n  auth.json          one API key per provider\n  models.v2.json     cached models.dev catalog\n  memory.json        durable memory\n  sessions/          --<folder-slug>--/<date>_<id>.jsonl\n  skills/            <name>/SKILL.md\n  mcps/              one .json per MCP server (url or command)\n  extensions/        pluggable extensions\n  graphs/            project graph cache (symbols/imports)\n  update.json        last release check (version, asset, timestamp)\n  system/prompt.md   rules it must always follow\n  paste/ jobs/ themes/ undo/\n```\n\n`system/prompt.md` is re-read every turn: that is where you write your team rules.\n\n**Several windows at once is supported.** Every file in this folder is written to a temporary and\nswapped in one step (`file_write_atomic`), so a second `delta` — or a subagent — never reads a\nhalf-written `config.json`, `auth.json`, `memory.json` or catalog. Without that, the instance that\nreads a truncated config loses provider and key and its session looks dead.\n\nYou only need a C compiler and the system libc.\n\n**Windows** (MinGW-w64 / Git Bash):\n\n```\nbuild.bat            :: bin\\delta.exe\npackage.bat          :: dist\\Delta.exe + zip\n```\n\n**Linux / macOS**:\n\n```\n./build.sh           # bin/delta\n./build.sh --test    # + core tests\n./package.sh         # tarball + .run (Linux) | .app + zip + dmg (macOS)\n```\n\nOn macOS the Xcode Command Line Tools (`xcode-select --install`) are enough. At runtime Linux uses\n`curl` to talk to the provider.\n\nTwo suites, no framework:\n\n```\nbash tests/run_all.sh     # Windows: 60+ checks (TUI replay, provider mock, installer)\nbash tests/run_posix.sh   # Linux/macOS: build, core, replay, real streaming, installer, docs\n```\n\nThe **replay** mode runs the real application without a terminal (`--replay script.txt 110 36`) and\ndumps the screen as text — that is how the TUI is tested in CI. The fake provider\n(`tests/mock_openai.py`) covers streaming, tool calls, HTTP errors, retries and mid-stream steering.\n\n```\nsrc/\n  main.c        TUI, commands, editor, transcript\n  agent.c       agent loop, sessions, system prompt, config/auth\n  provider.c    streaming (WinHTTP / curl), tool calls, token usage\n  codegraph.c   project graph: files, symbols, imports\n  tools.c       fs, shell, git, diff, web, undo\n  tools_ext.c   skills, mcp (HTTP/stdio), memory, code, assert, agent, extend\n  setup.c       installer (local server + embedded HTML screen)\n  ui.c          cell grid, markdown, components\n  term.c        terminal (Win32 / POSIX)\n  theme.c okcolor.c  themes and OkLCH colors\n  clipboard.c   paste (text, image, files)\n  json.c util.c i18n.c extensions.c modelsdev.c\ninstaller/      installer page (embedded in the exe)\ndocs/           landing page (GitHub Pages)\nassets/         logo, hero, screenshots\ntests/          replay scripts + mocks + suites\n```\n\n**Source-available, non-commercial.** The source is public for study and personal/internal use, but\nthe license **forbids selling, renting, paid access and cloning** — and requires credit to the\nproduct in any public disclosure.\n\n| allowed | forbidden | \n|---|---|\n| use, study and modify for personal, educational or internal use | sell, rent, charge for access, include in a paid product/service | \n| share the **unmodified** copy, non-profit | publish a public fork, mirror, package, binary or **clone/rebrand** | \n| cite, write, record videos — **with credit** | removing credits, the name, the Δ symbol or this notice | \n\nMandatory credit: **Delta Agent — [https://github.com/descz/delta](https://github.com/descz/delta)**.\nCommercial permission, cloning or special redistribution: open an issue in the repository.", "url": "https://wpnews.pro/news/a-coding-agent-that-fits-in-636-kb-no-node-no-python-no-npm", "canonical_source": "https://github.com/descz/delta", "published_at": "2026-10-31 23:30:56+00:00", "updated_at": "2026-10-31 23:51:16.078243+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "agent-protocols", "ai-products"], "entities": ["Delta Agent", "descz", "models.dev", "Windows 10/11 x64", "Linux x86_64", "macOS 11+", "MCP", "Xcode Command Line Tools"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/a-coding-agent-that-fits-in-636-kb-no-node-no-python-no-npm", "markdown": "https://wpnews.pro/news/a-coding-agent-that-fits-in-636-kb-no-node-no-python-no-npm.md", "text": "https://wpnews.pro/news/a-coding-agent-that-fits-in-636-kb-no-node-no-python-no-npm.txt", "jsonld": "https://wpnews.pro/news/a-coding-agent-that-fits-in-636-kb-no-node-no-python-no-npm.jsonld"}}