fred: A text editor that uses C for everything - Handmade Network Expo 2026

Lobsters Hottest Tools

Summary

Cameron Damera demonstrated Fred, a text editor written entirely in C, at Handmade Network Expo 2026. Its core features include an embedded TCC compiler, a live plugin system, dynamic Tree-sitter language support, an undo tree, and session recovery. All code is hand-written without AI assistance.

<p><a href="https://lobste.rs/s/nszzsn/fred_text_editor_uses_c_for_everything">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 07/14/26, 04:16 AM

### TL;DR Cameron Damera presented his text editor **Fred** at the 2026 Handmade Network Expo — a completely custom editor built from scratch in C with an embedded C compiler, extremely fast, and highly customizable. New additions include a theme system, relative line numbers, session recovery, and seamless Tree-sitter language support using TCC. --- ## About the Speaker and Fred’s Origins My name is Cameron Damera (pronounced like “day camera”), known on Discord as Starfree Clone, though some just call me Fred. I started developing this editor in 2023. By day I’m a compiler developer; by night (and while juggling new fatherhood) I work on Fred. The name Fred roughly stands for “Friendly Editor.” Its core pillars are: - **Native**: All platform layers (Windows / Linux) are hand-written with zero third-party dependencies. - **Fast**: Complete control over event flow, threading, and memory layout makes startup and operations lightning quick. - **Highly customizable**: All configuration (colors, whitespace display, line numbers, etc.) is entirely data-driven. - **Extensible**: Built-in TCC (a tiny C compiler) allows writing plugins in C that are compiled and run directly in the editor’s address space. - **Handcrafted**: Contains no AI-generated code and never will. --- ## Demo: Startup Speed & Basic Operations On a typical 2021 laptop, Fred starts almost instantly. Compared to Notepad, which is noticeably slower. Once Fred is open, pressing `F1` brings up the command palette for fuzzy searching any feature (e.g., open config, file browser). The file browser supports a “pinned” mode that flattens all files in the current directory with fuzzy search, while also enabling the “Find All” widget. For example, searching for `#include` first requires scanning the file system (a bit slower), but subsequent searches complete in about 300 milliseconds, finding results across 937 files. Tabs can be freely dragged and docked, forming a flexible panel system. --- ## Customization Features ### Line Numbers & Relative Line Numbers Line numbers can be toggled, and **relative line numbers** (a highly requested feature) are now available. When enabled, the current line shows 0, and lines above and below display their offset from the cursor, which is very useful for movement operations. ### Theme System A new theme system is included. Four built-in themes: Fred, Solarized Light, Solarized Dark, and a ForCoder-inspired theme. After switching, you can copy color values and modify them yourself. More themes will be added in the future. ### Colors & Configuration You can modify background colors and other parameters in real time — all changes take effect immediately. --- ## Undo Tree: Version Management with Immutable Buffers Fred uses **immutable buffers** for undo history. When the user makes edits, undo is not linear but forms a tree. For example, type “Hello world”, then change it to “My name is Fred”, undo back to “Hello world”, then change to “My name is Cameron” — traditional undo would lose the “Fred” state. Fred provides a visual tree-like UI (similar to Git diff) via `Ctrl+Shift+Z`. You can browse differences between nodes and easily navigate back to any historical state, including “Fred”. All history is preserved during the session. --- ## Plugin System & Live Coding Fred embeds TCC (Tiny C Compiler). Plugins are ordinary `.c` files that are compiled and become executable code inside the editor. ### Multi-Cursor Alignment Plugin Multi-cursors are first-class citizens in Fred. In the demo, the user has multiple cursors at line ends and wants to align extra spaces. A community-contributed plugin `align_multicursors_with_spaces` does it in one click. The source code is only a few dozen lines of C, compiled and run inside Fred. ### Creating a Simple Plugin On the Fly All blue items in the command palette represent custom plugins, with a trash bin icon to delete them. The presenter quickly writes a plugin to toggle C-style comments, saves, recompiles, binds a key, and it works. ### Binding & Usage Copy the function name, paste it into the configuration entry point, and the plugin becomes available in the command palette or via a hotkey. --- ## Session Recovery Close Fred and reopen it — it **instantly restores** previous editing positions, including the full undo tree (serialization is fast enough to be nearly imperceptible). All historical edit points are preserved. --- ## Dynamic Tree-sitter Language Support Using TCC Tree-sitter itself is a C parser library. Typically, editors require precompiled DLLs or separate compilation. Fred leverages its embedded TCC to load parsers and highlight rules directly from Tree-sitter source repositories (e.g., `tree-sitter-rust`) without any external build steps. ### Steps 1. Place the `tree-sitter-rust` directory into Fred’s configuration path. 2. Add a single line in the configuration pointing to that directory. 3. Save the configuration — Fred automatically compiles and enables Rust syntax highlighting. 4. Associate it with `.rs` file extensions; priority can override built-in languages (e.g., force a different parser for C++ files). 5. Reopen the file, and highlighting persists. This feature allows Fred to support every language Tree-sitter defines, without needing precompiled plugins. --- ## Summary & Future Outlook Fred is a minimal yet powerful C text editor. Expo-exclusive releases include: - Theme system - Relative line numbers - Session recovery - Dynamic Tree-sitter language support via TCC - Plugin system (with community contributions) All code is hand-written, no AI. Future plans include more themes and continued optimization of the plugin ecosystem. --- **Source** fred: A text editor that uses C for everything - Handmade Network Expo 2026 (https://www.youtube.com/watch?v=xz5aPCRxsv4)

Similar Articles

@LinearUncle: I strongly recommend an open-source coding IDE that rivals or even surpasses the Codex app in some areas: Orca https://onorca.dev https://github.com/stablyai/orca Mac/Win/Linux full platform, supports...

X AI KOLs Timeline

Orca is an open-source cross-platform coding IDE that supports parallel worktrees, computer use, embedded browser, mobile remote control, and more. It can work with various agent CLIs like Claude Code, Codex, OpenCode, etc. It is recommended as a development tool that rivals or even surpasses Codex.

@QingQ77: Describe requirements in natural language, and the AI Agent automatically breaks down steps, calls tools to complete development, file operations, browser control, and other tasks, while also providing a full-fledged editor and terminal. https://github.com/Liuchun-oss/codelf-agent… Codelf is…

X AI KOLs Timeline

Codelf is an open-source desktop AI assistant that lets you describe requirements in natural language. It automatically breaks down steps and calls tools to handle development, file operations, browser control, and more, all while providing a complete editor and terminal. It supports models like DeepSeek, Claude, and ChatGPT, works well on domestic networks, and includes local RAG knowledge base capabilities.

@ai_super_niko: Claude Code creator Boris Cherny has a bold prediction: 'By the end of this year, people will no longer use IDEs (Integrated Development Environments).' But what Boris really means is not that IDEs will disappear, but that editors are gradually integrating with AI Agent…

X AI KOLs Timeline

Claude Code creator Boris Cherny believes that by the end of this year, people will no longer use traditional IDEs, editors will gradually integrate with AI agents, future software development will be done through conversational agents handling most of the work, and the terminal will become the most natural agent interface.